Guest User

Untitled

a guest
Dec 12th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 MB | None | 0 0
  1. R version 3.5.1 (2018-07-02) -- "Feather Spray"
  2. Copyright (C) 2018 The R Foundation for Statistical Computing
  3. Platform: x86_64-apple-darwin17.4.0 (64-bit)
  4.  
  5. R es un software libre y viene sin GARANTIA ALGUNA.
  6. Usted puede redistribuirlo bajo ciertas circunstancias.
  7. Escriba 'license()' o 'licence()' para detalles de distribucion.
  8.  
  9. R es un proyecto colaborativo con muchos contribuyentes.
  10. Escriba 'contributors()' para obtener más información y
  11. 'citation()' para saber cómo citar R o paquetes de R en publicaciones.
  12.  
  13. Escriba 'demo()' para demostraciones, 'help()' para el sistema on-line de ayuda,
  14. o 'help.start()' para abrir el sistema de ayuda HTML con su navegador.
  15. Escriba 'q()' para salir de R.
  16.  
  17. > test <- function() {
  18. + seed <- 74755
  19. +
  20. + nextRandom <- function() {
  21. + seed <<- bitwAnd((seed * 1309) + 13849, 65535)
  22. + return (seed)
  23. + }
  24. +
  25. + buildTreeDepth <- function(depth, random) {
  26. + if (depth == 1) {
  27. + return (c(nextRandom() %% 10 + 1))
  28. + } else {
  29. + array <- vector("list", length = 4)
  30. + for (i in 1:4) {
  31. + array[[i]] <- buildTreeDepth(depth - 1, random)
  32. + }
  33. + return (array)
  34. + }
  35. + }
  36. +
  37. + buildTreeDepth(2, nextRandom())
  38. + }
  39. >
  40. > f <- rir.compile(function() test())
  41. >
  42. > f()
  43. [[1]]
  44. [1] 7
  45.  
  46. [[2]]
  47. [1] 2
  48.  
  49. [[3]]
  50. [1] 5
  51.  
  52. [[4]]
  53. [1] 2
  54.  
  55. > pir.compile(test, debugFlags=pir.debugFlags(PrintOptimizationPasses=TRUE, ShowWarnings=TRUE))
  56.  
  57. ╞═════════════════════════════╡ Compiling test ╞═════════════════════════════╡
  58.  
  59. ┌──────────────────────────────────────────────────────────────────────────────┐
  60. │ bitwAnd[0x7f92445706c0] │
  61. Warning: Guard ignored: .Internal
  62. │ bitwAnd[0x7f92445706c0] │
  63. └──────────────────────────────────────────────────────────────────────────────┘
  64.  
  65. ┌──────────────────────────────────────────────────────────────────────────────┐
  66. │ test>nextRandom@53[0x7f9244559020] │
  67. Warning: Guard ignored: {
  68. Warning: Guard ignored: <<-
  69. Warning: Guard ignored: +
  70. Warning: Guard ignored: (
  71. Warning: Guard ignored: *
  72. Warning: Guard ignored: return
  73. │ test>nextRandom@53[0x7f9244559020] │
  74. └──────────────────────────────────────────────────────────────────────────────┘
  75.  
  76. ┌──────────────────────────────────────────────────────────────────────────────┐
  77. │ vector[0x7f92445590f0] │
  78. Warning: Guard ignored: .Internal
  79. │ vector[0x7f92445590f0] │
  80. └──────────────────────────────────────────────────────────────────────────────┘
  81.  
  82. ┌──────────────────────────────────────────────────────────────────────────────┐
  83. │ nextRandom[0x7f9244606500] │
  84. Warning: Guard ignored: {
  85. Warning: Guard ignored: <<-
  86. Warning: Guard ignored: +
  87. Warning: Guard ignored: (
  88. Warning: Guard ignored: *
  89. Warning: Guard ignored: return
  90. │ nextRandom[0x7f9244606500] │
  91. └──────────────────────────────────────────────────────────────────────────────┘
  92.  
  93. ┌──────────────────────────────────────────────────────────────────────────────┐
  94. │ buildTreeDepth[0x7f92446010b0] │
  95. Warning: Guard ignored: {
  96. Warning: Guard ignored: if
  97. Warning: Guard ignored: ==
  98. Warning: Guard ignored: {
  99. Warning: Guard ignored: <-
  100. Warning: Guard ignored: for
  101. Warning: Guard ignored: :
  102. Warning: Guard ignored: {
  103. Warning: Guard ignored: <-
  104. Warning: Guard ignored: -
  105. Warning: Guard ignored: return
  106. Warning: Guard ignored: {
  107. Warning: Guard ignored: return
  108. Warning: Guard ignored: +
  109. Warning: Guard ignored: %%
  110. │ buildTreeDepth[0x7f92446010b0] │
  111. └──────────────────────────────────────────────────────────────────────────────┘
  112.  
  113. ┌──────────────────────────────────────────────────────────────────────────────┐
  114. │ test>buildTreeDepth@91[0x7f92445596d0] │
  115. Warning: Guard ignored: {
  116. Warning: Guard ignored: if
  117. Warning: Guard ignored: ==
  118. Warning: Guard ignored: {
  119. Warning: Guard ignored: <-
  120. Warning: Guard ignored: for
  121. Warning: Guard ignored: :
  122. Warning: Guard ignored: {
  123. Warning: Guard ignored: <-
  124. Warning: Guard ignored: -
  125. Warning: Guard ignored: return
  126. Warning: Guard ignored: {
  127. Warning: Guard ignored: return
  128. Warning: Guard ignored: +
  129. Warning: Guard ignored: %%
  130. │ test>buildTreeDepth@91[0x7f92445596d0] │
  131. └──────────────────────────────────────────────────────────────────────────────┘
  132.  
  133. ┌──────────────────────────────────────────────────────────────────────────────┐
  134. │ test[0x7f9244567f20] │
  135. Warning: Guard ignored: {
  136. Warning: Guard ignored: <-
  137. Warning: Guard ignored: <-
  138. Warning: Guard ignored: <-
  139. │ test[0x7f9244567f20] │
  140. └──────────────────────────────────────────────────────────────────────────────┘
  141.  
  142. ┌──────────────────────────────────────────────────────────────────────────────┐
  143. │ nextRandom[0x7f9244606500] │
  144. ├────── Inline Promises: == 4
  145. nextRandom[0x7f9244606500]
  146. BB0
  147. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  148. cls %0.1 = LdFun bitwAnd, e0.0
  149. prom %0.2 = MkArg missing, Prom(0), e0.0
  150. real$' %0.3 = LdConst [1] 65535
  151. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  152. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  153. t %0.6 = Identical %0.1, %0.5
  154. cp %0.7 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  155. BB1
  156. void Assume %0.6, %0.7
  157. fs %1.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  158. val^ %1.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %1.1, e0.0
  159. val^ %1.3 = SetShared %1.2
  160. val %1.4 = Force %1.3, e0.0
  161. void StVarSuper seed, %1.4, e0.0
  162. val^? %1.6 = LdVar seed, e0.0
  163. val %1.7 = Force %1.6, e0.0
  164. void Return %1.7
  165. BB2
  166. fs %2.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  167. void Deopt %2.0
  168. Prom 0:
  169. BB0
  170. env e0.0 = LdFunctionEnv
  171. val^? %0.1 = LdVar seed, e0.0
  172. val %0.2 = Force %0.1, e0.0
  173. real$' %0.3 = LdConst [1] 1309
  174. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  175. BB1
  176. val %1.0 = Mul %0.2, %0.3, e0.0
  177. real$' %1.1 = LdConst [1] 13849
  178. cp %1.2 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  179. BB2
  180. fs %2.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  181. void Deopt %2.0
  182. BB3
  183. val %3.0 = Add %1.0, %1.1, e0.0
  184. void Return %3.0
  185. BB4
  186. fs %4.0 = FrameState 0x7f92445874c0+74: [%1.0, %1.1], env=e0.0
  187. void Deopt %4.0
  188. Prom 1:
  189. BB0
  190. env e0.0 = LdFunctionEnv
  191. real$' %0.1 = LdConst [1] 65535
  192. void Return %0.1
  193. ├────── Scope resolution: == 11
  194. nextRandom[0x7f9244606500]
  195. BB0
  196. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  197. cls %0.1 = LdFun bitwAnd, e0.0
  198. prom %0.2 = MkArg missing, Prom(0), e0.0
  199. real$' %0.3 = LdConst [1] 65535
  200. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  201. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  202. t %0.6 = Identical %0.1, %0.5
  203. cp %0.7 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  204. BB1
  205. void Assume %0.6, %0.7
  206. fs %1.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  207. val^ %1.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %1.1, e0.0
  208. val^ %1.3 = SetShared %1.2
  209. val %1.4 = Force %1.3, e0.0
  210. void StVarSuper seed, %1.4, e0.0
  211. val^? %1.6 = LdVar seed, e0.0
  212. val %1.7 = Force %1.6, e0.0
  213. void Return %1.7
  214. BB2
  215. fs %2.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  216. void Deopt %2.0
  217. Prom 0:
  218. BB0
  219. env e0.0 = LdFunctionEnv
  220. val^? %0.1 = LdVar seed, e0.0
  221. val %0.2 = Force %0.1, e0.0
  222. real$' %0.3 = LdConst [1] 1309
  223. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  224. BB1
  225. val %1.0 = Mul %0.2, %0.3, e0.0
  226. real$' %1.1 = LdConst [1] 13849
  227. cp %1.2 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  228. BB2
  229. fs %2.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  230. void Deopt %2.0
  231. BB3
  232. val %3.0 = Add %1.0, %1.1, e0.0
  233. void Return %3.0
  234. BB4
  235. fs %4.0 = FrameState 0x7f92445874c0+74: [%1.0, %1.1], env=e0.0
  236. void Deopt %4.0
  237. Prom 1:
  238. BB0
  239. env e0.0 = LdFunctionEnv
  240. real$' %0.1 = LdConst [1] 65535
  241. void Return %0.1
  242. ├────── Constant folding: == 18
  243. nextRandom[0x7f9244606500]
  244. BB0
  245. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  246. cls %0.1 = LdFun bitwAnd, e0.0
  247. prom %0.2 = MkArg missing, Prom(0), e0.0
  248. real$' %0.3 = LdConst [1] 65535
  249. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  250. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  251. t %0.6 = Identical %0.1, %0.5
  252. cp %0.7 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  253. BB1
  254. void Assume %0.6, %0.7
  255. fs %1.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  256. val^ %1.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %1.1, e0.0
  257. val^ %1.3 = SetShared %1.2
  258. val %1.4 = Force %1.3, e0.0
  259. void StVarSuper seed, %1.4, e0.0
  260. val^? %1.6 = LdVar seed, e0.0
  261. val %1.7 = Force %1.6, e0.0
  262. void Return %1.7
  263. BB2
  264. fs %2.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  265. void Deopt %2.0
  266. Prom 0:
  267. BB0
  268. env e0.0 = LdFunctionEnv
  269. val^? %0.1 = LdVar seed, e0.0
  270. val %0.2 = Force %0.1, e0.0
  271. real$' %0.3 = LdConst [1] 1309
  272. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  273. BB1
  274. val %1.0 = Mul %0.2, %0.3, e0.0
  275. real$' %1.1 = LdConst [1] 13849
  276. cp %1.2 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  277. BB2
  278. fs %2.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  279. void Deopt %2.0
  280. BB3
  281. val %3.0 = Add %1.0, %1.1, e0.0
  282. void Return %3.0
  283. BB4
  284. fs %4.0 = FrameState 0x7f92445874c0+74: [%1.0, %1.1], env=e0.0
  285. void Deopt %4.0
  286. Prom 1:
  287. BB0
  288. env e0.0 = LdFunctionEnv
  289. real$' %0.1 = LdConst [1] 65535
  290. void Return %0.1
  291. ├────── Cleanup redundant operations: == 25
  292. nextRandom[0x7f9244606500]
  293. BB0
  294. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  295. cls %0.1 = LdFun bitwAnd, e0.0
  296. prom %0.2 = MkArg missing, Prom(0), e0.0
  297. real$' %0.3 = LdConst [1] 65535
  298. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  299. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  300. t %0.6 = Identical %0.1, %0.5
  301. cp %0.7 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  302. BB2
  303. void Assume %0.6, %0.7
  304. fs %2.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  305. val^ %2.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.1, e0.0
  306. val^ %2.3 = SetShared %2.2
  307. val %2.4 = Force %2.3, e0.0
  308. void StVarSuper seed, %2.4, e0.0
  309. val^? %2.6 = LdVar seed, e0.0
  310. val %2.7 = Force %2.6, e0.0
  311. void Return %2.7
  312. BB1
  313. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  314. void Deopt %1.0
  315. Prom 0:
  316. BB0
  317. env e0.0 = LdFunctionEnv
  318. val^? %0.1 = LdVar seed, e0.0
  319. val %0.2 = Force %0.1, e0.0
  320. real$' %0.3 = LdConst [1] 1309
  321. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  322. BB2
  323. val %2.0 = Mul %0.2, %0.3, e0.0
  324. real$' %2.1 = LdConst [1] 13849
  325. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  326. BB1
  327. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  328. void Deopt %1.0
  329. BB4
  330. val %4.0 = Add %2.0, %2.1, e0.0
  331. void Return %4.0
  332. BB3
  333. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  334. void Deopt %3.0
  335. Prom 1:
  336. BB0
  337. env e0.0 = LdFunctionEnv
  338. real$' %0.1 = LdConst [1] 65535
  339. void Return %0.1
  340. ├────── Delay instructions: == 32
  341. nextRandom[0x7f9244606500]
  342. BB0
  343. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  344. cls %0.1 = LdFun bitwAnd, e0.0
  345. prom %0.2 = MkArg missing, Prom(0), e0.0
  346. real$' %0.3 = LdConst [1] 65535
  347. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  348. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  349. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  350. BB2
  351. t %2.0 = Identical %0.1, %0.5
  352. void Assume %2.0, %0.6
  353. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  354. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  355. val^ %2.4 = SetShared %2.3
  356. val %2.5 = Force %2.4, e0.0
  357. void StVarSuper seed, %2.5, e0.0
  358. val^? %2.7 = LdVar seed, e0.0
  359. val %2.8 = Force %2.7, e0.0
  360. void Return %2.8
  361. BB1
  362. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  363. void Deopt %1.0
  364. Prom 0:
  365. BB0
  366. env e0.0 = LdFunctionEnv
  367. val^? %0.1 = LdVar seed, e0.0
  368. val %0.2 = Force %0.1, e0.0
  369. real$' %0.3 = LdConst [1] 1309
  370. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  371. BB2
  372. val %2.0 = Mul %0.2, %0.3, e0.0
  373. real$' %2.1 = LdConst [1] 13849
  374. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  375. BB1
  376. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  377. void Deopt %1.0
  378. BB4
  379. val %4.0 = Add %2.0, %2.1, e0.0
  380. void Return %4.0
  381. BB3
  382. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  383. void Deopt %3.0
  384. Prom 1:
  385. BB0
  386. env e0.0 = LdFunctionEnv
  387. real$' %0.1 = LdConst [1] 65535
  388. void Return %0.1
  389. ├────── Elide environments not needed: == 39
  390. nextRandom[0x7f9244606500]
  391. BB0
  392. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  393. cls %0.1 = LdFun bitwAnd, e0.0
  394. prom %0.2 = MkArg missing, Prom(0), e0.0
  395. real$' %0.3 = LdConst [1] 65535
  396. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  397. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  398. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  399. BB2
  400. t %2.0 = Identical %0.1, %0.5
  401. void Assume %2.0, %0.6
  402. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  403. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  404. val^ %2.4 = SetShared %2.3
  405. val %2.5 = Force %2.4, e0.0
  406. void StVarSuper seed, %2.5, e0.0
  407. val^? %2.7 = LdVar seed, e0.0
  408. val %2.8 = Force %2.7, e0.0
  409. void Return %2.8
  410. BB1
  411. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  412. void Deopt %1.0
  413. Prom 0:
  414. BB0
  415. env e0.0 = LdFunctionEnv
  416. val^? %0.1 = LdVar seed, e0.0
  417. val %0.2 = Force %0.1, e0.0
  418. real$' %0.3 = LdConst [1] 1309
  419. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  420. BB2
  421. val %2.0 = Mul %0.2, %0.3, e0.0
  422. real$' %2.1 = LdConst [1] 13849
  423. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  424. BB1
  425. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  426. void Deopt %1.0
  427. BB4
  428. val %4.0 = Add %2.0, %2.1, e0.0
  429. void Return %4.0
  430. BB3
  431. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  432. void Deopt %3.0
  433. Prom 1:
  434. BB0
  435. env e0.0 = LdFunctionEnv
  436. real$' %0.1 = LdConst [1] 65535
  437. void Return %0.1
  438. ├────── Move environment creation as far as possible: == 46
  439. nextRandom[0x7f9244606500]
  440. BB0
  441. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  442. cls %0.1 = LdFun bitwAnd, e0.0
  443. prom %0.2 = MkArg missing, Prom(0), e0.0
  444. real$' %0.3 = LdConst [1] 65535
  445. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  446. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  447. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  448. BB2
  449. t %2.0 = Identical %0.1, %0.5
  450. void Assume %2.0, %0.6
  451. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  452. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  453. val^ %2.4 = SetShared %2.3
  454. val %2.5 = Force %2.4, e0.0
  455. void StVarSuper seed, %2.5, e0.0
  456. val^? %2.7 = LdVar seed, e0.0
  457. val %2.8 = Force %2.7, e0.0
  458. void Return %2.8
  459. BB1
  460. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  461. void Deopt %1.0
  462. Prom 0:
  463. BB0
  464. env e0.0 = LdFunctionEnv
  465. val^? %0.1 = LdVar seed, e0.0
  466. val %0.2 = Force %0.1, e0.0
  467. real$' %0.3 = LdConst [1] 1309
  468. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  469. BB2
  470. val %2.0 = Mul %0.2, %0.3, e0.0
  471. real$' %2.1 = LdConst [1] 13849
  472. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  473. BB1
  474. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  475. void Deopt %1.0
  476. BB4
  477. val %4.0 = Add %2.0, %2.1, e0.0
  478. void Return %4.0
  479. BB3
  480. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  481. void Deopt %3.0
  482. Prom 1:
  483. BB0
  484. env e0.0 = LdFunctionEnv
  485. real$' %0.1 = LdConst [1] 65535
  486. void Return %0.1
  487. ├────── Cleanup redundant operations: == 53
  488. nextRandom[0x7f9244606500]
  489. BB0
  490. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  491. cls %0.1 = LdFun bitwAnd, e0.0
  492. prom %0.2 = MkArg missing, Prom(0), e0.0
  493. real$' %0.3 = LdConst [1] 65535
  494. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  495. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  496. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  497. BB2
  498. t %2.0 = Identical %0.1, %0.5
  499. void Assume %2.0, %0.6
  500. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  501. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  502. val^ %2.4 = SetShared %2.3
  503. val %2.5 = Force %2.4, e0.0
  504. void StVarSuper seed, %2.5, e0.0
  505. val^? %2.7 = LdVar seed, e0.0
  506. val %2.8 = Force %2.7, e0.0
  507. void Return %2.8
  508. BB1
  509. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  510. void Deopt %1.0
  511. Prom 0:
  512. BB0
  513. env e0.0 = LdFunctionEnv
  514. val^? %0.1 = LdVar seed, e0.0
  515. val %0.2 = Force %0.1, e0.0
  516. real$' %0.3 = LdConst [1] 1309
  517. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  518. BB2
  519. val %2.0 = Mul %0.2, %0.3, e0.0
  520. real$' %2.1 = LdConst [1] 13849
  521. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  522. BB1
  523. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  524. void Deopt %1.0
  525. BB4
  526. val %4.0 = Add %2.0, %2.1, e0.0
  527. void Return %4.0
  528. BB3
  529. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  530. void Deopt %3.0
  531. Prom 1:
  532. BB0
  533. env e0.0 = LdFunctionEnv
  534. real$' %0.1 = LdConst [1] 65535
  535. void Return %0.1
  536. ├────── Inline closures: == 60
  537. nextRandom[0x7f9244606500]
  538. BB0
  539. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  540. cls %0.1 = LdFun bitwAnd, e0.0
  541. prom %0.2 = MkArg missing, Prom(0), e0.0
  542. real$' %0.3 = LdConst [1] 65535
  543. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  544. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  545. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  546. BB2
  547. t %2.0 = Identical %0.1, %0.5
  548. void Assume %2.0, %0.6
  549. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  550. goto BB4
  551. BB1
  552. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  553. void Deopt %1.0
  554. BB4
  555. val^? %4.0 = CastType %0.2
  556. val^? %4.1 = CastType %0.4
  557. env e4.2 = MkEnv a=%4.0, b=%4.1, parent=<environment: namespace:base>
  558. val %4.3 = Force %4.0, e4.2
  559. val^? %4.4 = LdVar b, e4.2
  560. val %4.5 = Force %4.4, e4.2
  561. val^ %4.6 = CallBuiltin bitwiseAnd(%4.3, %4.5) e4.2
  562. val %4.7 = Force %4.6, e4.2
  563. goto BB3
  564. BB3
  565. val^ %3.0 = SetShared %4.7
  566. val %3.1 = Force %3.0, e0.0
  567. void StVarSuper seed, %3.1, e0.0
  568. val^? %3.3 = LdVar seed, e0.0
  569. val %3.4 = Force %3.3, e0.0
  570. void Return %3.4
  571. Prom 0:
  572. BB0
  573. env e0.0 = LdFunctionEnv
  574. val^? %0.1 = LdVar seed, e0.0
  575. val %0.2 = Force %0.1, e0.0
  576. real$' %0.3 = LdConst [1] 1309
  577. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  578. BB2
  579. val %2.0 = Mul %0.2, %0.3, e0.0
  580. real$' %2.1 = LdConst [1] 13849
  581. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  582. BB1
  583. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  584. void Deopt %1.0
  585. BB4
  586. val %4.0 = Add %2.0, %2.1, e0.0
  587. void Return %4.0
  588. BB3
  589. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  590. void Deopt %3.0
  591. Prom 1:
  592. BB0
  593. env e0.0 = LdFunctionEnv
  594. real$' %0.1 = LdConst [1] 65535
  595. void Return %0.1
  596. ├────── Inline Promises: == 67
  597. nextRandom[0x7f9244606500]
  598. BB0
  599. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  600. cls %0.1 = LdFun bitwAnd, e0.0
  601. prom %0.2 = MkArg missing, Prom(0), e0.0
  602. real$' %0.3 = LdConst [1] 65535
  603. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  604. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  605. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  606. BB2
  607. t %2.0 = Identical %0.1, %0.5
  608. void Assume %2.0, %0.6
  609. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  610. goto BB4
  611. BB1
  612. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  613. void Deopt %1.0
  614. BB4
  615. val^? %4.0 = CastType %0.2
  616. env e4.1 = MkEnv a=%4.0, b=%0.3, parent=<environment: namespace:base>
  617. val %4.2 = Force! %4.0, e4.1
  618. val^? %4.3 = LdVar b, e4.1
  619. val %4.4 = Force %4.3, e4.1
  620. val^ %4.5 = CallBuiltin bitwiseAnd(%4.2, %4.4) e4.1
  621. val %4.6 = Force %4.5, e4.1
  622. goto BB3
  623. BB3
  624. val^ %3.0 = SetShared %4.6
  625. val %3.1 = Force %3.0, e0.0
  626. void StVarSuper seed, %3.1, e0.0
  627. val^? %3.3 = LdVar seed, e0.0
  628. val %3.4 = Force %3.3, e0.0
  629. void Return %3.4
  630. Prom 0:
  631. BB0
  632. env e0.0 = LdFunctionEnv
  633. val^? %0.1 = LdVar seed, e0.0
  634. val %0.2 = Force %0.1, e0.0
  635. real$' %0.3 = LdConst [1] 1309
  636. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  637. BB2
  638. val %2.0 = Mul %0.2, %0.3, e0.0
  639. real$' %2.1 = LdConst [1] 13849
  640. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  641. BB1
  642. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  643. void Deopt %1.0
  644. BB4
  645. val %4.0 = Add %2.0, %2.1, e0.0
  646. void Return %4.0
  647. BB3
  648. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  649. void Deopt %3.0
  650. Prom 1:
  651. BB0
  652. env e0.0 = LdFunctionEnv
  653. real$' %0.1 = LdConst [1] 65535
  654. void Return %0.1
  655. ├────── Scope resolution: == 74
  656. nextRandom[0x7f9244606500]
  657. BB0
  658. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  659. cls %0.1 = LdFun bitwAnd, e0.0
  660. prom %0.2 = MkArg missing, Prom(0), e0.0
  661. real$' %0.3 = LdConst [1] 65535
  662. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  663. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  664. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  665. BB2
  666. t %2.0 = Identical %0.1, %0.5
  667. void Assume %2.0, %0.6
  668. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  669. goto BB4
  670. BB1
  671. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  672. void Deopt %1.0
  673. BB4
  674. val^? %4.0 = CastType %0.2
  675. env e4.1 = MkEnv a=%4.0, b=%0.3, parent=<environment: namespace:base>
  676. val %4.2 = Force! %4.0, e4.1
  677. val^ %4.3 = CallBuiltin bitwiseAnd(%4.2, %0.3) e4.1
  678. val %4.4 = Force %4.3, e4.1
  679. goto BB3
  680. BB3
  681. val^ %3.0 = SetShared %4.4
  682. val %3.1 = Force %3.0, e0.0
  683. void StVarSuper seed, %3.1, e0.0
  684. val^? %3.3 = LdVar seed, e0.0
  685. val %3.4 = Force %3.3, e0.0
  686. void Return %3.4
  687. Prom 0:
  688. BB0
  689. env e0.0 = LdFunctionEnv
  690. val^? %0.1 = LdVar seed, e0.0
  691. val %0.2 = Force %0.1, e0.0
  692. real$' %0.3 = LdConst [1] 1309
  693. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  694. BB2
  695. val %2.0 = Mul %0.2, %0.3, e0.0
  696. real$' %2.1 = LdConst [1] 13849
  697. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  698. BB1
  699. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  700. void Deopt %1.0
  701. BB4
  702. val %4.0 = Add %2.0, %2.1, e0.0
  703. void Return %4.0
  704. BB3
  705. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  706. void Deopt %3.0
  707. Prom 1:
  708. BB0
  709. env e0.0 = LdFunctionEnv
  710. real$' %0.1 = LdConst [1] 65535
  711. void Return %0.1
  712. ├────── Constant folding: == 81
  713. nextRandom[0x7f9244606500]
  714. BB0
  715. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  716. cls %0.1 = LdFun bitwAnd, e0.0
  717. prom %0.2 = MkArg missing, Prom(0), e0.0
  718. real$' %0.3 = LdConst [1] 65535
  719. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  720. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  721. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  722. BB2
  723. t %2.0 = Identical %0.1, %0.5
  724. void Assume %2.0, %0.6
  725. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  726. goto BB4
  727. BB1
  728. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  729. void Deopt %1.0
  730. BB4
  731. val^? %4.0 = CastType %0.2
  732. env e4.1 = MkEnv a=%4.0, b=%0.3, parent=<environment: namespace:base>
  733. val %4.2 = Force! %4.0, e4.1
  734. val^ %4.3 = CallBuiltin bitwiseAnd(%4.2, %0.3) e4.1
  735. val %4.4 = Force %4.3, e4.1
  736. goto BB3
  737. BB3
  738. val^ %3.0 = SetShared %4.4
  739. val %3.1 = Force %3.0, e0.0
  740. void StVarSuper seed, %3.1, e0.0
  741. val^? %3.3 = LdVar seed, e0.0
  742. val %3.4 = Force %3.3, e0.0
  743. void Return %3.4
  744. Prom 0:
  745. BB0
  746. env e0.0 = LdFunctionEnv
  747. val^? %0.1 = LdVar seed, e0.0
  748. val %0.2 = Force %0.1, e0.0
  749. real$' %0.3 = LdConst [1] 1309
  750. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  751. BB2
  752. val %2.0 = Mul %0.2, %0.3, e0.0
  753. real$' %2.1 = LdConst [1] 13849
  754. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  755. BB1
  756. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  757. void Deopt %1.0
  758. BB4
  759. val %4.0 = Add %2.0, %2.1, e0.0
  760. void Return %4.0
  761. BB3
  762. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  763. void Deopt %3.0
  764. Prom 1:
  765. BB0
  766. env e0.0 = LdFunctionEnv
  767. real$' %0.1 = LdConst [1] 65535
  768. void Return %0.1
  769. ├────── Cleanup redundant operations: == 88
  770. nextRandom[0x7f9244606500]
  771. BB0
  772. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  773. cls %0.1 = LdFun bitwAnd, e0.0
  774. prom %0.2 = MkArg missing, Prom(0), e0.0
  775. real$' %0.3 = LdConst [1] 65535
  776. cls' %0.4 = LdConst function (a, b) .Internal(bitwiseAnd...
  777. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  778. BB2
  779. t %2.0 = Identical %0.1, %0.4
  780. void Assume %2.0, %0.5
  781. val^? %2.2 = CastType %0.2
  782. env e2.3 = MkEnv a=%2.2, b=%0.3, parent=<environment: namespace:base>
  783. val %2.4 = Force! %2.2, e2.3
  784. val^ %2.5 = CallBuiltin bitwiseAnd(%2.4, %0.3) e2.3
  785. val %2.6 = Force %2.5, e2.3
  786. goto BB3
  787. BB1
  788. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  789. void Deopt %1.0
  790. BB3
  791. val %3.0 = SetShared %2.6
  792. void StVarSuper seed, %2.6, e0.0
  793. val^? %3.2 = LdVar seed, e0.0
  794. val %3.3 = Force %3.2, e0.0
  795. void Return %3.3
  796. Prom 0:
  797. BB0
  798. env e0.0 = LdFunctionEnv
  799. val^? %0.1 = LdVar seed, e0.0
  800. val %0.2 = Force %0.1, e0.0
  801. real$' %0.3 = LdConst [1] 1309
  802. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  803. BB2
  804. val %2.0 = Mul %0.2, %0.3, e0.0
  805. real$' %2.1 = LdConst [1] 13849
  806. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  807. BB1
  808. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  809. void Deopt %1.0
  810. BB4
  811. val %4.0 = Add %2.0, %2.1, e0.0
  812. void Return %4.0
  813. BB3
  814. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  815. void Deopt %3.0
  816. ├────── Delay instructions: == 95
  817. nextRandom[0x7f9244606500]
  818. BB0
  819. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  820. cls %0.1 = LdFun bitwAnd, e0.0
  821. prom %0.2 = MkArg missing, Prom(0), e0.0
  822. real$' %0.3 = LdConst [1] 65535
  823. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  824. BB2
  825. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  826. t %2.1 = Identical %0.1, %2.0
  827. void Assume %2.1, %0.4
  828. val^? %2.3 = CastType %0.2
  829. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  830. val %2.5 = Force! %2.3, e2.4
  831. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  832. val %2.7 = Force %2.6, e2.4
  833. goto BB3
  834. BB1
  835. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  836. void Deopt %1.0
  837. BB3
  838. val %3.0 = SetShared %2.7
  839. void StVarSuper seed, %2.7, e0.0
  840. val^? %3.2 = LdVar seed, e0.0
  841. val %3.3 = Force %3.2, e0.0
  842. void Return %3.3
  843. Prom 0:
  844. BB0
  845. env e0.0 = LdFunctionEnv
  846. val^? %0.1 = LdVar seed, e0.0
  847. val %0.2 = Force %0.1, e0.0
  848. real$' %0.3 = LdConst [1] 1309
  849. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  850. BB2
  851. val %2.0 = Mul %0.2, %0.3, e0.0
  852. real$' %2.1 = LdConst [1] 13849
  853. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  854. BB1
  855. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  856. void Deopt %1.0
  857. BB4
  858. val %4.0 = Add %2.0, %2.1, e0.0
  859. void Return %4.0
  860. BB3
  861. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  862. void Deopt %3.0
  863. ├────── Elide environments not needed: == 102
  864. nextRandom[0x7f9244606500]
  865. BB0
  866. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  867. cls %0.1 = LdFun bitwAnd, e0.0
  868. prom %0.2 = MkArg missing, Prom(0), e0.0
  869. real$' %0.3 = LdConst [1] 65535
  870. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  871. BB2
  872. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  873. t %2.1 = Identical %0.1, %2.0
  874. void Assume %2.1, %0.4
  875. val^? %2.3 = CastType %0.2
  876. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  877. val %2.5 = Force! %2.3, e2.4
  878. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  879. val %2.7 = Force %2.6, e2.4
  880. goto BB3
  881. BB1
  882. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  883. void Deopt %1.0
  884. BB3
  885. val %3.0 = SetShared %2.7
  886. void StVarSuper seed, %2.7, e0.0
  887. val^? %3.2 = LdVar seed, e0.0
  888. val %3.3 = Force %3.2, e0.0
  889. void Return %3.3
  890. Prom 0:
  891. BB0
  892. env e0.0 = LdFunctionEnv
  893. val^? %0.1 = LdVar seed, e0.0
  894. val %0.2 = Force %0.1, e0.0
  895. real$' %0.3 = LdConst [1] 1309
  896. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  897. BB2
  898. val %2.0 = Mul %0.2, %0.3, e0.0
  899. real$' %2.1 = LdConst [1] 13849
  900. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  901. BB1
  902. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  903. void Deopt %1.0
  904. BB4
  905. val %4.0 = Add %2.0, %2.1, e0.0
  906. void Return %4.0
  907. BB3
  908. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  909. void Deopt %3.0
  910. ├────── Move environment creation as far as possible: == 109
  911. nextRandom[0x7f9244606500]
  912. BB0
  913. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  914. cls %0.1 = LdFun bitwAnd, e0.0
  915. prom %0.2 = MkArg missing, Prom(0), e0.0
  916. real$' %0.3 = LdConst [1] 65535
  917. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  918. BB2
  919. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  920. t %2.1 = Identical %0.1, %2.0
  921. void Assume %2.1, %0.4
  922. val^? %2.3 = CastType %0.2
  923. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  924. val %2.5 = Force! %2.3, e2.4
  925. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  926. val %2.7 = Force %2.6, e2.4
  927. goto BB3
  928. BB1
  929. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  930. void Deopt %1.0
  931. BB3
  932. val %3.0 = SetShared %2.7
  933. void StVarSuper seed, %2.7, e0.0
  934. val^? %3.2 = LdVar seed, e0.0
  935. val %3.3 = Force %3.2, e0.0
  936. void Return %3.3
  937. Prom 0:
  938. BB0
  939. env e0.0 = LdFunctionEnv
  940. val^? %0.1 = LdVar seed, e0.0
  941. val %0.2 = Force %0.1, e0.0
  942. real$' %0.3 = LdConst [1] 1309
  943. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  944. BB2
  945. val %2.0 = Mul %0.2, %0.3, e0.0
  946. real$' %2.1 = LdConst [1] 13849
  947. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  948. BB1
  949. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  950. void Deopt %1.0
  951. BB4
  952. val %4.0 = Add %2.0, %2.1, e0.0
  953. void Return %4.0
  954. BB3
  955. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  956. void Deopt %3.0
  957. ├────── Cleanup redundant operations: == 116
  958. nextRandom[0x7f9244606500]
  959. BB0
  960. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  961. cls %0.1 = LdFun bitwAnd, e0.0
  962. prom %0.2 = MkArg missing, Prom(0), e0.0
  963. real$' %0.3 = LdConst [1] 65535
  964. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  965. BB2
  966. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  967. t %2.1 = Identical %0.1, %2.0
  968. void Assume %2.1, %0.4
  969. val^? %2.3 = CastType %0.2
  970. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  971. val %2.5 = Force! %2.3, e2.4
  972. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  973. val %2.7 = Force %2.6, e2.4
  974. void StVarSuper seed, %2.7, e0.0
  975. val^? %2.9 = LdVar seed, e0.0
  976. val %2.10 = Force %2.9, e0.0
  977. void Return %2.10
  978. BB1
  979. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  980. void Deopt %1.0
  981. Prom 0:
  982. BB0
  983. env e0.0 = LdFunctionEnv
  984. val^? %0.1 = LdVar seed, e0.0
  985. val %0.2 = Force %0.1, e0.0
  986. real$' %0.3 = LdConst [1] 1309
  987. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  988. BB2
  989. val %2.0 = Mul %0.2, %0.3, e0.0
  990. real$' %2.1 = LdConst [1] 13849
  991. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  992. BB1
  993. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  994. void Deopt %1.0
  995. BB4
  996. val %4.0 = Add %2.0, %2.1, e0.0
  997. void Return %4.0
  998. BB3
  999. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1000. void Deopt %3.0
  1001. ├────── Inline closures: == 123
  1002. nextRandom[0x7f9244606500]
  1003. BB0
  1004. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1005. cls %0.1 = LdFun bitwAnd, e0.0
  1006. prom %0.2 = MkArg missing, Prom(0), e0.0
  1007. real$' %0.3 = LdConst [1] 65535
  1008. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1009. BB2
  1010. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1011. t %2.1 = Identical %0.1, %2.0
  1012. void Assume %2.1, %0.4
  1013. val^? %2.3 = CastType %0.2
  1014. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1015. val %2.5 = Force! %2.3, e2.4
  1016. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1017. val %2.7 = Force %2.6, e2.4
  1018. void StVarSuper seed, %2.7, e0.0
  1019. val^? %2.9 = LdVar seed, e0.0
  1020. val %2.10 = Force %2.9, e0.0
  1021. void Return %2.10
  1022. BB1
  1023. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1024. void Deopt %1.0
  1025. Prom 0:
  1026. BB0
  1027. env e0.0 = LdFunctionEnv
  1028. val^? %0.1 = LdVar seed, e0.0
  1029. val %0.2 = Force %0.1, e0.0
  1030. real$' %0.3 = LdConst [1] 1309
  1031. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1032. BB2
  1033. val %2.0 = Mul %0.2, %0.3, e0.0
  1034. real$' %2.1 = LdConst [1] 13849
  1035. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1036. BB1
  1037. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1038. void Deopt %1.0
  1039. BB4
  1040. val %4.0 = Add %2.0, %2.1, e0.0
  1041. void Return %4.0
  1042. BB3
  1043. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1044. void Deopt %3.0
  1045. ├────── Inline Promises: == 130
  1046. nextRandom[0x7f9244606500]
  1047. BB0
  1048. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1049. cls %0.1 = LdFun bitwAnd, e0.0
  1050. prom %0.2 = MkArg missing, Prom(0), e0.0
  1051. real$' %0.3 = LdConst [1] 65535
  1052. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1053. BB2
  1054. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1055. t %2.1 = Identical %0.1, %2.0
  1056. void Assume %2.1, %0.4
  1057. val^? %2.3 = CastType %0.2
  1058. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1059. val %2.5 = Force! %2.3, e2.4
  1060. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1061. val %2.7 = Force %2.6, e2.4
  1062. void StVarSuper seed, %2.7, e0.0
  1063. val^? %2.9 = LdVar seed, e0.0
  1064. val %2.10 = Force %2.9, e0.0
  1065. void Return %2.10
  1066. BB1
  1067. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1068. void Deopt %1.0
  1069. Prom 0:
  1070. BB0
  1071. env e0.0 = LdFunctionEnv
  1072. val^? %0.1 = LdVar seed, e0.0
  1073. val %0.2 = Force %0.1, e0.0
  1074. real$' %0.3 = LdConst [1] 1309
  1075. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1076. BB2
  1077. val %2.0 = Mul %0.2, %0.3, e0.0
  1078. real$' %2.1 = LdConst [1] 13849
  1079. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1080. BB1
  1081. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1082. void Deopt %1.0
  1083. BB4
  1084. val %4.0 = Add %2.0, %2.1, e0.0
  1085. void Return %4.0
  1086. BB3
  1087. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1088. void Deopt %3.0
  1089. ├────── Scope resolution: == 137
  1090. nextRandom[0x7f9244606500]
  1091. BB0
  1092. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1093. cls %0.1 = LdFun bitwAnd, e0.0
  1094. prom %0.2 = MkArg missing, Prom(0), e0.0
  1095. real$' %0.3 = LdConst [1] 65535
  1096. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1097. BB2
  1098. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1099. t %2.1 = Identical %0.1, %2.0
  1100. void Assume %2.1, %0.4
  1101. val^? %2.3 = CastType %0.2
  1102. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1103. val %2.5 = Force! %2.3, e2.4
  1104. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1105. val %2.7 = Force %2.6, e2.4
  1106. void StVarSuper seed, %2.7, e0.0
  1107. val^? %2.9 = LdVar seed, e0.0
  1108. val %2.10 = Force %2.9, e0.0
  1109. void Return %2.10
  1110. BB1
  1111. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1112. void Deopt %1.0
  1113. Prom 0:
  1114. BB0
  1115. env e0.0 = LdFunctionEnv
  1116. val^? %0.1 = LdVar seed, e0.0
  1117. val %0.2 = Force %0.1, e0.0
  1118. real$' %0.3 = LdConst [1] 1309
  1119. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1120. BB2
  1121. val %2.0 = Mul %0.2, %0.3, e0.0
  1122. real$' %2.1 = LdConst [1] 13849
  1123. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1124. BB1
  1125. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1126. void Deopt %1.0
  1127. BB4
  1128. val %4.0 = Add %2.0, %2.1, e0.0
  1129. void Return %4.0
  1130. BB3
  1131. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1132. void Deopt %3.0
  1133. ├────── Constant folding: == 144
  1134. nextRandom[0x7f9244606500]
  1135. BB0
  1136. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1137. cls %0.1 = LdFun bitwAnd, e0.0
  1138. prom %0.2 = MkArg missing, Prom(0), e0.0
  1139. real$' %0.3 = LdConst [1] 65535
  1140. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1141. BB2
  1142. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1143. t %2.1 = Identical %0.1, %2.0
  1144. void Assume %2.1, %0.4
  1145. val^? %2.3 = CastType %0.2
  1146. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1147. val %2.5 = Force! %2.3, e2.4
  1148. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1149. val %2.7 = Force %2.6, e2.4
  1150. void StVarSuper seed, %2.7, e0.0
  1151. val^? %2.9 = LdVar seed, e0.0
  1152. val %2.10 = Force %2.9, e0.0
  1153. void Return %2.10
  1154. BB1
  1155. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1156. void Deopt %1.0
  1157. Prom 0:
  1158. BB0
  1159. env e0.0 = LdFunctionEnv
  1160. val^? %0.1 = LdVar seed, e0.0
  1161. val %0.2 = Force %0.1, e0.0
  1162. real$' %0.3 = LdConst [1] 1309
  1163. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1164. BB2
  1165. val %2.0 = Mul %0.2, %0.3, e0.0
  1166. real$' %2.1 = LdConst [1] 13849
  1167. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1168. BB1
  1169. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1170. void Deopt %1.0
  1171. BB4
  1172. val %4.0 = Add %2.0, %2.1, e0.0
  1173. void Return %4.0
  1174. BB3
  1175. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1176. void Deopt %3.0
  1177. ├────── Cleanup redundant operations: == 151
  1178. nextRandom[0x7f9244606500]
  1179. BB0
  1180. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1181. cls %0.1 = LdFun bitwAnd, e0.0
  1182. prom %0.2 = MkArg missing, Prom(0), e0.0
  1183. real$' %0.3 = LdConst [1] 65535
  1184. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1185. BB2
  1186. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1187. t %2.1 = Identical %0.1, %2.0
  1188. void Assume %2.1, %0.4
  1189. val^? %2.3 = CastType %0.2
  1190. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1191. val %2.5 = Force! %2.3, e2.4
  1192. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1193. val %2.7 = Force %2.6, e2.4
  1194. void StVarSuper seed, %2.7, e0.0
  1195. val^? %2.9 = LdVar seed, e0.0
  1196. val %2.10 = Force %2.9, e0.0
  1197. void Return %2.10
  1198. BB1
  1199. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1200. void Deopt %1.0
  1201. Prom 0:
  1202. BB0
  1203. env e0.0 = LdFunctionEnv
  1204. val^? %0.1 = LdVar seed, e0.0
  1205. val %0.2 = Force %0.1, e0.0
  1206. real$' %0.3 = LdConst [1] 1309
  1207. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1208. BB2
  1209. val %2.0 = Mul %0.2, %0.3, e0.0
  1210. real$' %2.1 = LdConst [1] 13849
  1211. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1212. BB1
  1213. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1214. void Deopt %1.0
  1215. BB4
  1216. val %4.0 = Add %2.0, %2.1, e0.0
  1217. void Return %4.0
  1218. BB3
  1219. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1220. void Deopt %3.0
  1221. ├────── Delay instructions: == 158
  1222. nextRandom[0x7f9244606500]
  1223. BB0
  1224. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1225. cls %0.1 = LdFun bitwAnd, e0.0
  1226. prom %0.2 = MkArg missing, Prom(0), e0.0
  1227. real$' %0.3 = LdConst [1] 65535
  1228. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1229. BB2
  1230. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1231. t %2.1 = Identical %0.1, %2.0
  1232. void Assume %2.1, %0.4
  1233. val^? %2.3 = CastType %0.2
  1234. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1235. val %2.5 = Force! %2.3, e2.4
  1236. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1237. val %2.7 = Force %2.6, e2.4
  1238. void StVarSuper seed, %2.7, e0.0
  1239. val^? %2.9 = LdVar seed, e0.0
  1240. val %2.10 = Force %2.9, e0.0
  1241. void Return %2.10
  1242. BB1
  1243. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1244. void Deopt %1.0
  1245. Prom 0:
  1246. BB0
  1247. env e0.0 = LdFunctionEnv
  1248. val^? %0.1 = LdVar seed, e0.0
  1249. val %0.2 = Force %0.1, e0.0
  1250. real$' %0.3 = LdConst [1] 1309
  1251. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1252. BB2
  1253. val %2.0 = Mul %0.2, %0.3, e0.0
  1254. real$' %2.1 = LdConst [1] 13849
  1255. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1256. BB1
  1257. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1258. void Deopt %1.0
  1259. BB4
  1260. val %4.0 = Add %2.0, %2.1, e0.0
  1261. void Return %4.0
  1262. BB3
  1263. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1264. void Deopt %3.0
  1265. ├────── Elide environments not needed: == 165
  1266. nextRandom[0x7f9244606500]
  1267. BB0
  1268. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1269. cls %0.1 = LdFun bitwAnd, e0.0
  1270. prom %0.2 = MkArg missing, Prom(0), e0.0
  1271. real$' %0.3 = LdConst [1] 65535
  1272. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1273. BB2
  1274. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1275. t %2.1 = Identical %0.1, %2.0
  1276. void Assume %2.1, %0.4
  1277. val^? %2.3 = CastType %0.2
  1278. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1279. val %2.5 = Force! %2.3, e2.4
  1280. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1281. val %2.7 = Force %2.6, e2.4
  1282. void StVarSuper seed, %2.7, e0.0
  1283. val^? %2.9 = LdVar seed, e0.0
  1284. val %2.10 = Force %2.9, e0.0
  1285. void Return %2.10
  1286. BB1
  1287. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1288. void Deopt %1.0
  1289. Prom 0:
  1290. BB0
  1291. env e0.0 = LdFunctionEnv
  1292. val^? %0.1 = LdVar seed, e0.0
  1293. val %0.2 = Force %0.1, e0.0
  1294. real$' %0.3 = LdConst [1] 1309
  1295. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1296. BB2
  1297. val %2.0 = Mul %0.2, %0.3, e0.0
  1298. real$' %2.1 = LdConst [1] 13849
  1299. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1300. BB1
  1301. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1302. void Deopt %1.0
  1303. BB4
  1304. val %4.0 = Add %2.0, %2.1, e0.0
  1305. void Return %4.0
  1306. BB3
  1307. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1308. void Deopt %3.0
  1309. ├────── Move environment creation as far as possible: == 172
  1310. nextRandom[0x7f9244606500]
  1311. BB0
  1312. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1313. cls %0.1 = LdFun bitwAnd, e0.0
  1314. prom %0.2 = MkArg missing, Prom(0), e0.0
  1315. real$' %0.3 = LdConst [1] 65535
  1316. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1317. BB2
  1318. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1319. t %2.1 = Identical %0.1, %2.0
  1320. void Assume %2.1, %0.4
  1321. val^? %2.3 = CastType %0.2
  1322. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1323. val %2.5 = Force! %2.3, e2.4
  1324. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1325. val %2.7 = Force %2.6, e2.4
  1326. void StVarSuper seed, %2.7, e0.0
  1327. val^? %2.9 = LdVar seed, e0.0
  1328. val %2.10 = Force %2.9, e0.0
  1329. void Return %2.10
  1330. BB1
  1331. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1332. void Deopt %1.0
  1333. Prom 0:
  1334. BB0
  1335. env e0.0 = LdFunctionEnv
  1336. val^? %0.1 = LdVar seed, e0.0
  1337. val %0.2 = Force %0.1, e0.0
  1338. real$' %0.3 = LdConst [1] 1309
  1339. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1340. BB2
  1341. val %2.0 = Mul %0.2, %0.3, e0.0
  1342. real$' %2.1 = LdConst [1] 13849
  1343. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1344. BB1
  1345. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1346. void Deopt %1.0
  1347. BB4
  1348. val %4.0 = Add %2.0, %2.1, e0.0
  1349. void Return %4.0
  1350. BB3
  1351. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1352. void Deopt %3.0
  1353. ├────── Cleanup redundant operations: == 179
  1354. nextRandom[0x7f9244606500]
  1355. BB0
  1356. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1357. cls %0.1 = LdFun bitwAnd, e0.0
  1358. prom %0.2 = MkArg missing, Prom(0), e0.0
  1359. real$' %0.3 = LdConst [1] 65535
  1360. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1361. BB2
  1362. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1363. t %2.1 = Identical %0.1, %2.0
  1364. void Assume %2.1, %0.4
  1365. val^? %2.3 = CastType %0.2
  1366. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1367. val %2.5 = Force! %2.3, e2.4
  1368. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1369. val %2.7 = Force %2.6, e2.4
  1370. void StVarSuper seed, %2.7, e0.0
  1371. val^? %2.9 = LdVar seed, e0.0
  1372. val %2.10 = Force %2.9, e0.0
  1373. void Return %2.10
  1374. BB1
  1375. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1376. void Deopt %1.0
  1377. Prom 0:
  1378. BB0
  1379. env e0.0 = LdFunctionEnv
  1380. val^? %0.1 = LdVar seed, e0.0
  1381. val %0.2 = Force %0.1, e0.0
  1382. real$' %0.3 = LdConst [1] 1309
  1383. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1384. BB2
  1385. val %2.0 = Mul %0.2, %0.3, e0.0
  1386. real$' %2.1 = LdConst [1] 13849
  1387. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1388. BB1
  1389. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1390. void Deopt %1.0
  1391. BB4
  1392. val %4.0 = Add %2.0, %2.1, e0.0
  1393. void Return %4.0
  1394. BB3
  1395. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1396. void Deopt %3.0
  1397. ├────── Inline closures: == 186
  1398. nextRandom[0x7f9244606500]
  1399. BB0
  1400. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1401. cls %0.1 = LdFun bitwAnd, e0.0
  1402. prom %0.2 = MkArg missing, Prom(0), e0.0
  1403. real$' %0.3 = LdConst [1] 65535
  1404. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1405. BB2
  1406. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1407. t %2.1 = Identical %0.1, %2.0
  1408. void Assume %2.1, %0.4
  1409. val^? %2.3 = CastType %0.2
  1410. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1411. val %2.5 = Force! %2.3, e2.4
  1412. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1413. val %2.7 = Force %2.6, e2.4
  1414. void StVarSuper seed, %2.7, e0.0
  1415. val^? %2.9 = LdVar seed, e0.0
  1416. val %2.10 = Force %2.9, e0.0
  1417. void Return %2.10
  1418. BB1
  1419. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1420. void Deopt %1.0
  1421. Prom 0:
  1422. BB0
  1423. env e0.0 = LdFunctionEnv
  1424. val^? %0.1 = LdVar seed, e0.0
  1425. val %0.2 = Force %0.1, e0.0
  1426. real$' %0.3 = LdConst [1] 1309
  1427. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1428. BB2
  1429. val %2.0 = Mul %0.2, %0.3, e0.0
  1430. real$' %2.1 = LdConst [1] 13849
  1431. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1432. BB1
  1433. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1434. void Deopt %1.0
  1435. BB4
  1436. val %4.0 = Add %2.0, %2.1, e0.0
  1437. void Return %4.0
  1438. BB3
  1439. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1440. void Deopt %3.0
  1441. ├────── Inline Promises: == 193
  1442. nextRandom[0x7f9244606500]
  1443. BB0
  1444. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1445. cls %0.1 = LdFun bitwAnd, e0.0
  1446. prom %0.2 = MkArg missing, Prom(0), e0.0
  1447. real$' %0.3 = LdConst [1] 65535
  1448. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1449. BB2
  1450. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1451. t %2.1 = Identical %0.1, %2.0
  1452. void Assume %2.1, %0.4
  1453. val^? %2.3 = CastType %0.2
  1454. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1455. val %2.5 = Force! %2.3, e2.4
  1456. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1457. val %2.7 = Force %2.6, e2.4
  1458. void StVarSuper seed, %2.7, e0.0
  1459. val^? %2.9 = LdVar seed, e0.0
  1460. val %2.10 = Force %2.9, e0.0
  1461. void Return %2.10
  1462. BB1
  1463. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1464. void Deopt %1.0
  1465. Prom 0:
  1466. BB0
  1467. env e0.0 = LdFunctionEnv
  1468. val^? %0.1 = LdVar seed, e0.0
  1469. val %0.2 = Force %0.1, e0.0
  1470. real$' %0.3 = LdConst [1] 1309
  1471. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1472. BB2
  1473. val %2.0 = Mul %0.2, %0.3, e0.0
  1474. real$' %2.1 = LdConst [1] 13849
  1475. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1476. BB1
  1477. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1478. void Deopt %1.0
  1479. BB4
  1480. val %4.0 = Add %2.0, %2.1, e0.0
  1481. void Return %4.0
  1482. BB3
  1483. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1484. void Deopt %3.0
  1485. ├────── Scope resolution: == 200
  1486. nextRandom[0x7f9244606500]
  1487. BB0
  1488. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1489. cls %0.1 = LdFun bitwAnd, e0.0
  1490. prom %0.2 = MkArg missing, Prom(0), e0.0
  1491. real$' %0.3 = LdConst [1] 65535
  1492. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1493. BB2
  1494. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1495. t %2.1 = Identical %0.1, %2.0
  1496. void Assume %2.1, %0.4
  1497. val^? %2.3 = CastType %0.2
  1498. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1499. val %2.5 = Force! %2.3, e2.4
  1500. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1501. val %2.7 = Force %2.6, e2.4
  1502. void StVarSuper seed, %2.7, e0.0
  1503. val^? %2.9 = LdVar seed, e0.0
  1504. val %2.10 = Force %2.9, e0.0
  1505. void Return %2.10
  1506. BB1
  1507. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1508. void Deopt %1.0
  1509. Prom 0:
  1510. BB0
  1511. env e0.0 = LdFunctionEnv
  1512. val^? %0.1 = LdVar seed, e0.0
  1513. val %0.2 = Force %0.1, e0.0
  1514. real$' %0.3 = LdConst [1] 1309
  1515. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1516. BB2
  1517. val %2.0 = Mul %0.2, %0.3, e0.0
  1518. real$' %2.1 = LdConst [1] 13849
  1519. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1520. BB1
  1521. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1522. void Deopt %1.0
  1523. BB4
  1524. val %4.0 = Add %2.0, %2.1, e0.0
  1525. void Return %4.0
  1526. BB3
  1527. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1528. void Deopt %3.0
  1529. ├────── Constant folding: == 207
  1530. nextRandom[0x7f9244606500]
  1531. BB0
  1532. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1533. cls %0.1 = LdFun bitwAnd, e0.0
  1534. prom %0.2 = MkArg missing, Prom(0), e0.0
  1535. real$' %0.3 = LdConst [1] 65535
  1536. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1537. BB2
  1538. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1539. t %2.1 = Identical %0.1, %2.0
  1540. void Assume %2.1, %0.4
  1541. val^? %2.3 = CastType %0.2
  1542. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1543. val %2.5 = Force! %2.3, e2.4
  1544. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1545. val %2.7 = Force %2.6, e2.4
  1546. void StVarSuper seed, %2.7, e0.0
  1547. val^? %2.9 = LdVar seed, e0.0
  1548. val %2.10 = Force %2.9, e0.0
  1549. void Return %2.10
  1550. BB1
  1551. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1552. void Deopt %1.0
  1553. Prom 0:
  1554. BB0
  1555. env e0.0 = LdFunctionEnv
  1556. val^? %0.1 = LdVar seed, e0.0
  1557. val %0.2 = Force %0.1, e0.0
  1558. real$' %0.3 = LdConst [1] 1309
  1559. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1560. BB2
  1561. val %2.0 = Mul %0.2, %0.3, e0.0
  1562. real$' %2.1 = LdConst [1] 13849
  1563. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1564. BB1
  1565. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1566. void Deopt %1.0
  1567. BB4
  1568. val %4.0 = Add %2.0, %2.1, e0.0
  1569. void Return %4.0
  1570. BB3
  1571. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1572. void Deopt %3.0
  1573. ├────── Cleanup redundant operations: == 214
  1574. nextRandom[0x7f9244606500]
  1575. BB0
  1576. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1577. cls %0.1 = LdFun bitwAnd, e0.0
  1578. prom %0.2 = MkArg missing, Prom(0), e0.0
  1579. real$' %0.3 = LdConst [1] 65535
  1580. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1581. BB2
  1582. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1583. t %2.1 = Identical %0.1, %2.0
  1584. void Assume %2.1, %0.4
  1585. val^? %2.3 = CastType %0.2
  1586. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1587. val %2.5 = Force! %2.3, e2.4
  1588. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1589. val %2.7 = Force %2.6, e2.4
  1590. void StVarSuper seed, %2.7, e0.0
  1591. val^? %2.9 = LdVar seed, e0.0
  1592. val %2.10 = Force %2.9, e0.0
  1593. void Return %2.10
  1594. BB1
  1595. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1596. void Deopt %1.0
  1597. Prom 0:
  1598. BB0
  1599. env e0.0 = LdFunctionEnv
  1600. val^? %0.1 = LdVar seed, e0.0
  1601. val %0.2 = Force %0.1, e0.0
  1602. real$' %0.3 = LdConst [1] 1309
  1603. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1604. BB2
  1605. val %2.0 = Mul %0.2, %0.3, e0.0
  1606. real$' %2.1 = LdConst [1] 13849
  1607. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1608. BB1
  1609. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1610. void Deopt %1.0
  1611. BB4
  1612. val %4.0 = Add %2.0, %2.1, e0.0
  1613. void Return %4.0
  1614. BB3
  1615. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1616. void Deopt %3.0
  1617. ├────── Delay instructions: == 221
  1618. nextRandom[0x7f9244606500]
  1619. BB0
  1620. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1621. cls %0.1 = LdFun bitwAnd, e0.0
  1622. prom %0.2 = MkArg missing, Prom(0), e0.0
  1623. real$' %0.3 = LdConst [1] 65535
  1624. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1625. BB2
  1626. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1627. t %2.1 = Identical %0.1, %2.0
  1628. void Assume %2.1, %0.4
  1629. val^? %2.3 = CastType %0.2
  1630. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1631. val %2.5 = Force! %2.3, e2.4
  1632. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1633. val %2.7 = Force %2.6, e2.4
  1634. void StVarSuper seed, %2.7, e0.0
  1635. val^? %2.9 = LdVar seed, e0.0
  1636. val %2.10 = Force %2.9, e0.0
  1637. void Return %2.10
  1638. BB1
  1639. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1640. void Deopt %1.0
  1641. Prom 0:
  1642. BB0
  1643. env e0.0 = LdFunctionEnv
  1644. val^? %0.1 = LdVar seed, e0.0
  1645. val %0.2 = Force %0.1, e0.0
  1646. real$' %0.3 = LdConst [1] 1309
  1647. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1648. BB2
  1649. val %2.0 = Mul %0.2, %0.3, e0.0
  1650. real$' %2.1 = LdConst [1] 13849
  1651. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1652. BB1
  1653. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1654. void Deopt %1.0
  1655. BB4
  1656. val %4.0 = Add %2.0, %2.1, e0.0
  1657. void Return %4.0
  1658. BB3
  1659. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1660. void Deopt %3.0
  1661. ├────── Elide environments not needed: == 228
  1662. nextRandom[0x7f9244606500]
  1663. BB0
  1664. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1665. cls %0.1 = LdFun bitwAnd, e0.0
  1666. prom %0.2 = MkArg missing, Prom(0), e0.0
  1667. real$' %0.3 = LdConst [1] 65535
  1668. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1669. BB2
  1670. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1671. t %2.1 = Identical %0.1, %2.0
  1672. void Assume %2.1, %0.4
  1673. val^? %2.3 = CastType %0.2
  1674. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1675. val %2.5 = Force! %2.3, e2.4
  1676. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1677. val %2.7 = Force %2.6, e2.4
  1678. void StVarSuper seed, %2.7, e0.0
  1679. val^? %2.9 = LdVar seed, e0.0
  1680. val %2.10 = Force %2.9, e0.0
  1681. void Return %2.10
  1682. BB1
  1683. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1684. void Deopt %1.0
  1685. Prom 0:
  1686. BB0
  1687. env e0.0 = LdFunctionEnv
  1688. val^? %0.1 = LdVar seed, e0.0
  1689. val %0.2 = Force %0.1, e0.0
  1690. real$' %0.3 = LdConst [1] 1309
  1691. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1692. BB2
  1693. val %2.0 = Mul %0.2, %0.3, e0.0
  1694. real$' %2.1 = LdConst [1] 13849
  1695. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1696. BB1
  1697. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1698. void Deopt %1.0
  1699. BB4
  1700. val %4.0 = Add %2.0, %2.1, e0.0
  1701. void Return %4.0
  1702. BB3
  1703. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1704. void Deopt %3.0
  1705. ├────── Move environment creation as far as possible: == 235
  1706. nextRandom[0x7f9244606500]
  1707. BB0
  1708. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1709. cls %0.1 = LdFun bitwAnd, e0.0
  1710. prom %0.2 = MkArg missing, Prom(0), e0.0
  1711. real$' %0.3 = LdConst [1] 65535
  1712. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1713. BB2
  1714. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1715. t %2.1 = Identical %0.1, %2.0
  1716. void Assume %2.1, %0.4
  1717. val^? %2.3 = CastType %0.2
  1718. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1719. val %2.5 = Force! %2.3, e2.4
  1720. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1721. val %2.7 = Force %2.6, e2.4
  1722. void StVarSuper seed, %2.7, e0.0
  1723. val^? %2.9 = LdVar seed, e0.0
  1724. val %2.10 = Force %2.9, e0.0
  1725. void Return %2.10
  1726. BB1
  1727. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1728. void Deopt %1.0
  1729. Prom 0:
  1730. BB0
  1731. env e0.0 = LdFunctionEnv
  1732. val^? %0.1 = LdVar seed, e0.0
  1733. val %0.2 = Force %0.1, e0.0
  1734. real$' %0.3 = LdConst [1] 1309
  1735. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1736. BB2
  1737. val %2.0 = Mul %0.2, %0.3, e0.0
  1738. real$' %2.1 = LdConst [1] 13849
  1739. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1740. BB1
  1741. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1742. void Deopt %1.0
  1743. BB4
  1744. val %4.0 = Add %2.0, %2.1, e0.0
  1745. void Return %4.0
  1746. BB3
  1747. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1748. void Deopt %3.0
  1749. ├────── Cleanup redundant operations: == 242
  1750. nextRandom[0x7f9244606500]
  1751. BB0
  1752. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1753. cls %0.1 = LdFun bitwAnd, e0.0
  1754. prom %0.2 = MkArg missing, Prom(0), e0.0
  1755. real$' %0.3 = LdConst [1] 65535
  1756. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1757. BB2
  1758. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1759. t %2.1 = Identical %0.1, %2.0
  1760. void Assume %2.1, %0.4
  1761. val^? %2.3 = CastType %0.2
  1762. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1763. val %2.5 = Force! %2.3, e2.4
  1764. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1765. val %2.7 = Force %2.6, e2.4
  1766. void StVarSuper seed, %2.7, e0.0
  1767. val^? %2.9 = LdVar seed, e0.0
  1768. val %2.10 = Force %2.9, e0.0
  1769. void Return %2.10
  1770. BB1
  1771. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1772. void Deopt %1.0
  1773. Prom 0:
  1774. BB0
  1775. env e0.0 = LdFunctionEnv
  1776. val^? %0.1 = LdVar seed, e0.0
  1777. val %0.2 = Force %0.1, e0.0
  1778. real$' %0.3 = LdConst [1] 1309
  1779. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1780. BB2
  1781. val %2.0 = Mul %0.2, %0.3, e0.0
  1782. real$' %2.1 = LdConst [1] 13849
  1783. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1784. BB1
  1785. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1786. void Deopt %1.0
  1787. BB4
  1788. val %4.0 = Add %2.0, %2.1, e0.0
  1789. void Return %4.0
  1790. BB3
  1791. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1792. void Deopt %3.0
  1793. ├────── Inline closures: == 249
  1794. nextRandom[0x7f9244606500]
  1795. BB0
  1796. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1797. cls %0.1 = LdFun bitwAnd, e0.0
  1798. prom %0.2 = MkArg missing, Prom(0), e0.0
  1799. real$' %0.3 = LdConst [1] 65535
  1800. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1801. BB2
  1802. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1803. t %2.1 = Identical %0.1, %2.0
  1804. void Assume %2.1, %0.4
  1805. val^? %2.3 = CastType %0.2
  1806. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1807. val %2.5 = Force! %2.3, e2.4
  1808. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1809. val %2.7 = Force %2.6, e2.4
  1810. void StVarSuper seed, %2.7, e0.0
  1811. val^? %2.9 = LdVar seed, e0.0
  1812. val %2.10 = Force %2.9, e0.0
  1813. void Return %2.10
  1814. BB1
  1815. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1816. void Deopt %1.0
  1817. Prom 0:
  1818. BB0
  1819. env e0.0 = LdFunctionEnv
  1820. val^? %0.1 = LdVar seed, e0.0
  1821. val %0.2 = Force %0.1, e0.0
  1822. real$' %0.3 = LdConst [1] 1309
  1823. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1824. BB2
  1825. val %2.0 = Mul %0.2, %0.3, e0.0
  1826. real$' %2.1 = LdConst [1] 13849
  1827. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1828. BB1
  1829. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1830. void Deopt %1.0
  1831. BB4
  1832. val %4.0 = Add %2.0, %2.1, e0.0
  1833. void Return %4.0
  1834. BB3
  1835. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1836. void Deopt %3.0
  1837. ├────── Speculate on values to elide environments: == 256
  1838. nextRandom[0x7f9244606500]
  1839. BB0
  1840. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1841. cls %0.1 = LdFun bitwAnd, e0.0
  1842. prom %0.2 = MkArg missing, Prom(0), e0.0
  1843. real$' %0.3 = LdConst [1] 65535
  1844. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1845. BB2
  1846. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1847. t %2.1 = Identical %0.1, %2.0
  1848. void Assume %2.1, %0.4
  1849. val^? %2.3 = CastType %0.2
  1850. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1851. val %2.5 = Force! %2.3, e2.4
  1852. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1853. val %2.7 = Force %2.6, e2.4
  1854. void StVarSuper seed, %2.7, e0.0
  1855. val^? %2.9 = LdVar seed, e0.0
  1856. val %2.10 = Force %2.9, e0.0
  1857. void Return %2.10
  1858. BB1
  1859. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1860. void Deopt %1.0
  1861. Prom 0:
  1862. BB0
  1863. env e0.0 = LdFunctionEnv
  1864. val^? %0.1 = LdVar seed, e0.0
  1865. val %0.2 = Force %0.1, e0.0
  1866. real$' %0.3 = LdConst [1] 1309
  1867. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1868. BB2
  1869. val %2.0 = Mul %0.2, %0.3, e0.0
  1870. real$' %2.1 = LdConst [1] 13849
  1871. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  1872. BB1
  1873. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  1874. void Deopt %1.0
  1875. BB4
  1876. val %4.0 = Add %2.0, %2.1, e0.0
  1877. void Return %4.0
  1878. BB3
  1879. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  1880. void Deopt %3.0
  1881. ├────── Cleanup unused checkpoints: == 263
  1882. nextRandom[0x7f9244606500]
  1883. BB0
  1884. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1885. cls %0.1 = LdFun bitwAnd, e0.0
  1886. prom %0.2 = MkArg missing, Prom(0), e0.0
  1887. real$' %0.3 = LdConst [1] 65535
  1888. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1889. BB2
  1890. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1891. t %2.1 = Identical %0.1, %2.0
  1892. void Assume %2.1, %0.4
  1893. val^? %2.3 = CastType %0.2
  1894. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1895. val %2.5 = Force! %2.3, e2.4
  1896. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1897. val %2.7 = Force %2.6, e2.4
  1898. void StVarSuper seed, %2.7, e0.0
  1899. val^? %2.9 = LdVar seed, e0.0
  1900. val %2.10 = Force %2.9, e0.0
  1901. void Return %2.10
  1902. BB1
  1903. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1904. void Deopt %1.0
  1905. Prom 0:
  1906. BB0
  1907. env e0.0 = LdFunctionEnv
  1908. val^? %0.1 = LdVar seed, e0.0
  1909. val %0.2 = Force %0.1, e0.0
  1910. real$' %0.3 = LdConst [1] 1309
  1911. goto BB2
  1912. BB2
  1913. val %2.0 = Mul %0.2, %0.3, e0.0
  1914. real$' %2.1 = LdConst [1] 13849
  1915. goto BB4
  1916. BB4
  1917. val %4.0 = Add %2.0, %2.1, e0.0
  1918. void Return %4.0
  1919. ├────── Inline Promises: == 270
  1920. nextRandom[0x7f9244606500]
  1921. BB0
  1922. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1923. cls %0.1 = LdFun bitwAnd, e0.0
  1924. prom %0.2 = MkArg missing, Prom(0), e0.0
  1925. real$' %0.3 = LdConst [1] 65535
  1926. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1927. BB2
  1928. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1929. t %2.1 = Identical %0.1, %2.0
  1930. void Assume %2.1, %0.4
  1931. val^? %2.3 = CastType %0.2
  1932. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1933. val %2.5 = Force! %2.3, e2.4
  1934. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1935. val %2.7 = Force %2.6, e2.4
  1936. void StVarSuper seed, %2.7, e0.0
  1937. val^? %2.9 = LdVar seed, e0.0
  1938. val %2.10 = Force %2.9, e0.0
  1939. void Return %2.10
  1940. BB1
  1941. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1942. void Deopt %1.0
  1943. Prom 0:
  1944. BB0
  1945. env e0.0 = LdFunctionEnv
  1946. val^? %0.1 = LdVar seed, e0.0
  1947. val %0.2 = Force %0.1, e0.0
  1948. real$' %0.3 = LdConst [1] 1309
  1949. goto BB2
  1950. BB2
  1951. val %2.0 = Mul %0.2, %0.3, e0.0
  1952. real$' %2.1 = LdConst [1] 13849
  1953. goto BB4
  1954. BB4
  1955. val %4.0 = Add %2.0, %2.1, e0.0
  1956. void Return %4.0
  1957. ├────── Scope resolution: == 277
  1958. nextRandom[0x7f9244606500]
  1959. BB0
  1960. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1961. cls %0.1 = LdFun bitwAnd, e0.0
  1962. prom %0.2 = MkArg missing, Prom(0), e0.0
  1963. real$' %0.3 = LdConst [1] 65535
  1964. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  1965. BB2
  1966. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  1967. t %2.1 = Identical %0.1, %2.0
  1968. void Assume %2.1, %0.4
  1969. val^? %2.3 = CastType %0.2
  1970. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  1971. val %2.5 = Force! %2.3, e2.4
  1972. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  1973. val %2.7 = Force %2.6, e2.4
  1974. void StVarSuper seed, %2.7, e0.0
  1975. val^? %2.9 = LdVar seed, e0.0
  1976. val %2.10 = Force %2.9, e0.0
  1977. void Return %2.10
  1978. BB1
  1979. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  1980. void Deopt %1.0
  1981. Prom 0:
  1982. BB0
  1983. env e0.0 = LdFunctionEnv
  1984. val^? %0.1 = LdVar seed, e0.0
  1985. val %0.2 = Force %0.1, e0.0
  1986. real$' %0.3 = LdConst [1] 1309
  1987. goto BB2
  1988. BB2
  1989. val %2.0 = Mul %0.2, %0.3, e0.0
  1990. real$' %2.1 = LdConst [1] 13849
  1991. goto BB4
  1992. BB4
  1993. val %4.0 = Add %2.0, %2.1, e0.0
  1994. void Return %4.0
  1995. ├────── Constant folding: == 284
  1996. nextRandom[0x7f9244606500]
  1997. BB0
  1998. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  1999. cls %0.1 = LdFun bitwAnd, e0.0
  2000. prom %0.2 = MkArg missing, Prom(0), e0.0
  2001. real$' %0.3 = LdConst [1] 65535
  2002. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2003. BB2
  2004. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2005. t %2.1 = Identical %0.1, %2.0
  2006. void Assume %2.1, %0.4
  2007. val^? %2.3 = CastType %0.2
  2008. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2009. val %2.5 = Force! %2.3, e2.4
  2010. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2011. val %2.7 = Force %2.6, e2.4
  2012. void StVarSuper seed, %2.7, e0.0
  2013. val^? %2.9 = LdVar seed, e0.0
  2014. val %2.10 = Force %2.9, e0.0
  2015. void Return %2.10
  2016. BB1
  2017. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2018. void Deopt %1.0
  2019. Prom 0:
  2020. BB0
  2021. env e0.0 = LdFunctionEnv
  2022. val^? %0.1 = LdVar seed, e0.0
  2023. val %0.2 = Force %0.1, e0.0
  2024. real$' %0.3 = LdConst [1] 1309
  2025. goto BB2
  2026. BB2
  2027. val %2.0 = Mul %0.2, %0.3, e0.0
  2028. real$' %2.1 = LdConst [1] 13849
  2029. goto BB4
  2030. BB4
  2031. val %4.0 = Add %2.0, %2.1, e0.0
  2032. void Return %4.0
  2033. ├────── Cleanup redundant operations: == 291
  2034. nextRandom[0x7f9244606500]
  2035. BB0
  2036. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2037. cls %0.1 = LdFun bitwAnd, e0.0
  2038. prom %0.2 = MkArg missing, Prom(0), e0.0
  2039. real$' %0.3 = LdConst [1] 65535
  2040. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2041. BB2
  2042. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2043. t %2.1 = Identical %0.1, %2.0
  2044. void Assume %2.1, %0.4
  2045. val^? %2.3 = CastType %0.2
  2046. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2047. val %2.5 = Force! %2.3, e2.4
  2048. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2049. val %2.7 = Force %2.6, e2.4
  2050. void StVarSuper seed, %2.7, e0.0
  2051. val^? %2.9 = LdVar seed, e0.0
  2052. val %2.10 = Force %2.9, e0.0
  2053. void Return %2.10
  2054. BB1
  2055. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2056. void Deopt %1.0
  2057. Prom 0:
  2058. BB0
  2059. env e0.0 = LdFunctionEnv
  2060. val^? %0.1 = LdVar seed, e0.0
  2061. val %0.2 = Force %0.1, e0.0
  2062. real$' %0.3 = LdConst [1] 1309
  2063. goto BB1
  2064. BB1
  2065. val %1.0 = Mul %0.2, %0.3, e0.0
  2066. real$' %1.1 = LdConst [1] 13849
  2067. goto BB2
  2068. BB2
  2069. val %2.0 = Add %1.0, %1.1, e0.0
  2070. void Return %2.0
  2071. ├────── Delay instructions: == 298
  2072. nextRandom[0x7f9244606500]
  2073. BB0
  2074. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2075. cls %0.1 = LdFun bitwAnd, e0.0
  2076. prom %0.2 = MkArg missing, Prom(0), e0.0
  2077. real$' %0.3 = LdConst [1] 65535
  2078. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2079. BB2
  2080. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2081. t %2.1 = Identical %0.1, %2.0
  2082. void Assume %2.1, %0.4
  2083. val^? %2.3 = CastType %0.2
  2084. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2085. val %2.5 = Force! %2.3, e2.4
  2086. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2087. val %2.7 = Force %2.6, e2.4
  2088. void StVarSuper seed, %2.7, e0.0
  2089. val^? %2.9 = LdVar seed, e0.0
  2090. val %2.10 = Force %2.9, e0.0
  2091. void Return %2.10
  2092. BB1
  2093. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2094. void Deopt %1.0
  2095. Prom 0:
  2096. BB0
  2097. env e0.0 = LdFunctionEnv
  2098. val^? %0.1 = LdVar seed, e0.0
  2099. val %0.2 = Force %0.1, e0.0
  2100. real$' %0.3 = LdConst [1] 1309
  2101. goto BB1
  2102. BB1
  2103. val %1.0 = Mul %0.2, %0.3, e0.0
  2104. real$' %1.1 = LdConst [1] 13849
  2105. goto BB2
  2106. BB2
  2107. val %2.0 = Add %1.0, %1.1, e0.0
  2108. void Return %2.0
  2109. ├────── Elide environments not needed: == 305
  2110. nextRandom[0x7f9244606500]
  2111. BB0
  2112. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2113. cls %0.1 = LdFun bitwAnd, e0.0
  2114. prom %0.2 = MkArg missing, Prom(0), e0.0
  2115. real$' %0.3 = LdConst [1] 65535
  2116. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2117. BB2
  2118. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2119. t %2.1 = Identical %0.1, %2.0
  2120. void Assume %2.1, %0.4
  2121. val^? %2.3 = CastType %0.2
  2122. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2123. val %2.5 = Force! %2.3, e2.4
  2124. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2125. val %2.7 = Force %2.6, e2.4
  2126. void StVarSuper seed, %2.7, e0.0
  2127. val^? %2.9 = LdVar seed, e0.0
  2128. val %2.10 = Force %2.9, e0.0
  2129. void Return %2.10
  2130. BB1
  2131. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2132. void Deopt %1.0
  2133. Prom 0:
  2134. BB0
  2135. env e0.0 = LdFunctionEnv
  2136. val^? %0.1 = LdVar seed, e0.0
  2137. val %0.2 = Force %0.1, e0.0
  2138. real$' %0.3 = LdConst [1] 1309
  2139. goto BB1
  2140. BB1
  2141. val %1.0 = Mul %0.2, %0.3, e0.0
  2142. real$' %1.1 = LdConst [1] 13849
  2143. goto BB2
  2144. BB2
  2145. val %2.0 = Add %1.0, %1.1, e0.0
  2146. void Return %2.0
  2147. ├────── Move environment creation as far as possible: == 312
  2148. nextRandom[0x7f9244606500]
  2149. BB0
  2150. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2151. cls %0.1 = LdFun bitwAnd, e0.0
  2152. prom %0.2 = MkArg missing, Prom(0), e0.0
  2153. real$' %0.3 = LdConst [1] 65535
  2154. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2155. BB2
  2156. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2157. t %2.1 = Identical %0.1, %2.0
  2158. void Assume %2.1, %0.4
  2159. val^? %2.3 = CastType %0.2
  2160. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2161. val %2.5 = Force! %2.3, e2.4
  2162. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2163. val %2.7 = Force %2.6, e2.4
  2164. void StVarSuper seed, %2.7, e0.0
  2165. val^? %2.9 = LdVar seed, e0.0
  2166. val %2.10 = Force %2.9, e0.0
  2167. void Return %2.10
  2168. BB1
  2169. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2170. void Deopt %1.0
  2171. Prom 0:
  2172. BB0
  2173. env e0.0 = LdFunctionEnv
  2174. val^? %0.1 = LdVar seed, e0.0
  2175. val %0.2 = Force %0.1, e0.0
  2176. real$' %0.3 = LdConst [1] 1309
  2177. goto BB1
  2178. BB1
  2179. val %1.0 = Mul %0.2, %0.3, e0.0
  2180. real$' %1.1 = LdConst [1] 13849
  2181. goto BB2
  2182. BB2
  2183. val %2.0 = Add %1.0, %1.1, e0.0
  2184. void Return %2.0
  2185. ├────── Cleanup redundant operations: == 319
  2186. nextRandom[0x7f9244606500]
  2187. BB0
  2188. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2189. cls %0.1 = LdFun bitwAnd, e0.0
  2190. prom %0.2 = MkArg missing, Prom(0), e0.0
  2191. real$' %0.3 = LdConst [1] 65535
  2192. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2193. BB2
  2194. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2195. t %2.1 = Identical %0.1, %2.0
  2196. void Assume %2.1, %0.4
  2197. val^? %2.3 = CastType %0.2
  2198. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2199. val %2.5 = Force! %2.3, e2.4
  2200. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2201. val %2.7 = Force %2.6, e2.4
  2202. void StVarSuper seed, %2.7, e0.0
  2203. val^? %2.9 = LdVar seed, e0.0
  2204. val %2.10 = Force %2.9, e0.0
  2205. void Return %2.10
  2206. BB1
  2207. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2208. void Deopt %1.0
  2209. Prom 0:
  2210. BB0
  2211. env e0.0 = LdFunctionEnv
  2212. val^? %0.1 = LdVar seed, e0.0
  2213. val %0.2 = Force %0.1, e0.0
  2214. real$' %0.3 = LdConst [1] 1309
  2215. goto BB1
  2216. BB1
  2217. val %1.0 = Mul %0.2, %0.3, e0.0
  2218. real$' %1.1 = LdConst [1] 13849
  2219. goto BB2
  2220. BB2
  2221. val %2.0 = Add %1.0, %1.1, e0.0
  2222. void Return %2.0
  2223. ├────── Inline closures: == 326
  2224. nextRandom[0x7f9244606500]
  2225. BB0
  2226. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2227. cls %0.1 = LdFun bitwAnd, e0.0
  2228. prom %0.2 = MkArg missing, Prom(0), e0.0
  2229. real$' %0.3 = LdConst [1] 65535
  2230. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2231. BB2
  2232. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2233. t %2.1 = Identical %0.1, %2.0
  2234. void Assume %2.1, %0.4
  2235. val^? %2.3 = CastType %0.2
  2236. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2237. val %2.5 = Force! %2.3, e2.4
  2238. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2239. val %2.7 = Force %2.6, e2.4
  2240. void StVarSuper seed, %2.7, e0.0
  2241. val^? %2.9 = LdVar seed, e0.0
  2242. val %2.10 = Force %2.9, e0.0
  2243. void Return %2.10
  2244. BB1
  2245. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2246. void Deopt %1.0
  2247. Prom 0:
  2248. BB0
  2249. env e0.0 = LdFunctionEnv
  2250. val^? %0.1 = LdVar seed, e0.0
  2251. val %0.2 = Force %0.1, e0.0
  2252. real$' %0.3 = LdConst [1] 1309
  2253. goto BB1
  2254. BB1
  2255. val %1.0 = Mul %0.2, %0.3, e0.0
  2256. real$' %1.1 = LdConst [1] 13849
  2257. goto BB2
  2258. BB2
  2259. val %2.0 = Add %1.0, %1.1, e0.0
  2260. void Return %2.0
  2261. ├────── Inline Promises: == 333
  2262. nextRandom[0x7f9244606500]
  2263. BB0
  2264. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2265. cls %0.1 = LdFun bitwAnd, e0.0
  2266. prom %0.2 = MkArg missing, Prom(0), e0.0
  2267. real$' %0.3 = LdConst [1] 65535
  2268. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2269. BB2
  2270. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2271. t %2.1 = Identical %0.1, %2.0
  2272. void Assume %2.1, %0.4
  2273. val^? %2.3 = CastType %0.2
  2274. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2275. val %2.5 = Force! %2.3, e2.4
  2276. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2277. val %2.7 = Force %2.6, e2.4
  2278. void StVarSuper seed, %2.7, e0.0
  2279. val^? %2.9 = LdVar seed, e0.0
  2280. val %2.10 = Force %2.9, e0.0
  2281. void Return %2.10
  2282. BB1
  2283. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2284. void Deopt %1.0
  2285. Prom 0:
  2286. BB0
  2287. env e0.0 = LdFunctionEnv
  2288. val^? %0.1 = LdVar seed, e0.0
  2289. val %0.2 = Force %0.1, e0.0
  2290. real$' %0.3 = LdConst [1] 1309
  2291. goto BB1
  2292. BB1
  2293. val %1.0 = Mul %0.2, %0.3, e0.0
  2294. real$' %1.1 = LdConst [1] 13849
  2295. goto BB2
  2296. BB2
  2297. val %2.0 = Add %1.0, %1.1, e0.0
  2298. void Return %2.0
  2299. ├────── Scope resolution: == 340
  2300. nextRandom[0x7f9244606500]
  2301. BB0
  2302. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2303. cls %0.1 = LdFun bitwAnd, e0.0
  2304. prom %0.2 = MkArg missing, Prom(0), e0.0
  2305. real$' %0.3 = LdConst [1] 65535
  2306. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2307. BB2
  2308. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2309. t %2.1 = Identical %0.1, %2.0
  2310. void Assume %2.1, %0.4
  2311. val^? %2.3 = CastType %0.2
  2312. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2313. val %2.5 = Force! %2.3, e2.4
  2314. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2315. val %2.7 = Force %2.6, e2.4
  2316. void StVarSuper seed, %2.7, e0.0
  2317. val^? %2.9 = LdVar seed, e0.0
  2318. val %2.10 = Force %2.9, e0.0
  2319. void Return %2.10
  2320. BB1
  2321. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2322. void Deopt %1.0
  2323. Prom 0:
  2324. BB0
  2325. env e0.0 = LdFunctionEnv
  2326. val^? %0.1 = LdVar seed, e0.0
  2327. val %0.2 = Force %0.1, e0.0
  2328. real$' %0.3 = LdConst [1] 1309
  2329. goto BB1
  2330. BB1
  2331. val %1.0 = Mul %0.2, %0.3, e0.0
  2332. real$' %1.1 = LdConst [1] 13849
  2333. goto BB2
  2334. BB2
  2335. val %2.0 = Add %1.0, %1.1, e0.0
  2336. void Return %2.0
  2337. ├────── Constant folding: == 347
  2338. nextRandom[0x7f9244606500]
  2339. BB0
  2340. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2341. cls %0.1 = LdFun bitwAnd, e0.0
  2342. prom %0.2 = MkArg missing, Prom(0), e0.0
  2343. real$' %0.3 = LdConst [1] 65535
  2344. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2345. BB2
  2346. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2347. t %2.1 = Identical %0.1, %2.0
  2348. void Assume %2.1, %0.4
  2349. val^? %2.3 = CastType %0.2
  2350. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2351. val %2.5 = Force! %2.3, e2.4
  2352. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2353. val %2.7 = Force %2.6, e2.4
  2354. void StVarSuper seed, %2.7, e0.0
  2355. val^? %2.9 = LdVar seed, e0.0
  2356. val %2.10 = Force %2.9, e0.0
  2357. void Return %2.10
  2358. BB1
  2359. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2360. void Deopt %1.0
  2361. Prom 0:
  2362. BB0
  2363. env e0.0 = LdFunctionEnv
  2364. val^? %0.1 = LdVar seed, e0.0
  2365. val %0.2 = Force %0.1, e0.0
  2366. real$' %0.3 = LdConst [1] 1309
  2367. goto BB1
  2368. BB1
  2369. val %1.0 = Mul %0.2, %0.3, e0.0
  2370. real$' %1.1 = LdConst [1] 13849
  2371. goto BB2
  2372. BB2
  2373. val %2.0 = Add %1.0, %1.1, e0.0
  2374. void Return %2.0
  2375. ├────── Cleanup redundant operations: == 354
  2376. nextRandom[0x7f9244606500]
  2377. BB0
  2378. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2379. cls %0.1 = LdFun bitwAnd, e0.0
  2380. prom %0.2 = MkArg missing, Prom(0), e0.0
  2381. real$' %0.3 = LdConst [1] 65535
  2382. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2383. BB2
  2384. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2385. t %2.1 = Identical %0.1, %2.0
  2386. void Assume %2.1, %0.4
  2387. val^? %2.3 = CastType %0.2
  2388. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2389. val %2.5 = Force! %2.3, e2.4
  2390. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2391. val %2.7 = Force %2.6, e2.4
  2392. void StVarSuper seed, %2.7, e0.0
  2393. val^? %2.9 = LdVar seed, e0.0
  2394. val %2.10 = Force %2.9, e0.0
  2395. void Return %2.10
  2396. BB1
  2397. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2398. void Deopt %1.0
  2399. Prom 0:
  2400. BB0
  2401. env e0.0 = LdFunctionEnv
  2402. val^? %0.1 = LdVar seed, e0.0
  2403. val %0.2 = Force %0.1, e0.0
  2404. real$' %0.3 = LdConst [1] 1309
  2405. goto BB1
  2406. BB1
  2407. val %1.0 = Mul %0.2, %0.3, e0.0
  2408. real$' %1.1 = LdConst [1] 13849
  2409. goto BB2
  2410. BB2
  2411. val %2.0 = Add %1.0, %1.1, e0.0
  2412. void Return %2.0
  2413. ├────── Delay instructions: == 361
  2414. nextRandom[0x7f9244606500]
  2415. BB0
  2416. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2417. cls %0.1 = LdFun bitwAnd, e0.0
  2418. prom %0.2 = MkArg missing, Prom(0), e0.0
  2419. real$' %0.3 = LdConst [1] 65535
  2420. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2421. BB2
  2422. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2423. t %2.1 = Identical %0.1, %2.0
  2424. void Assume %2.1, %0.4
  2425. val^? %2.3 = CastType %0.2
  2426. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2427. val %2.5 = Force! %2.3, e2.4
  2428. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2429. val %2.7 = Force %2.6, e2.4
  2430. void StVarSuper seed, %2.7, e0.0
  2431. val^? %2.9 = LdVar seed, e0.0
  2432. val %2.10 = Force %2.9, e0.0
  2433. void Return %2.10
  2434. BB1
  2435. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2436. void Deopt %1.0
  2437. Prom 0:
  2438. BB0
  2439. env e0.0 = LdFunctionEnv
  2440. val^? %0.1 = LdVar seed, e0.0
  2441. val %0.2 = Force %0.1, e0.0
  2442. real$' %0.3 = LdConst [1] 1309
  2443. goto BB1
  2444. BB1
  2445. val %1.0 = Mul %0.2, %0.3, e0.0
  2446. real$' %1.1 = LdConst [1] 13849
  2447. goto BB2
  2448. BB2
  2449. val %2.0 = Add %1.0, %1.1, e0.0
  2450. void Return %2.0
  2451. ├────── Elide environments not needed: == 368
  2452. nextRandom[0x7f9244606500]
  2453. BB0
  2454. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2455. cls %0.1 = LdFun bitwAnd, e0.0
  2456. prom %0.2 = MkArg missing, Prom(0), e0.0
  2457. real$' %0.3 = LdConst [1] 65535
  2458. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2459. BB2
  2460. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2461. t %2.1 = Identical %0.1, %2.0
  2462. void Assume %2.1, %0.4
  2463. val^? %2.3 = CastType %0.2
  2464. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2465. val %2.5 = Force! %2.3, e2.4
  2466. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2467. val %2.7 = Force %2.6, e2.4
  2468. void StVarSuper seed, %2.7, e0.0
  2469. val^? %2.9 = LdVar seed, e0.0
  2470. val %2.10 = Force %2.9, e0.0
  2471. void Return %2.10
  2472. BB1
  2473. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2474. void Deopt %1.0
  2475. Prom 0:
  2476. BB0
  2477. env e0.0 = LdFunctionEnv
  2478. val^? %0.1 = LdVar seed, e0.0
  2479. val %0.2 = Force %0.1, e0.0
  2480. real$' %0.3 = LdConst [1] 1309
  2481. goto BB1
  2482. BB1
  2483. val %1.0 = Mul %0.2, %0.3, e0.0
  2484. real$' %1.1 = LdConst [1] 13849
  2485. goto BB2
  2486. BB2
  2487. val %2.0 = Add %1.0, %1.1, e0.0
  2488. void Return %2.0
  2489. ├────── Move environment creation as far as possible: == 375
  2490. nextRandom[0x7f9244606500]
  2491. BB0
  2492. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2493. cls %0.1 = LdFun bitwAnd, e0.0
  2494. prom %0.2 = MkArg missing, Prom(0), e0.0
  2495. real$' %0.3 = LdConst [1] 65535
  2496. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2497. BB2
  2498. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2499. t %2.1 = Identical %0.1, %2.0
  2500. void Assume %2.1, %0.4
  2501. val^? %2.3 = CastType %0.2
  2502. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2503. val %2.5 = Force! %2.3, e2.4
  2504. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2505. val %2.7 = Force %2.6, e2.4
  2506. void StVarSuper seed, %2.7, e0.0
  2507. val^? %2.9 = LdVar seed, e0.0
  2508. val %2.10 = Force %2.9, e0.0
  2509. void Return %2.10
  2510. BB1
  2511. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2512. void Deopt %1.0
  2513. Prom 0:
  2514. BB0
  2515. env e0.0 = LdFunctionEnv
  2516. val^? %0.1 = LdVar seed, e0.0
  2517. val %0.2 = Force %0.1, e0.0
  2518. real$' %0.3 = LdConst [1] 1309
  2519. goto BB1
  2520. BB1
  2521. val %1.0 = Mul %0.2, %0.3, e0.0
  2522. real$' %1.1 = LdConst [1] 13849
  2523. goto BB2
  2524. BB2
  2525. val %2.0 = Add %1.0, %1.1, e0.0
  2526. void Return %2.0
  2527. ├────── Cleanup redundant operations: == 382
  2528. nextRandom[0x7f9244606500]
  2529. BB0
  2530. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2531. cls %0.1 = LdFun bitwAnd, e0.0
  2532. prom %0.2 = MkArg missing, Prom(0), e0.0
  2533. real$' %0.3 = LdConst [1] 65535
  2534. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2535. BB2
  2536. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2537. t %2.1 = Identical %0.1, %2.0
  2538. void Assume %2.1, %0.4
  2539. val^? %2.3 = CastType %0.2
  2540. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2541. val %2.5 = Force! %2.3, e2.4
  2542. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2543. val %2.7 = Force %2.6, e2.4
  2544. void StVarSuper seed, %2.7, e0.0
  2545. val^? %2.9 = LdVar seed, e0.0
  2546. val %2.10 = Force %2.9, e0.0
  2547. void Return %2.10
  2548. BB1
  2549. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2550. void Deopt %1.0
  2551. Prom 0:
  2552. BB0
  2553. env e0.0 = LdFunctionEnv
  2554. val^? %0.1 = LdVar seed, e0.0
  2555. val %0.2 = Force %0.1, e0.0
  2556. real$' %0.3 = LdConst [1] 1309
  2557. goto BB1
  2558. BB1
  2559. val %1.0 = Mul %0.2, %0.3, e0.0
  2560. real$' %1.1 = LdConst [1] 13849
  2561. goto BB2
  2562. BB2
  2563. val %2.0 = Add %1.0, %1.1, e0.0
  2564. void Return %2.0
  2565. ├────── Inline closures: == 389
  2566. nextRandom[0x7f9244606500]
  2567. BB0
  2568. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2569. cls %0.1 = LdFun bitwAnd, e0.0
  2570. prom %0.2 = MkArg missing, Prom(0), e0.0
  2571. real$' %0.3 = LdConst [1] 65535
  2572. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2573. BB2
  2574. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2575. t %2.1 = Identical %0.1, %2.0
  2576. void Assume %2.1, %0.4
  2577. val^? %2.3 = CastType %0.2
  2578. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2579. val %2.5 = Force! %2.3, e2.4
  2580. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2581. val %2.7 = Force %2.6, e2.4
  2582. void StVarSuper seed, %2.7, e0.0
  2583. val^? %2.9 = LdVar seed, e0.0
  2584. val %2.10 = Force %2.9, e0.0
  2585. void Return %2.10
  2586. BB1
  2587. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2588. void Deopt %1.0
  2589. Prom 0:
  2590. BB0
  2591. env e0.0 = LdFunctionEnv
  2592. val^? %0.1 = LdVar seed, e0.0
  2593. val %0.2 = Force %0.1, e0.0
  2594. real$' %0.3 = LdConst [1] 1309
  2595. goto BB1
  2596. BB1
  2597. val %1.0 = Mul %0.2, %0.3, e0.0
  2598. real$' %1.1 = LdConst [1] 13849
  2599. goto BB2
  2600. BB2
  2601. val %2.0 = Add %1.0, %1.1, e0.0
  2602. void Return %2.0
  2603. ├────── Inline Promises: == 396
  2604. nextRandom[0x7f9244606500]
  2605. BB0
  2606. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2607. cls %0.1 = LdFun bitwAnd, e0.0
  2608. prom %0.2 = MkArg missing, Prom(0), e0.0
  2609. real$' %0.3 = LdConst [1] 65535
  2610. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2611. BB2
  2612. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2613. t %2.1 = Identical %0.1, %2.0
  2614. void Assume %2.1, %0.4
  2615. val^? %2.3 = CastType %0.2
  2616. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2617. val %2.5 = Force! %2.3, e2.4
  2618. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2619. val %2.7 = Force %2.6, e2.4
  2620. void StVarSuper seed, %2.7, e0.0
  2621. val^? %2.9 = LdVar seed, e0.0
  2622. val %2.10 = Force %2.9, e0.0
  2623. void Return %2.10
  2624. BB1
  2625. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2626. void Deopt %1.0
  2627. Prom 0:
  2628. BB0
  2629. env e0.0 = LdFunctionEnv
  2630. val^? %0.1 = LdVar seed, e0.0
  2631. val %0.2 = Force %0.1, e0.0
  2632. real$' %0.3 = LdConst [1] 1309
  2633. goto BB1
  2634. BB1
  2635. val %1.0 = Mul %0.2, %0.3, e0.0
  2636. real$' %1.1 = LdConst [1] 13849
  2637. goto BB2
  2638. BB2
  2639. val %2.0 = Add %1.0, %1.1, e0.0
  2640. void Return %2.0
  2641. ├────── Scope resolution: == 403
  2642. nextRandom[0x7f9244606500]
  2643. BB0
  2644. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2645. cls %0.1 = LdFun bitwAnd, e0.0
  2646. prom %0.2 = MkArg missing, Prom(0), e0.0
  2647. real$' %0.3 = LdConst [1] 65535
  2648. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2649. BB2
  2650. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2651. t %2.1 = Identical %0.1, %2.0
  2652. void Assume %2.1, %0.4
  2653. val^? %2.3 = CastType %0.2
  2654. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2655. val %2.5 = Force! %2.3, e2.4
  2656. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2657. val %2.7 = Force %2.6, e2.4
  2658. void StVarSuper seed, %2.7, e0.0
  2659. val^? %2.9 = LdVar seed, e0.0
  2660. val %2.10 = Force %2.9, e0.0
  2661. void Return %2.10
  2662. BB1
  2663. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2664. void Deopt %1.0
  2665. Prom 0:
  2666. BB0
  2667. env e0.0 = LdFunctionEnv
  2668. val^? %0.1 = LdVar seed, e0.0
  2669. val %0.2 = Force %0.1, e0.0
  2670. real$' %0.3 = LdConst [1] 1309
  2671. goto BB1
  2672. BB1
  2673. val %1.0 = Mul %0.2, %0.3, e0.0
  2674. real$' %1.1 = LdConst [1] 13849
  2675. goto BB2
  2676. BB2
  2677. val %2.0 = Add %1.0, %1.1, e0.0
  2678. void Return %2.0
  2679. ├────── Constant folding: == 410
  2680. nextRandom[0x7f9244606500]
  2681. BB0
  2682. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2683. cls %0.1 = LdFun bitwAnd, e0.0
  2684. prom %0.2 = MkArg missing, Prom(0), e0.0
  2685. real$' %0.3 = LdConst [1] 65535
  2686. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2687. BB2
  2688. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2689. t %2.1 = Identical %0.1, %2.0
  2690. void Assume %2.1, %0.4
  2691. val^? %2.3 = CastType %0.2
  2692. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2693. val %2.5 = Force! %2.3, e2.4
  2694. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2695. val %2.7 = Force %2.6, e2.4
  2696. void StVarSuper seed, %2.7, e0.0
  2697. val^? %2.9 = LdVar seed, e0.0
  2698. val %2.10 = Force %2.9, e0.0
  2699. void Return %2.10
  2700. BB1
  2701. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2702. void Deopt %1.0
  2703. Prom 0:
  2704. BB0
  2705. env e0.0 = LdFunctionEnv
  2706. val^? %0.1 = LdVar seed, e0.0
  2707. val %0.2 = Force %0.1, e0.0
  2708. real$' %0.3 = LdConst [1] 1309
  2709. goto BB1
  2710. BB1
  2711. val %1.0 = Mul %0.2, %0.3, e0.0
  2712. real$' %1.1 = LdConst [1] 13849
  2713. goto BB2
  2714. BB2
  2715. val %2.0 = Add %1.0, %1.1, e0.0
  2716. void Return %2.0
  2717. ├────── Cleanup redundant operations: == 417
  2718. nextRandom[0x7f9244606500]
  2719. BB0
  2720. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2721. cls %0.1 = LdFun bitwAnd, e0.0
  2722. prom %0.2 = MkArg missing, Prom(0), e0.0
  2723. real$' %0.3 = LdConst [1] 65535
  2724. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2725. BB2
  2726. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2727. t %2.1 = Identical %0.1, %2.0
  2728. void Assume %2.1, %0.4
  2729. val^? %2.3 = CastType %0.2
  2730. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2731. val %2.5 = Force! %2.3, e2.4
  2732. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2733. val %2.7 = Force %2.6, e2.4
  2734. void StVarSuper seed, %2.7, e0.0
  2735. val^? %2.9 = LdVar seed, e0.0
  2736. val %2.10 = Force %2.9, e0.0
  2737. void Return %2.10
  2738. BB1
  2739. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2740. void Deopt %1.0
  2741. Prom 0:
  2742. BB0
  2743. env e0.0 = LdFunctionEnv
  2744. val^? %0.1 = LdVar seed, e0.0
  2745. val %0.2 = Force %0.1, e0.0
  2746. real$' %0.3 = LdConst [1] 1309
  2747. goto BB1
  2748. BB1
  2749. val %1.0 = Mul %0.2, %0.3, e0.0
  2750. real$' %1.1 = LdConst [1] 13849
  2751. goto BB2
  2752. BB2
  2753. val %2.0 = Add %1.0, %1.1, e0.0
  2754. void Return %2.0
  2755. ├────── Delay instructions: == 424
  2756. nextRandom[0x7f9244606500]
  2757. BB0
  2758. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2759. cls %0.1 = LdFun bitwAnd, e0.0
  2760. prom %0.2 = MkArg missing, Prom(0), e0.0
  2761. real$' %0.3 = LdConst [1] 65535
  2762. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2763. BB2
  2764. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2765. t %2.1 = Identical %0.1, %2.0
  2766. void Assume %2.1, %0.4
  2767. val^? %2.3 = CastType %0.2
  2768. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2769. val %2.5 = Force! %2.3, e2.4
  2770. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2771. val %2.7 = Force %2.6, e2.4
  2772. void StVarSuper seed, %2.7, e0.0
  2773. val^? %2.9 = LdVar seed, e0.0
  2774. val %2.10 = Force %2.9, e0.0
  2775. void Return %2.10
  2776. BB1
  2777. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2778. void Deopt %1.0
  2779. Prom 0:
  2780. BB0
  2781. env e0.0 = LdFunctionEnv
  2782. val^? %0.1 = LdVar seed, e0.0
  2783. val %0.2 = Force %0.1, e0.0
  2784. real$' %0.3 = LdConst [1] 1309
  2785. goto BB1
  2786. BB1
  2787. val %1.0 = Mul %0.2, %0.3, e0.0
  2788. real$' %1.1 = LdConst [1] 13849
  2789. goto BB2
  2790. BB2
  2791. val %2.0 = Add %1.0, %1.1, e0.0
  2792. void Return %2.0
  2793. ├────── Elide environments not needed: == 431
  2794. nextRandom[0x7f9244606500]
  2795. BB0
  2796. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2797. cls %0.1 = LdFun bitwAnd, e0.0
  2798. prom %0.2 = MkArg missing, Prom(0), e0.0
  2799. real$' %0.3 = LdConst [1] 65535
  2800. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2801. BB2
  2802. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2803. t %2.1 = Identical %0.1, %2.0
  2804. void Assume %2.1, %0.4
  2805. val^? %2.3 = CastType %0.2
  2806. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2807. val %2.5 = Force! %2.3, e2.4
  2808. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2809. val %2.7 = Force %2.6, e2.4
  2810. void StVarSuper seed, %2.7, e0.0
  2811. val^? %2.9 = LdVar seed, e0.0
  2812. val %2.10 = Force %2.9, e0.0
  2813. void Return %2.10
  2814. BB1
  2815. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2816. void Deopt %1.0
  2817. Prom 0:
  2818. BB0
  2819. env e0.0 = LdFunctionEnv
  2820. val^? %0.1 = LdVar seed, e0.0
  2821. val %0.2 = Force %0.1, e0.0
  2822. real$' %0.3 = LdConst [1] 1309
  2823. goto BB1
  2824. BB1
  2825. val %1.0 = Mul %0.2, %0.3, e0.0
  2826. real$' %1.1 = LdConst [1] 13849
  2827. goto BB2
  2828. BB2
  2829. val %2.0 = Add %1.0, %1.1, e0.0
  2830. void Return %2.0
  2831. ├────── Move environment creation as far as possible: == 438
  2832. nextRandom[0x7f9244606500]
  2833. BB0
  2834. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2835. cls %0.1 = LdFun bitwAnd, e0.0
  2836. prom %0.2 = MkArg missing, Prom(0), e0.0
  2837. real$' %0.3 = LdConst [1] 65535
  2838. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2839. BB2
  2840. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2841. t %2.1 = Identical %0.1, %2.0
  2842. void Assume %2.1, %0.4
  2843. val^? %2.3 = CastType %0.2
  2844. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2845. val %2.5 = Force! %2.3, e2.4
  2846. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2847. val %2.7 = Force %2.6, e2.4
  2848. void StVarSuper seed, %2.7, e0.0
  2849. val^? %2.9 = LdVar seed, e0.0
  2850. val %2.10 = Force %2.9, e0.0
  2851. void Return %2.10
  2852. BB1
  2853. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2854. void Deopt %1.0
  2855. Prom 0:
  2856. BB0
  2857. env e0.0 = LdFunctionEnv
  2858. val^? %0.1 = LdVar seed, e0.0
  2859. val %0.2 = Force %0.1, e0.0
  2860. real$' %0.3 = LdConst [1] 1309
  2861. goto BB1
  2862. BB1
  2863. val %1.0 = Mul %0.2, %0.3, e0.0
  2864. real$' %1.1 = LdConst [1] 13849
  2865. goto BB2
  2866. BB2
  2867. val %2.0 = Add %1.0, %1.1, e0.0
  2868. void Return %2.0
  2869. ├────── Cleanup redundant operations: == 445
  2870. nextRandom[0x7f9244606500]
  2871. BB0
  2872. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2873. cls %0.1 = LdFun bitwAnd, e0.0
  2874. prom %0.2 = MkArg missing, Prom(0), e0.0
  2875. real$' %0.3 = LdConst [1] 65535
  2876. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2877. BB2
  2878. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2879. t %2.1 = Identical %0.1, %2.0
  2880. void Assume %2.1, %0.4
  2881. val^? %2.3 = CastType %0.2
  2882. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2883. val %2.5 = Force! %2.3, e2.4
  2884. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2885. val %2.7 = Force %2.6, e2.4
  2886. void StVarSuper seed, %2.7, e0.0
  2887. val^? %2.9 = LdVar seed, e0.0
  2888. val %2.10 = Force %2.9, e0.0
  2889. void Return %2.10
  2890. BB1
  2891. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2892. void Deopt %1.0
  2893. Prom 0:
  2894. BB0
  2895. env e0.0 = LdFunctionEnv
  2896. val^? %0.1 = LdVar seed, e0.0
  2897. val %0.2 = Force %0.1, e0.0
  2898. real$' %0.3 = LdConst [1] 1309
  2899. goto BB1
  2900. BB1
  2901. val %1.0 = Mul %0.2, %0.3, e0.0
  2902. real$' %1.1 = LdConst [1] 13849
  2903. goto BB2
  2904. BB2
  2905. val %2.0 = Add %1.0, %1.1, e0.0
  2906. void Return %2.0
  2907. ├────── Inline closures: == 452
  2908. nextRandom[0x7f9244606500]
  2909. BB0
  2910. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2911. cls %0.1 = LdFun bitwAnd, e0.0
  2912. prom %0.2 = MkArg missing, Prom(0), e0.0
  2913. real$' %0.3 = LdConst [1] 65535
  2914. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2915. BB2
  2916. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2917. t %2.1 = Identical %0.1, %2.0
  2918. void Assume %2.1, %0.4
  2919. val^? %2.3 = CastType %0.2
  2920. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2921. val %2.5 = Force! %2.3, e2.4
  2922. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2923. val %2.7 = Force %2.6, e2.4
  2924. void StVarSuper seed, %2.7, e0.0
  2925. val^? %2.9 = LdVar seed, e0.0
  2926. val %2.10 = Force %2.9, e0.0
  2927. void Return %2.10
  2928. BB1
  2929. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2930. void Deopt %1.0
  2931. Prom 0:
  2932. BB0
  2933. env e0.0 = LdFunctionEnv
  2934. val^? %0.1 = LdVar seed, e0.0
  2935. val %0.2 = Force %0.1, e0.0
  2936. real$' %0.3 = LdConst [1] 1309
  2937. goto BB1
  2938. BB1
  2939. val %1.0 = Mul %0.2, %0.3, e0.0
  2940. real$' %1.1 = LdConst [1] 13849
  2941. goto BB2
  2942. BB2
  2943. val %2.0 = Add %1.0, %1.1, e0.0
  2944. void Return %2.0
  2945. ├────── Inline Promises: == 459
  2946. nextRandom[0x7f9244606500]
  2947. BB0
  2948. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2949. cls %0.1 = LdFun bitwAnd, e0.0
  2950. prom %0.2 = MkArg missing, Prom(0), e0.0
  2951. real$' %0.3 = LdConst [1] 65535
  2952. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2953. BB2
  2954. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2955. t %2.1 = Identical %0.1, %2.0
  2956. void Assume %2.1, %0.4
  2957. val^? %2.3 = CastType %0.2
  2958. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2959. val %2.5 = Force! %2.3, e2.4
  2960. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2961. val %2.7 = Force %2.6, e2.4
  2962. void StVarSuper seed, %2.7, e0.0
  2963. val^? %2.9 = LdVar seed, e0.0
  2964. val %2.10 = Force %2.9, e0.0
  2965. void Return %2.10
  2966. BB1
  2967. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  2968. void Deopt %1.0
  2969. Prom 0:
  2970. BB0
  2971. env e0.0 = LdFunctionEnv
  2972. val^? %0.1 = LdVar seed, e0.0
  2973. val %0.2 = Force %0.1, e0.0
  2974. real$' %0.3 = LdConst [1] 1309
  2975. goto BB1
  2976. BB1
  2977. val %1.0 = Mul %0.2, %0.3, e0.0
  2978. real$' %1.1 = LdConst [1] 13849
  2979. goto BB2
  2980. BB2
  2981. val %2.0 = Add %1.0, %1.1, e0.0
  2982. void Return %2.0
  2983. ├────── Scope resolution: == 466
  2984. nextRandom[0x7f9244606500]
  2985. BB0
  2986. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  2987. cls %0.1 = LdFun bitwAnd, e0.0
  2988. prom %0.2 = MkArg missing, Prom(0), e0.0
  2989. real$' %0.3 = LdConst [1] 65535
  2990. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  2991. BB2
  2992. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  2993. t %2.1 = Identical %0.1, %2.0
  2994. void Assume %2.1, %0.4
  2995. val^? %2.3 = CastType %0.2
  2996. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  2997. val %2.5 = Force! %2.3, e2.4
  2998. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  2999. val %2.7 = Force %2.6, e2.4
  3000. void StVarSuper seed, %2.7, e0.0
  3001. val^? %2.9 = LdVar seed, e0.0
  3002. val %2.10 = Force %2.9, e0.0
  3003. void Return %2.10
  3004. BB1
  3005. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3006. void Deopt %1.0
  3007. Prom 0:
  3008. BB0
  3009. env e0.0 = LdFunctionEnv
  3010. val^? %0.1 = LdVar seed, e0.0
  3011. val %0.2 = Force %0.1, e0.0
  3012. real$' %0.3 = LdConst [1] 1309
  3013. goto BB1
  3014. BB1
  3015. val %1.0 = Mul %0.2, %0.3, e0.0
  3016. real$' %1.1 = LdConst [1] 13849
  3017. goto BB2
  3018. BB2
  3019. val %2.0 = Add %1.0, %1.1, e0.0
  3020. void Return %2.0
  3021. ├────── Constant folding: == 473
  3022. nextRandom[0x7f9244606500]
  3023. BB0
  3024. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3025. cls %0.1 = LdFun bitwAnd, e0.0
  3026. prom %0.2 = MkArg missing, Prom(0), e0.0
  3027. real$' %0.3 = LdConst [1] 65535
  3028. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3029. BB2
  3030. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3031. t %2.1 = Identical %0.1, %2.0
  3032. void Assume %2.1, %0.4
  3033. val^? %2.3 = CastType %0.2
  3034. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3035. val %2.5 = Force! %2.3, e2.4
  3036. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3037. val %2.7 = Force %2.6, e2.4
  3038. void StVarSuper seed, %2.7, e0.0
  3039. val^? %2.9 = LdVar seed, e0.0
  3040. val %2.10 = Force %2.9, e0.0
  3041. void Return %2.10
  3042. BB1
  3043. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3044. void Deopt %1.0
  3045. Prom 0:
  3046. BB0
  3047. env e0.0 = LdFunctionEnv
  3048. val^? %0.1 = LdVar seed, e0.0
  3049. val %0.2 = Force %0.1, e0.0
  3050. real$' %0.3 = LdConst [1] 1309
  3051. goto BB1
  3052. BB1
  3053. val %1.0 = Mul %0.2, %0.3, e0.0
  3054. real$' %1.1 = LdConst [1] 13849
  3055. goto BB2
  3056. BB2
  3057. val %2.0 = Add %1.0, %1.1, e0.0
  3058. void Return %2.0
  3059. ├────── Cleanup redundant operations: == 480
  3060. nextRandom[0x7f9244606500]
  3061. BB0
  3062. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3063. cls %0.1 = LdFun bitwAnd, e0.0
  3064. prom %0.2 = MkArg missing, Prom(0), e0.0
  3065. real$' %0.3 = LdConst [1] 65535
  3066. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3067. BB2
  3068. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3069. t %2.1 = Identical %0.1, %2.0
  3070. void Assume %2.1, %0.4
  3071. val^? %2.3 = CastType %0.2
  3072. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3073. val %2.5 = Force! %2.3, e2.4
  3074. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3075. val %2.7 = Force %2.6, e2.4
  3076. void StVarSuper seed, %2.7, e0.0
  3077. val^? %2.9 = LdVar seed, e0.0
  3078. val %2.10 = Force %2.9, e0.0
  3079. void Return %2.10
  3080. BB1
  3081. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3082. void Deopt %1.0
  3083. Prom 0:
  3084. BB0
  3085. env e0.0 = LdFunctionEnv
  3086. val^? %0.1 = LdVar seed, e0.0
  3087. val %0.2 = Force %0.1, e0.0
  3088. real$' %0.3 = LdConst [1] 1309
  3089. goto BB1
  3090. BB1
  3091. val %1.0 = Mul %0.2, %0.3, e0.0
  3092. real$' %1.1 = LdConst [1] 13849
  3093. goto BB2
  3094. BB2
  3095. val %2.0 = Add %1.0, %1.1, e0.0
  3096. void Return %2.0
  3097. ├────── Delay instructions: == 487
  3098. nextRandom[0x7f9244606500]
  3099. BB0
  3100. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3101. cls %0.1 = LdFun bitwAnd, e0.0
  3102. prom %0.2 = MkArg missing, Prom(0), e0.0
  3103. real$' %0.3 = LdConst [1] 65535
  3104. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3105. BB2
  3106. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3107. t %2.1 = Identical %0.1, %2.0
  3108. void Assume %2.1, %0.4
  3109. val^? %2.3 = CastType %0.2
  3110. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3111. val %2.5 = Force! %2.3, e2.4
  3112. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3113. val %2.7 = Force %2.6, e2.4
  3114. void StVarSuper seed, %2.7, e0.0
  3115. val^? %2.9 = LdVar seed, e0.0
  3116. val %2.10 = Force %2.9, e0.0
  3117. void Return %2.10
  3118. BB1
  3119. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3120. void Deopt %1.0
  3121. Prom 0:
  3122. BB0
  3123. env e0.0 = LdFunctionEnv
  3124. val^? %0.1 = LdVar seed, e0.0
  3125. val %0.2 = Force %0.1, e0.0
  3126. real$' %0.3 = LdConst [1] 1309
  3127. goto BB1
  3128. BB1
  3129. val %1.0 = Mul %0.2, %0.3, e0.0
  3130. real$' %1.1 = LdConst [1] 13849
  3131. goto BB2
  3132. BB2
  3133. val %2.0 = Add %1.0, %1.1, e0.0
  3134. void Return %2.0
  3135. ├────── Elide environments not needed: == 494
  3136. nextRandom[0x7f9244606500]
  3137. BB0
  3138. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3139. cls %0.1 = LdFun bitwAnd, e0.0
  3140. prom %0.2 = MkArg missing, Prom(0), e0.0
  3141. real$' %0.3 = LdConst [1] 65535
  3142. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3143. BB2
  3144. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3145. t %2.1 = Identical %0.1, %2.0
  3146. void Assume %2.1, %0.4
  3147. val^? %2.3 = CastType %0.2
  3148. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3149. val %2.5 = Force! %2.3, e2.4
  3150. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3151. val %2.7 = Force %2.6, e2.4
  3152. void StVarSuper seed, %2.7, e0.0
  3153. val^? %2.9 = LdVar seed, e0.0
  3154. val %2.10 = Force %2.9, e0.0
  3155. void Return %2.10
  3156. BB1
  3157. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3158. void Deopt %1.0
  3159. Prom 0:
  3160. BB0
  3161. env e0.0 = LdFunctionEnv
  3162. val^? %0.1 = LdVar seed, e0.0
  3163. val %0.2 = Force %0.1, e0.0
  3164. real$' %0.3 = LdConst [1] 1309
  3165. goto BB1
  3166. BB1
  3167. val %1.0 = Mul %0.2, %0.3, e0.0
  3168. real$' %1.1 = LdConst [1] 13849
  3169. goto BB2
  3170. BB2
  3171. val %2.0 = Add %1.0, %1.1, e0.0
  3172. void Return %2.0
  3173. ├────── Move environment creation as far as possible: == 501
  3174. nextRandom[0x7f9244606500]
  3175. BB0
  3176. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3177. cls %0.1 = LdFun bitwAnd, e0.0
  3178. prom %0.2 = MkArg missing, Prom(0), e0.0
  3179. real$' %0.3 = LdConst [1] 65535
  3180. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3181. BB2
  3182. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3183. t %2.1 = Identical %0.1, %2.0
  3184. void Assume %2.1, %0.4
  3185. val^? %2.3 = CastType %0.2
  3186. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3187. val %2.5 = Force! %2.3, e2.4
  3188. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3189. val %2.7 = Force %2.6, e2.4
  3190. void StVarSuper seed, %2.7, e0.0
  3191. val^? %2.9 = LdVar seed, e0.0
  3192. val %2.10 = Force %2.9, e0.0
  3193. void Return %2.10
  3194. BB1
  3195. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3196. void Deopt %1.0
  3197. Prom 0:
  3198. BB0
  3199. env e0.0 = LdFunctionEnv
  3200. val^? %0.1 = LdVar seed, e0.0
  3201. val %0.2 = Force %0.1, e0.0
  3202. real$' %0.3 = LdConst [1] 1309
  3203. goto BB1
  3204. BB1
  3205. val %1.0 = Mul %0.2, %0.3, e0.0
  3206. real$' %1.1 = LdConst [1] 13849
  3207. goto BB2
  3208. BB2
  3209. val %2.0 = Add %1.0, %1.1, e0.0
  3210. void Return %2.0
  3211. ├────── Cleanup redundant operations: == 508
  3212. nextRandom[0x7f9244606500]
  3213. BB0
  3214. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3215. cls %0.1 = LdFun bitwAnd, e0.0
  3216. prom %0.2 = MkArg missing, Prom(0), e0.0
  3217. real$' %0.3 = LdConst [1] 65535
  3218. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3219. BB2
  3220. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3221. t %2.1 = Identical %0.1, %2.0
  3222. void Assume %2.1, %0.4
  3223. val^? %2.3 = CastType %0.2
  3224. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3225. val %2.5 = Force! %2.3, e2.4
  3226. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3227. val %2.7 = Force %2.6, e2.4
  3228. void StVarSuper seed, %2.7, e0.0
  3229. val^? %2.9 = LdVar seed, e0.0
  3230. val %2.10 = Force %2.9, e0.0
  3231. void Return %2.10
  3232. BB1
  3233. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3234. void Deopt %1.0
  3235. Prom 0:
  3236. BB0
  3237. env e0.0 = LdFunctionEnv
  3238. val^? %0.1 = LdVar seed, e0.0
  3239. val %0.2 = Force %0.1, e0.0
  3240. real$' %0.3 = LdConst [1] 1309
  3241. goto BB1
  3242. BB1
  3243. val %1.0 = Mul %0.2, %0.3, e0.0
  3244. real$' %1.1 = LdConst [1] 13849
  3245. goto BB2
  3246. BB2
  3247. val %2.0 = Add %1.0, %1.1, e0.0
  3248. void Return %2.0
  3249. ├────── Inline closures: == 515
  3250. nextRandom[0x7f9244606500]
  3251. BB0
  3252. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3253. cls %0.1 = LdFun bitwAnd, e0.0
  3254. prom %0.2 = MkArg missing, Prom(0), e0.0
  3255. real$' %0.3 = LdConst [1] 65535
  3256. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3257. BB2
  3258. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3259. t %2.1 = Identical %0.1, %2.0
  3260. void Assume %2.1, %0.4
  3261. val^? %2.3 = CastType %0.2
  3262. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3263. val %2.5 = Force! %2.3, e2.4
  3264. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3265. val %2.7 = Force %2.6, e2.4
  3266. void StVarSuper seed, %2.7, e0.0
  3267. val^? %2.9 = LdVar seed, e0.0
  3268. val %2.10 = Force %2.9, e0.0
  3269. void Return %2.10
  3270. BB1
  3271. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3272. void Deopt %1.0
  3273. Prom 0:
  3274. BB0
  3275. env e0.0 = LdFunctionEnv
  3276. val^? %0.1 = LdVar seed, e0.0
  3277. val %0.2 = Force %0.1, e0.0
  3278. real$' %0.3 = LdConst [1] 1309
  3279. goto BB1
  3280. BB1
  3281. val %1.0 = Mul %0.2, %0.3, e0.0
  3282. real$' %1.1 = LdConst [1] 13849
  3283. goto BB2
  3284. BB2
  3285. val %2.0 = Add %1.0, %1.1, e0.0
  3286. void Return %2.0
  3287. ├────── Speculate on values to elide environments: == 522
  3288. nextRandom[0x7f9244606500]
  3289. BB0
  3290. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3291. cls %0.1 = LdFun bitwAnd, e0.0
  3292. prom %0.2 = MkArg missing, Prom(0), e0.0
  3293. real$' %0.3 = LdConst [1] 65535
  3294. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3295. BB2
  3296. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3297. t %2.1 = Identical %0.1, %2.0
  3298. void Assume %2.1, %0.4
  3299. val^? %2.3 = CastType %0.2
  3300. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3301. val %2.5 = Force! %2.3, e2.4
  3302. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3303. val %2.7 = Force %2.6, e2.4
  3304. void StVarSuper seed, %2.7, e0.0
  3305. val^? %2.9 = LdVar seed, e0.0
  3306. val %2.10 = Force %2.9, e0.0
  3307. void Return %2.10
  3308. BB1
  3309. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3310. void Deopt %1.0
  3311. Prom 0:
  3312. BB0
  3313. env e0.0 = LdFunctionEnv
  3314. val^? %0.1 = LdVar seed, e0.0
  3315. val %0.2 = Force %0.1, e0.0
  3316. real$' %0.3 = LdConst [1] 1309
  3317. goto BB1
  3318. BB1
  3319. val %1.0 = Mul %0.2, %0.3, e0.0
  3320. real$' %1.1 = LdConst [1] 13849
  3321. goto BB2
  3322. BB2
  3323. val %2.0 = Add %1.0, %1.1, e0.0
  3324. void Return %2.0
  3325. ├────── Cleanup unused checkpoints: == 529
  3326. nextRandom[0x7f9244606500]
  3327. BB0
  3328. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3329. cls %0.1 = LdFun bitwAnd, e0.0
  3330. prom %0.2 = MkArg missing, Prom(0), e0.0
  3331. real$' %0.3 = LdConst [1] 65535
  3332. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3333. BB2
  3334. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3335. t %2.1 = Identical %0.1, %2.0
  3336. void Assume %2.1, %0.4
  3337. val^? %2.3 = CastType %0.2
  3338. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3339. val %2.5 = Force! %2.3, e2.4
  3340. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3341. val %2.7 = Force %2.6, e2.4
  3342. void StVarSuper seed, %2.7, e0.0
  3343. val^? %2.9 = LdVar seed, e0.0
  3344. val %2.10 = Force %2.9, e0.0
  3345. void Return %2.10
  3346. BB1
  3347. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3348. void Deopt %1.0
  3349. Prom 0:
  3350. BB0
  3351. env e0.0 = LdFunctionEnv
  3352. val^? %0.1 = LdVar seed, e0.0
  3353. val %0.2 = Force %0.1, e0.0
  3354. real$' %0.3 = LdConst [1] 1309
  3355. goto BB1
  3356. BB1
  3357. val %1.0 = Mul %0.2, %0.3, e0.0
  3358. real$' %1.1 = LdConst [1] 13849
  3359. goto BB2
  3360. BB2
  3361. val %2.0 = Add %1.0, %1.1, e0.0
  3362. void Return %2.0
  3363. ├────── Cleanup framestates unused by checkpoints: == 536
  3364. nextRandom[0x7f9244606500]
  3365. BB0
  3366. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3367. cls %0.1 = LdFun bitwAnd, e0.0
  3368. prom %0.2 = MkArg missing, Prom(0), e0.0
  3369. real$' %0.3 = LdConst [1] 65535
  3370. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3371. BB2
  3372. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3373. t %2.1 = Identical %0.1, %2.0
  3374. void Assume %2.1, %0.4
  3375. val^? %2.3 = CastType %0.2
  3376. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3377. val %2.5 = Force! %2.3, e2.4
  3378. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3379. val %2.7 = Force %2.6, e2.4
  3380. void StVarSuper seed, %2.7, e0.0
  3381. val^? %2.9 = LdVar seed, e0.0
  3382. val %2.10 = Force %2.9, e0.0
  3383. void Return %2.10
  3384. BB1
  3385. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3386. void Deopt %1.0
  3387. Prom 0:
  3388. BB0
  3389. env e0.0 = LdFunctionEnv
  3390. val^? %0.1 = LdVar seed, e0.0
  3391. val %0.2 = Force %0.1, e0.0
  3392. real$' %0.3 = LdConst [1] 1309
  3393. goto BB1
  3394. BB1
  3395. val %1.0 = Mul %0.2, %0.3, e0.0
  3396. real$' %1.1 = LdConst [1] 13849
  3397. goto BB2
  3398. BB2
  3399. val %2.0 = Add %1.0, %1.1, e0.0
  3400. void Return %2.0
  3401. ├────── Inline Promises: == 543
  3402. nextRandom[0x7f9244606500]
  3403. BB0
  3404. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3405. cls %0.1 = LdFun bitwAnd, e0.0
  3406. prom %0.2 = MkArg missing, Prom(0), e0.0
  3407. real$' %0.3 = LdConst [1] 65535
  3408. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3409. BB2
  3410. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3411. t %2.1 = Identical %0.1, %2.0
  3412. void Assume %2.1, %0.4
  3413. val^? %2.3 = CastType %0.2
  3414. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3415. val %2.5 = Force! %2.3, e2.4
  3416. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3417. val %2.7 = Force %2.6, e2.4
  3418. void StVarSuper seed, %2.7, e0.0
  3419. val^? %2.9 = LdVar seed, e0.0
  3420. val %2.10 = Force %2.9, e0.0
  3421. void Return %2.10
  3422. BB1
  3423. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3424. void Deopt %1.0
  3425. Prom 0:
  3426. BB0
  3427. env e0.0 = LdFunctionEnv
  3428. val^? %0.1 = LdVar seed, e0.0
  3429. val %0.2 = Force %0.1, e0.0
  3430. real$' %0.3 = LdConst [1] 1309
  3431. goto BB1
  3432. BB1
  3433. val %1.0 = Mul %0.2, %0.3, e0.0
  3434. real$' %1.1 = LdConst [1] 13849
  3435. goto BB2
  3436. BB2
  3437. val %2.0 = Add %1.0, %1.1, e0.0
  3438. void Return %2.0
  3439. ├────── Scope resolution: == 550
  3440. nextRandom[0x7f9244606500]
  3441. BB0
  3442. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3443. cls %0.1 = LdFun bitwAnd, e0.0
  3444. prom %0.2 = MkArg missing, Prom(0), e0.0
  3445. real$' %0.3 = LdConst [1] 65535
  3446. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3447. BB2
  3448. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3449. t %2.1 = Identical %0.1, %2.0
  3450. void Assume %2.1, %0.4
  3451. val^? %2.3 = CastType %0.2
  3452. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3453. val %2.5 = Force! %2.3, e2.4
  3454. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3455. val %2.7 = Force %2.6, e2.4
  3456. void StVarSuper seed, %2.7, e0.0
  3457. val^? %2.9 = LdVar seed, e0.0
  3458. val %2.10 = Force %2.9, e0.0
  3459. void Return %2.10
  3460. BB1
  3461. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3462. void Deopt %1.0
  3463. Prom 0:
  3464. BB0
  3465. env e0.0 = LdFunctionEnv
  3466. val^? %0.1 = LdVar seed, e0.0
  3467. val %0.2 = Force %0.1, e0.0
  3468. real$' %0.3 = LdConst [1] 1309
  3469. goto BB1
  3470. BB1
  3471. val %1.0 = Mul %0.2, %0.3, e0.0
  3472. real$' %1.1 = LdConst [1] 13849
  3473. goto BB2
  3474. BB2
  3475. val %2.0 = Add %1.0, %1.1, e0.0
  3476. void Return %2.0
  3477. ├────── Constant folding: == 557
  3478. nextRandom[0x7f9244606500]
  3479. BB0
  3480. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3481. cls %0.1 = LdFun bitwAnd, e0.0
  3482. prom %0.2 = MkArg missing, Prom(0), e0.0
  3483. real$' %0.3 = LdConst [1] 65535
  3484. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3485. BB2
  3486. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3487. t %2.1 = Identical %0.1, %2.0
  3488. void Assume %2.1, %0.4
  3489. val^? %2.3 = CastType %0.2
  3490. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3491. val %2.5 = Force! %2.3, e2.4
  3492. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3493. val %2.7 = Force %2.6, e2.4
  3494. void StVarSuper seed, %2.7, e0.0
  3495. val^? %2.9 = LdVar seed, e0.0
  3496. val %2.10 = Force %2.9, e0.0
  3497. void Return %2.10
  3498. BB1
  3499. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3500. void Deopt %1.0
  3501. Prom 0:
  3502. BB0
  3503. env e0.0 = LdFunctionEnv
  3504. val^? %0.1 = LdVar seed, e0.0
  3505. val %0.2 = Force %0.1, e0.0
  3506. real$' %0.3 = LdConst [1] 1309
  3507. goto BB1
  3508. BB1
  3509. val %1.0 = Mul %0.2, %0.3, e0.0
  3510. real$' %1.1 = LdConst [1] 13849
  3511. goto BB2
  3512. BB2
  3513. val %2.0 = Add %1.0, %1.1, e0.0
  3514. void Return %2.0
  3515. ├────── Cleanup redundant operations: == 564
  3516. nextRandom[0x7f9244606500]
  3517. BB0
  3518. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3519. cls %0.1 = LdFun bitwAnd, e0.0
  3520. prom %0.2 = MkArg missing, Prom(0), e0.0
  3521. real$' %0.3 = LdConst [1] 65535
  3522. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3523. BB2
  3524. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3525. t %2.1 = Identical %0.1, %2.0
  3526. void Assume %2.1, %0.4
  3527. val^? %2.3 = CastType %0.2
  3528. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3529. val %2.5 = Force! %2.3, e2.4
  3530. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3531. val %2.7 = Force %2.6, e2.4
  3532. void StVarSuper seed, %2.7, e0.0
  3533. val^? %2.9 = LdVar seed, e0.0
  3534. val %2.10 = Force %2.9, e0.0
  3535. void Return %2.10
  3536. BB1
  3537. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3538. void Deopt %1.0
  3539. Prom 0:
  3540. BB0
  3541. env e0.0 = LdFunctionEnv
  3542. val^? %0.1 = LdVar seed, e0.0
  3543. val %0.2 = Force %0.1, e0.0
  3544. real$' %0.3 = LdConst [1] 1309
  3545. goto BB1
  3546. BB1
  3547. val %1.0 = Mul %0.2, %0.3, e0.0
  3548. real$' %1.1 = LdConst [1] 13849
  3549. goto BB2
  3550. BB2
  3551. val %2.0 = Add %1.0, %1.1, e0.0
  3552. void Return %2.0
  3553. ├────── Delay instructions: == 571
  3554. nextRandom[0x7f9244606500]
  3555. BB0
  3556. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3557. cls %0.1 = LdFun bitwAnd, e0.0
  3558. prom %0.2 = MkArg missing, Prom(0), e0.0
  3559. real$' %0.3 = LdConst [1] 65535
  3560. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3561. BB2
  3562. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3563. t %2.1 = Identical %0.1, %2.0
  3564. void Assume %2.1, %0.4
  3565. val^? %2.3 = CastType %0.2
  3566. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3567. val %2.5 = Force! %2.3, e2.4
  3568. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3569. val %2.7 = Force %2.6, e2.4
  3570. void StVarSuper seed, %2.7, e0.0
  3571. val^? %2.9 = LdVar seed, e0.0
  3572. val %2.10 = Force %2.9, e0.0
  3573. void Return %2.10
  3574. BB1
  3575. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3576. void Deopt %1.0
  3577. Prom 0:
  3578. BB0
  3579. env e0.0 = LdFunctionEnv
  3580. val^? %0.1 = LdVar seed, e0.0
  3581. val %0.2 = Force %0.1, e0.0
  3582. real$' %0.3 = LdConst [1] 1309
  3583. goto BB1
  3584. BB1
  3585. val %1.0 = Mul %0.2, %0.3, e0.0
  3586. real$' %1.1 = LdConst [1] 13849
  3587. goto BB2
  3588. BB2
  3589. val %2.0 = Add %1.0, %1.1, e0.0
  3590. void Return %2.0
  3591. ├────── Elide environments not needed: == 578
  3592. nextRandom[0x7f9244606500]
  3593. BB0
  3594. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3595. cls %0.1 = LdFun bitwAnd, e0.0
  3596. prom %0.2 = MkArg missing, Prom(0), e0.0
  3597. real$' %0.3 = LdConst [1] 65535
  3598. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3599. BB2
  3600. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3601. t %2.1 = Identical %0.1, %2.0
  3602. void Assume %2.1, %0.4
  3603. val^? %2.3 = CastType %0.2
  3604. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3605. val %2.5 = Force! %2.3, e2.4
  3606. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3607. val %2.7 = Force %2.6, e2.4
  3608. void StVarSuper seed, %2.7, e0.0
  3609. val^? %2.9 = LdVar seed, e0.0
  3610. val %2.10 = Force %2.9, e0.0
  3611. void Return %2.10
  3612. BB1
  3613. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3614. void Deopt %1.0
  3615. Prom 0:
  3616. BB0
  3617. env e0.0 = LdFunctionEnv
  3618. val^? %0.1 = LdVar seed, e0.0
  3619. val %0.2 = Force %0.1, e0.0
  3620. real$' %0.3 = LdConst [1] 1309
  3621. goto BB1
  3622. BB1
  3623. val %1.0 = Mul %0.2, %0.3, e0.0
  3624. real$' %1.1 = LdConst [1] 13849
  3625. goto BB2
  3626. BB2
  3627. val %2.0 = Add %1.0, %1.1, e0.0
  3628. void Return %2.0
  3629. ├────── Move environment creation as far as possible: == 585
  3630. nextRandom[0x7f9244606500]
  3631. BB0
  3632. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3633. cls %0.1 = LdFun bitwAnd, e0.0
  3634. prom %0.2 = MkArg missing, Prom(0), e0.0
  3635. real$' %0.3 = LdConst [1] 65535
  3636. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3637. BB2
  3638. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3639. t %2.1 = Identical %0.1, %2.0
  3640. void Assume %2.1, %0.4
  3641. val^? %2.3 = CastType %0.2
  3642. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3643. val %2.5 = Force! %2.3, e2.4
  3644. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3645. val %2.7 = Force %2.6, e2.4
  3646. void StVarSuper seed, %2.7, e0.0
  3647. val^? %2.9 = LdVar seed, e0.0
  3648. val %2.10 = Force %2.9, e0.0
  3649. void Return %2.10
  3650. BB1
  3651. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3652. void Deopt %1.0
  3653. Prom 0:
  3654. BB0
  3655. env e0.0 = LdFunctionEnv
  3656. val^? %0.1 = LdVar seed, e0.0
  3657. val %0.2 = Force %0.1, e0.0
  3658. real$' %0.3 = LdConst [1] 1309
  3659. goto BB1
  3660. BB1
  3661. val %1.0 = Mul %0.2, %0.3, e0.0
  3662. real$' %1.1 = LdConst [1] 13849
  3663. goto BB2
  3664. BB2
  3665. val %2.0 = Add %1.0, %1.1, e0.0
  3666. void Return %2.0
  3667. ├────── Cleanup redundant operations: == 592
  3668. nextRandom[0x7f9244606500]
  3669. BB0
  3670. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3671. cls %0.1 = LdFun bitwAnd, e0.0
  3672. prom %0.2 = MkArg missing, Prom(0), e0.0
  3673. real$' %0.3 = LdConst [1] 65535
  3674. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3675. BB2
  3676. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3677. t %2.1 = Identical %0.1, %2.0
  3678. void Assume %2.1, %0.4
  3679. val^? %2.3 = CastType %0.2
  3680. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3681. val %2.5 = Force! %2.3, e2.4
  3682. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3683. val %2.7 = Force %2.6, e2.4
  3684. void StVarSuper seed, %2.7, e0.0
  3685. val^? %2.9 = LdVar seed, e0.0
  3686. val %2.10 = Force %2.9, e0.0
  3687. void Return %2.10
  3688. BB1
  3689. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3690. void Deopt %1.0
  3691. Prom 0:
  3692. BB0
  3693. env e0.0 = LdFunctionEnv
  3694. val^? %0.1 = LdVar seed, e0.0
  3695. val %0.2 = Force %0.1, e0.0
  3696. real$' %0.3 = LdConst [1] 1309
  3697. goto BB1
  3698. BB1
  3699. val %1.0 = Mul %0.2, %0.3, e0.0
  3700. real$' %1.1 = LdConst [1] 13849
  3701. goto BB2
  3702. BB2
  3703. val %2.0 = Add %1.0, %1.1, e0.0
  3704. void Return %2.0
  3705. ├────── Inline closures: == 599
  3706. nextRandom[0x7f9244606500]
  3707. BB0
  3708. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3709. cls %0.1 = LdFun bitwAnd, e0.0
  3710. prom %0.2 = MkArg missing, Prom(0), e0.0
  3711. real$' %0.3 = LdConst [1] 65535
  3712. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3713. BB2
  3714. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3715. t %2.1 = Identical %0.1, %2.0
  3716. void Assume %2.1, %0.4
  3717. val^? %2.3 = CastType %0.2
  3718. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3719. val %2.5 = Force! %2.3, e2.4
  3720. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3721. val %2.7 = Force %2.6, e2.4
  3722. void StVarSuper seed, %2.7, e0.0
  3723. val^? %2.9 = LdVar seed, e0.0
  3724. val %2.10 = Force %2.9, e0.0
  3725. void Return %2.10
  3726. BB1
  3727. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3728. void Deopt %1.0
  3729. Prom 0:
  3730. BB0
  3731. env e0.0 = LdFunctionEnv
  3732. val^? %0.1 = LdVar seed, e0.0
  3733. val %0.2 = Force %0.1, e0.0
  3734. real$' %0.3 = LdConst [1] 1309
  3735. goto BB1
  3736. BB1
  3737. val %1.0 = Mul %0.2, %0.3, e0.0
  3738. real$' %1.1 = LdConst [1] 13849
  3739. goto BB2
  3740. BB2
  3741. val %2.0 = Add %1.0, %1.1, e0.0
  3742. void Return %2.0
  3743. ├────── Inline Promises: == 606
  3744. nextRandom[0x7f9244606500]
  3745. BB0
  3746. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3747. cls %0.1 = LdFun bitwAnd, e0.0
  3748. prom %0.2 = MkArg missing, Prom(0), e0.0
  3749. real$' %0.3 = LdConst [1] 65535
  3750. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3751. BB2
  3752. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3753. t %2.1 = Identical %0.1, %2.0
  3754. void Assume %2.1, %0.4
  3755. val^? %2.3 = CastType %0.2
  3756. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3757. val %2.5 = Force! %2.3, e2.4
  3758. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3759. val %2.7 = Force %2.6, e2.4
  3760. void StVarSuper seed, %2.7, e0.0
  3761. val^? %2.9 = LdVar seed, e0.0
  3762. val %2.10 = Force %2.9, e0.0
  3763. void Return %2.10
  3764. BB1
  3765. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3766. void Deopt %1.0
  3767. Prom 0:
  3768. BB0
  3769. env e0.0 = LdFunctionEnv
  3770. val^? %0.1 = LdVar seed, e0.0
  3771. val %0.2 = Force %0.1, e0.0
  3772. real$' %0.3 = LdConst [1] 1309
  3773. goto BB1
  3774. BB1
  3775. val %1.0 = Mul %0.2, %0.3, e0.0
  3776. real$' %1.1 = LdConst [1] 13849
  3777. goto BB2
  3778. BB2
  3779. val %2.0 = Add %1.0, %1.1, e0.0
  3780. void Return %2.0
  3781. ├────── Scope resolution: == 613
  3782. nextRandom[0x7f9244606500]
  3783. BB0
  3784. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3785. cls %0.1 = LdFun bitwAnd, e0.0
  3786. prom %0.2 = MkArg missing, Prom(0), e0.0
  3787. real$' %0.3 = LdConst [1] 65535
  3788. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3789. BB2
  3790. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3791. t %2.1 = Identical %0.1, %2.0
  3792. void Assume %2.1, %0.4
  3793. val^? %2.3 = CastType %0.2
  3794. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3795. val %2.5 = Force! %2.3, e2.4
  3796. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3797. val %2.7 = Force %2.6, e2.4
  3798. void StVarSuper seed, %2.7, e0.0
  3799. val^? %2.9 = LdVar seed, e0.0
  3800. val %2.10 = Force %2.9, e0.0
  3801. void Return %2.10
  3802. BB1
  3803. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3804. void Deopt %1.0
  3805. Prom 0:
  3806. BB0
  3807. env e0.0 = LdFunctionEnv
  3808. val^? %0.1 = LdVar seed, e0.0
  3809. val %0.2 = Force %0.1, e0.0
  3810. real$' %0.3 = LdConst [1] 1309
  3811. goto BB1
  3812. BB1
  3813. val %1.0 = Mul %0.2, %0.3, e0.0
  3814. real$' %1.1 = LdConst [1] 13849
  3815. goto BB2
  3816. BB2
  3817. val %2.0 = Add %1.0, %1.1, e0.0
  3818. void Return %2.0
  3819. ├────── Constant folding: == 620
  3820. nextRandom[0x7f9244606500]
  3821. BB0
  3822. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3823. cls %0.1 = LdFun bitwAnd, e0.0
  3824. prom %0.2 = MkArg missing, Prom(0), e0.0
  3825. real$' %0.3 = LdConst [1] 65535
  3826. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3827. BB2
  3828. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3829. t %2.1 = Identical %0.1, %2.0
  3830. void Assume %2.1, %0.4
  3831. val^? %2.3 = CastType %0.2
  3832. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3833. val %2.5 = Force! %2.3, e2.4
  3834. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3835. val %2.7 = Force %2.6, e2.4
  3836. void StVarSuper seed, %2.7, e0.0
  3837. val^? %2.9 = LdVar seed, e0.0
  3838. val %2.10 = Force %2.9, e0.0
  3839. void Return %2.10
  3840. BB1
  3841. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3842. void Deopt %1.0
  3843. Prom 0:
  3844. BB0
  3845. env e0.0 = LdFunctionEnv
  3846. val^? %0.1 = LdVar seed, e0.0
  3847. val %0.2 = Force %0.1, e0.0
  3848. real$' %0.3 = LdConst [1] 1309
  3849. goto BB1
  3850. BB1
  3851. val %1.0 = Mul %0.2, %0.3, e0.0
  3852. real$' %1.1 = LdConst [1] 13849
  3853. goto BB2
  3854. BB2
  3855. val %2.0 = Add %1.0, %1.1, e0.0
  3856. void Return %2.0
  3857. ├────── Cleanup redundant operations: == 627
  3858. nextRandom[0x7f9244606500]
  3859. BB0
  3860. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3861. cls %0.1 = LdFun bitwAnd, e0.0
  3862. prom %0.2 = MkArg missing, Prom(0), e0.0
  3863. real$' %0.3 = LdConst [1] 65535
  3864. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3865. BB2
  3866. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3867. t %2.1 = Identical %0.1, %2.0
  3868. void Assume %2.1, %0.4
  3869. val^? %2.3 = CastType %0.2
  3870. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3871. val %2.5 = Force! %2.3, e2.4
  3872. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3873. val %2.7 = Force %2.6, e2.4
  3874. void StVarSuper seed, %2.7, e0.0
  3875. val^? %2.9 = LdVar seed, e0.0
  3876. val %2.10 = Force %2.9, e0.0
  3877. void Return %2.10
  3878. BB1
  3879. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3880. void Deopt %1.0
  3881. Prom 0:
  3882. BB0
  3883. env e0.0 = LdFunctionEnv
  3884. val^? %0.1 = LdVar seed, e0.0
  3885. val %0.2 = Force %0.1, e0.0
  3886. real$' %0.3 = LdConst [1] 1309
  3887. goto BB1
  3888. BB1
  3889. val %1.0 = Mul %0.2, %0.3, e0.0
  3890. real$' %1.1 = LdConst [1] 13849
  3891. goto BB2
  3892. BB2
  3893. val %2.0 = Add %1.0, %1.1, e0.0
  3894. void Return %2.0
  3895. ├────── Delay instructions: == 634
  3896. nextRandom[0x7f9244606500]
  3897. BB0
  3898. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3899. cls %0.1 = LdFun bitwAnd, e0.0
  3900. prom %0.2 = MkArg missing, Prom(0), e0.0
  3901. real$' %0.3 = LdConst [1] 65535
  3902. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3903. BB2
  3904. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3905. t %2.1 = Identical %0.1, %2.0
  3906. void Assume %2.1, %0.4
  3907. val^? %2.3 = CastType %0.2
  3908. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3909. val %2.5 = Force! %2.3, e2.4
  3910. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3911. val %2.7 = Force %2.6, e2.4
  3912. void StVarSuper seed, %2.7, e0.0
  3913. val^? %2.9 = LdVar seed, e0.0
  3914. val %2.10 = Force %2.9, e0.0
  3915. void Return %2.10
  3916. BB1
  3917. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3918. void Deopt %1.0
  3919. Prom 0:
  3920. BB0
  3921. env e0.0 = LdFunctionEnv
  3922. val^? %0.1 = LdVar seed, e0.0
  3923. val %0.2 = Force %0.1, e0.0
  3924. real$' %0.3 = LdConst [1] 1309
  3925. goto BB1
  3926. BB1
  3927. val %1.0 = Mul %0.2, %0.3, e0.0
  3928. real$' %1.1 = LdConst [1] 13849
  3929. goto BB2
  3930. BB2
  3931. val %2.0 = Add %1.0, %1.1, e0.0
  3932. void Return %2.0
  3933. ├────── Elide environments not needed: == 641
  3934. nextRandom[0x7f9244606500]
  3935. BB0
  3936. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3937. cls %0.1 = LdFun bitwAnd, e0.0
  3938. prom %0.2 = MkArg missing, Prom(0), e0.0
  3939. real$' %0.3 = LdConst [1] 65535
  3940. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3941. BB2
  3942. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3943. t %2.1 = Identical %0.1, %2.0
  3944. void Assume %2.1, %0.4
  3945. val^? %2.3 = CastType %0.2
  3946. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3947. val %2.5 = Force! %2.3, e2.4
  3948. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3949. val %2.7 = Force %2.6, e2.4
  3950. void StVarSuper seed, %2.7, e0.0
  3951. val^? %2.9 = LdVar seed, e0.0
  3952. val %2.10 = Force %2.9, e0.0
  3953. void Return %2.10
  3954. BB1
  3955. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3956. void Deopt %1.0
  3957. Prom 0:
  3958. BB0
  3959. env e0.0 = LdFunctionEnv
  3960. val^? %0.1 = LdVar seed, e0.0
  3961. val %0.2 = Force %0.1, e0.0
  3962. real$' %0.3 = LdConst [1] 1309
  3963. goto BB1
  3964. BB1
  3965. val %1.0 = Mul %0.2, %0.3, e0.0
  3966. real$' %1.1 = LdConst [1] 13849
  3967. goto BB2
  3968. BB2
  3969. val %2.0 = Add %1.0, %1.1, e0.0
  3970. void Return %2.0
  3971. ├────── Move environment creation as far as possible: == 648
  3972. nextRandom[0x7f9244606500]
  3973. BB0
  3974. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  3975. cls %0.1 = LdFun bitwAnd, e0.0
  3976. prom %0.2 = MkArg missing, Prom(0), e0.0
  3977. real$' %0.3 = LdConst [1] 65535
  3978. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  3979. BB2
  3980. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  3981. t %2.1 = Identical %0.1, %2.0
  3982. void Assume %2.1, %0.4
  3983. val^? %2.3 = CastType %0.2
  3984. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  3985. val %2.5 = Force! %2.3, e2.4
  3986. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  3987. val %2.7 = Force %2.6, e2.4
  3988. void StVarSuper seed, %2.7, e0.0
  3989. val^? %2.9 = LdVar seed, e0.0
  3990. val %2.10 = Force %2.9, e0.0
  3991. void Return %2.10
  3992. BB1
  3993. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  3994. void Deopt %1.0
  3995. Prom 0:
  3996. BB0
  3997. env e0.0 = LdFunctionEnv
  3998. val^? %0.1 = LdVar seed, e0.0
  3999. val %0.2 = Force %0.1, e0.0
  4000. real$' %0.3 = LdConst [1] 1309
  4001. goto BB1
  4002. BB1
  4003. val %1.0 = Mul %0.2, %0.3, e0.0
  4004. real$' %1.1 = LdConst [1] 13849
  4005. goto BB2
  4006. BB2
  4007. val %2.0 = Add %1.0, %1.1, e0.0
  4008. void Return %2.0
  4009. ├────── Cleanup redundant operations: == 655
  4010. nextRandom[0x7f9244606500]
  4011. BB0
  4012. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4013. cls %0.1 = LdFun bitwAnd, e0.0
  4014. prom %0.2 = MkArg missing, Prom(0), e0.0
  4015. real$' %0.3 = LdConst [1] 65535
  4016. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4017. BB2
  4018. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4019. t %2.1 = Identical %0.1, %2.0
  4020. void Assume %2.1, %0.4
  4021. val^? %2.3 = CastType %0.2
  4022. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4023. val %2.5 = Force! %2.3, e2.4
  4024. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4025. val %2.7 = Force %2.6, e2.4
  4026. void StVarSuper seed, %2.7, e0.0
  4027. val^? %2.9 = LdVar seed, e0.0
  4028. val %2.10 = Force %2.9, e0.0
  4029. void Return %2.10
  4030. BB1
  4031. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4032. void Deopt %1.0
  4033. Prom 0:
  4034. BB0
  4035. env e0.0 = LdFunctionEnv
  4036. val^? %0.1 = LdVar seed, e0.0
  4037. val %0.2 = Force %0.1, e0.0
  4038. real$' %0.3 = LdConst [1] 1309
  4039. goto BB1
  4040. BB1
  4041. val %1.0 = Mul %0.2, %0.3, e0.0
  4042. real$' %1.1 = LdConst [1] 13849
  4043. goto BB2
  4044. BB2
  4045. val %2.0 = Add %1.0, %1.1, e0.0
  4046. void Return %2.0
  4047. ├────── Inline closures: == 662
  4048. nextRandom[0x7f9244606500]
  4049. BB0
  4050. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4051. cls %0.1 = LdFun bitwAnd, e0.0
  4052. prom %0.2 = MkArg missing, Prom(0), e0.0
  4053. real$' %0.3 = LdConst [1] 65535
  4054. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4055. BB2
  4056. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4057. t %2.1 = Identical %0.1, %2.0
  4058. void Assume %2.1, %0.4
  4059. val^? %2.3 = CastType %0.2
  4060. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4061. val %2.5 = Force! %2.3, e2.4
  4062. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4063. val %2.7 = Force %2.6, e2.4
  4064. void StVarSuper seed, %2.7, e0.0
  4065. val^? %2.9 = LdVar seed, e0.0
  4066. val %2.10 = Force %2.9, e0.0
  4067. void Return %2.10
  4068. BB1
  4069. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4070. void Deopt %1.0
  4071. Prom 0:
  4072. BB0
  4073. env e0.0 = LdFunctionEnv
  4074. val^? %0.1 = LdVar seed, e0.0
  4075. val %0.2 = Force %0.1, e0.0
  4076. real$' %0.3 = LdConst [1] 1309
  4077. goto BB1
  4078. BB1
  4079. val %1.0 = Mul %0.2, %0.3, e0.0
  4080. real$' %1.1 = LdConst [1] 13849
  4081. goto BB2
  4082. BB2
  4083. val %2.0 = Add %1.0, %1.1, e0.0
  4084. void Return %2.0
  4085. ├────── Inline Promises: == 669
  4086. nextRandom[0x7f9244606500]
  4087. BB0
  4088. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4089. cls %0.1 = LdFun bitwAnd, e0.0
  4090. prom %0.2 = MkArg missing, Prom(0), e0.0
  4091. real$' %0.3 = LdConst [1] 65535
  4092. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4093. BB2
  4094. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4095. t %2.1 = Identical %0.1, %2.0
  4096. void Assume %2.1, %0.4
  4097. val^? %2.3 = CastType %0.2
  4098. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4099. val %2.5 = Force! %2.3, e2.4
  4100. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4101. val %2.7 = Force %2.6, e2.4
  4102. void StVarSuper seed, %2.7, e0.0
  4103. val^? %2.9 = LdVar seed, e0.0
  4104. val %2.10 = Force %2.9, e0.0
  4105. void Return %2.10
  4106. BB1
  4107. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4108. void Deopt %1.0
  4109. Prom 0:
  4110. BB0
  4111. env e0.0 = LdFunctionEnv
  4112. val^? %0.1 = LdVar seed, e0.0
  4113. val %0.2 = Force %0.1, e0.0
  4114. real$' %0.3 = LdConst [1] 1309
  4115. goto BB1
  4116. BB1
  4117. val %1.0 = Mul %0.2, %0.3, e0.0
  4118. real$' %1.1 = LdConst [1] 13849
  4119. goto BB2
  4120. BB2
  4121. val %2.0 = Add %1.0, %1.1, e0.0
  4122. void Return %2.0
  4123. ├────── Scope resolution: == 676
  4124. nextRandom[0x7f9244606500]
  4125. BB0
  4126. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4127. cls %0.1 = LdFun bitwAnd, e0.0
  4128. prom %0.2 = MkArg missing, Prom(0), e0.0
  4129. real$' %0.3 = LdConst [1] 65535
  4130. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4131. BB2
  4132. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4133. t %2.1 = Identical %0.1, %2.0
  4134. void Assume %2.1, %0.4
  4135. val^? %2.3 = CastType %0.2
  4136. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4137. val %2.5 = Force! %2.3, e2.4
  4138. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4139. val %2.7 = Force %2.6, e2.4
  4140. void StVarSuper seed, %2.7, e0.0
  4141. val^? %2.9 = LdVar seed, e0.0
  4142. val %2.10 = Force %2.9, e0.0
  4143. void Return %2.10
  4144. BB1
  4145. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4146. void Deopt %1.0
  4147. Prom 0:
  4148. BB0
  4149. env e0.0 = LdFunctionEnv
  4150. val^? %0.1 = LdVar seed, e0.0
  4151. val %0.2 = Force %0.1, e0.0
  4152. real$' %0.3 = LdConst [1] 1309
  4153. goto BB1
  4154. BB1
  4155. val %1.0 = Mul %0.2, %0.3, e0.0
  4156. real$' %1.1 = LdConst [1] 13849
  4157. goto BB2
  4158. BB2
  4159. val %2.0 = Add %1.0, %1.1, e0.0
  4160. void Return %2.0
  4161. ├────── Constant folding: == 683
  4162. nextRandom[0x7f9244606500]
  4163. BB0
  4164. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4165. cls %0.1 = LdFun bitwAnd, e0.0
  4166. prom %0.2 = MkArg missing, Prom(0), e0.0
  4167. real$' %0.3 = LdConst [1] 65535
  4168. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4169. BB2
  4170. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4171. t %2.1 = Identical %0.1, %2.0
  4172. void Assume %2.1, %0.4
  4173. val^? %2.3 = CastType %0.2
  4174. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4175. val %2.5 = Force! %2.3, e2.4
  4176. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4177. val %2.7 = Force %2.6, e2.4
  4178. void StVarSuper seed, %2.7, e0.0
  4179. val^? %2.9 = LdVar seed, e0.0
  4180. val %2.10 = Force %2.9, e0.0
  4181. void Return %2.10
  4182. BB1
  4183. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4184. void Deopt %1.0
  4185. Prom 0:
  4186. BB0
  4187. env e0.0 = LdFunctionEnv
  4188. val^? %0.1 = LdVar seed, e0.0
  4189. val %0.2 = Force %0.1, e0.0
  4190. real$' %0.3 = LdConst [1] 1309
  4191. goto BB1
  4192. BB1
  4193. val %1.0 = Mul %0.2, %0.3, e0.0
  4194. real$' %1.1 = LdConst [1] 13849
  4195. goto BB2
  4196. BB2
  4197. val %2.0 = Add %1.0, %1.1, e0.0
  4198. void Return %2.0
  4199. ├────── Cleanup redundant operations: == 690
  4200. nextRandom[0x7f9244606500]
  4201. BB0
  4202. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4203. cls %0.1 = LdFun bitwAnd, e0.0
  4204. prom %0.2 = MkArg missing, Prom(0), e0.0
  4205. real$' %0.3 = LdConst [1] 65535
  4206. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4207. BB2
  4208. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4209. t %2.1 = Identical %0.1, %2.0
  4210. void Assume %2.1, %0.4
  4211. val^? %2.3 = CastType %0.2
  4212. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4213. val %2.5 = Force! %2.3, e2.4
  4214. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4215. val %2.7 = Force %2.6, e2.4
  4216. void StVarSuper seed, %2.7, e0.0
  4217. val^? %2.9 = LdVar seed, e0.0
  4218. val %2.10 = Force %2.9, e0.0
  4219. void Return %2.10
  4220. BB1
  4221. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4222. void Deopt %1.0
  4223. Prom 0:
  4224. BB0
  4225. env e0.0 = LdFunctionEnv
  4226. val^? %0.1 = LdVar seed, e0.0
  4227. val %0.2 = Force %0.1, e0.0
  4228. real$' %0.3 = LdConst [1] 1309
  4229. goto BB1
  4230. BB1
  4231. val %1.0 = Mul %0.2, %0.3, e0.0
  4232. real$' %1.1 = LdConst [1] 13849
  4233. goto BB2
  4234. BB2
  4235. val %2.0 = Add %1.0, %1.1, e0.0
  4236. void Return %2.0
  4237. ├────── Delay instructions: == 697
  4238. nextRandom[0x7f9244606500]
  4239. BB0
  4240. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4241. cls %0.1 = LdFun bitwAnd, e0.0
  4242. prom %0.2 = MkArg missing, Prom(0), e0.0
  4243. real$' %0.3 = LdConst [1] 65535
  4244. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4245. BB2
  4246. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4247. t %2.1 = Identical %0.1, %2.0
  4248. void Assume %2.1, %0.4
  4249. val^? %2.3 = CastType %0.2
  4250. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4251. val %2.5 = Force! %2.3, e2.4
  4252. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4253. val %2.7 = Force %2.6, e2.4
  4254. void StVarSuper seed, %2.7, e0.0
  4255. val^? %2.9 = LdVar seed, e0.0
  4256. val %2.10 = Force %2.9, e0.0
  4257. void Return %2.10
  4258. BB1
  4259. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4260. void Deopt %1.0
  4261. Prom 0:
  4262. BB0
  4263. env e0.0 = LdFunctionEnv
  4264. val^? %0.1 = LdVar seed, e0.0
  4265. val %0.2 = Force %0.1, e0.0
  4266. real$' %0.3 = LdConst [1] 1309
  4267. goto BB1
  4268. BB1
  4269. val %1.0 = Mul %0.2, %0.3, e0.0
  4270. real$' %1.1 = LdConst [1] 13849
  4271. goto BB2
  4272. BB2
  4273. val %2.0 = Add %1.0, %1.1, e0.0
  4274. void Return %2.0
  4275. ├────── Elide environments not needed: == 704
  4276. nextRandom[0x7f9244606500]
  4277. BB0
  4278. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4279. cls %0.1 = LdFun bitwAnd, e0.0
  4280. prom %0.2 = MkArg missing, Prom(0), e0.0
  4281. real$' %0.3 = LdConst [1] 65535
  4282. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4283. BB2
  4284. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4285. t %2.1 = Identical %0.1, %2.0
  4286. void Assume %2.1, %0.4
  4287. val^? %2.3 = CastType %0.2
  4288. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4289. val %2.5 = Force! %2.3, e2.4
  4290. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4291. val %2.7 = Force %2.6, e2.4
  4292. void StVarSuper seed, %2.7, e0.0
  4293. val^? %2.9 = LdVar seed, e0.0
  4294. val %2.10 = Force %2.9, e0.0
  4295. void Return %2.10
  4296. BB1
  4297. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4298. void Deopt %1.0
  4299. Prom 0:
  4300. BB0
  4301. env e0.0 = LdFunctionEnv
  4302. val^? %0.1 = LdVar seed, e0.0
  4303. val %0.2 = Force %0.1, e0.0
  4304. real$' %0.3 = LdConst [1] 1309
  4305. goto BB1
  4306. BB1
  4307. val %1.0 = Mul %0.2, %0.3, e0.0
  4308. real$' %1.1 = LdConst [1] 13849
  4309. goto BB2
  4310. BB2
  4311. val %2.0 = Add %1.0, %1.1, e0.0
  4312. void Return %2.0
  4313. ├────── Move environment creation as far as possible: == 711
  4314. nextRandom[0x7f9244606500]
  4315. BB0
  4316. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4317. cls %0.1 = LdFun bitwAnd, e0.0
  4318. prom %0.2 = MkArg missing, Prom(0), e0.0
  4319. real$' %0.3 = LdConst [1] 65535
  4320. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4321. BB2
  4322. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4323. t %2.1 = Identical %0.1, %2.0
  4324. void Assume %2.1, %0.4
  4325. val^? %2.3 = CastType %0.2
  4326. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4327. val %2.5 = Force! %2.3, e2.4
  4328. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4329. val %2.7 = Force %2.6, e2.4
  4330. void StVarSuper seed, %2.7, e0.0
  4331. val^? %2.9 = LdVar seed, e0.0
  4332. val %2.10 = Force %2.9, e0.0
  4333. void Return %2.10
  4334. BB1
  4335. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4336. void Deopt %1.0
  4337. Prom 0:
  4338. BB0
  4339. env e0.0 = LdFunctionEnv
  4340. val^? %0.1 = LdVar seed, e0.0
  4341. val %0.2 = Force %0.1, e0.0
  4342. real$' %0.3 = LdConst [1] 1309
  4343. goto BB1
  4344. BB1
  4345. val %1.0 = Mul %0.2, %0.3, e0.0
  4346. real$' %1.1 = LdConst [1] 13849
  4347. goto BB2
  4348. BB2
  4349. val %2.0 = Add %1.0, %1.1, e0.0
  4350. void Return %2.0
  4351. ├────── Cleanup redundant operations: == 718
  4352. nextRandom[0x7f9244606500]
  4353. BB0
  4354. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4355. cls %0.1 = LdFun bitwAnd, e0.0
  4356. prom %0.2 = MkArg missing, Prom(0), e0.0
  4357. real$' %0.3 = LdConst [1] 65535
  4358. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4359. BB2
  4360. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4361. t %2.1 = Identical %0.1, %2.0
  4362. void Assume %2.1, %0.4
  4363. val^? %2.3 = CastType %0.2
  4364. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4365. val %2.5 = Force! %2.3, e2.4
  4366. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4367. val %2.7 = Force %2.6, e2.4
  4368. void StVarSuper seed, %2.7, e0.0
  4369. val^? %2.9 = LdVar seed, e0.0
  4370. val %2.10 = Force %2.9, e0.0
  4371. void Return %2.10
  4372. BB1
  4373. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4374. void Deopt %1.0
  4375. Prom 0:
  4376. BB0
  4377. env e0.0 = LdFunctionEnv
  4378. val^? %0.1 = LdVar seed, e0.0
  4379. val %0.2 = Force %0.1, e0.0
  4380. real$' %0.3 = LdConst [1] 1309
  4381. goto BB1
  4382. BB1
  4383. val %1.0 = Mul %0.2, %0.3, e0.0
  4384. real$' %1.1 = LdConst [1] 13849
  4385. goto BB2
  4386. BB2
  4387. val %2.0 = Add %1.0, %1.1, e0.0
  4388. void Return %2.0
  4389. ├────── Inline closures: == 725
  4390. nextRandom[0x7f9244606500]
  4391. BB0
  4392. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4393. cls %0.1 = LdFun bitwAnd, e0.0
  4394. prom %0.2 = MkArg missing, Prom(0), e0.0
  4395. real$' %0.3 = LdConst [1] 65535
  4396. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4397. BB2
  4398. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4399. t %2.1 = Identical %0.1, %2.0
  4400. void Assume %2.1, %0.4
  4401. val^? %2.3 = CastType %0.2
  4402. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4403. val %2.5 = Force! %2.3, e2.4
  4404. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4405. val %2.7 = Force %2.6, e2.4
  4406. void StVarSuper seed, %2.7, e0.0
  4407. val^? %2.9 = LdVar seed, e0.0
  4408. val %2.10 = Force %2.9, e0.0
  4409. void Return %2.10
  4410. BB1
  4411. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4412. void Deopt %1.0
  4413. Prom 0:
  4414. BB0
  4415. env e0.0 = LdFunctionEnv
  4416. val^? %0.1 = LdVar seed, e0.0
  4417. val %0.2 = Force %0.1, e0.0
  4418. real$' %0.3 = LdConst [1] 1309
  4419. goto BB1
  4420. BB1
  4421. val %1.0 = Mul %0.2, %0.3, e0.0
  4422. real$' %1.1 = LdConst [1] 13849
  4423. goto BB2
  4424. BB2
  4425. val %2.0 = Add %1.0, %1.1, e0.0
  4426. void Return %2.0
  4427. ├────── Inline Promises: == 732
  4428. nextRandom[0x7f9244606500]
  4429. BB0
  4430. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4431. cls %0.1 = LdFun bitwAnd, e0.0
  4432. prom %0.2 = MkArg missing, Prom(0), e0.0
  4433. real$' %0.3 = LdConst [1] 65535
  4434. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4435. BB2
  4436. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4437. t %2.1 = Identical %0.1, %2.0
  4438. void Assume %2.1, %0.4
  4439. val^? %2.3 = CastType %0.2
  4440. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4441. val %2.5 = Force! %2.3, e2.4
  4442. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4443. val %2.7 = Force %2.6, e2.4
  4444. void StVarSuper seed, %2.7, e0.0
  4445. val^? %2.9 = LdVar seed, e0.0
  4446. val %2.10 = Force %2.9, e0.0
  4447. void Return %2.10
  4448. BB1
  4449. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4450. void Deopt %1.0
  4451. Prom 0:
  4452. BB0
  4453. env e0.0 = LdFunctionEnv
  4454. val^? %0.1 = LdVar seed, e0.0
  4455. val %0.2 = Force %0.1, e0.0
  4456. real$' %0.3 = LdConst [1] 1309
  4457. goto BB1
  4458. BB1
  4459. val %1.0 = Mul %0.2, %0.3, e0.0
  4460. real$' %1.1 = LdConst [1] 13849
  4461. goto BB2
  4462. BB2
  4463. val %2.0 = Add %1.0, %1.1, e0.0
  4464. void Return %2.0
  4465. ├────── Scope resolution: == 739
  4466. nextRandom[0x7f9244606500]
  4467. BB0
  4468. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4469. cls %0.1 = LdFun bitwAnd, e0.0
  4470. prom %0.2 = MkArg missing, Prom(0), e0.0
  4471. real$' %0.3 = LdConst [1] 65535
  4472. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4473. BB2
  4474. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4475. t %2.1 = Identical %0.1, %2.0
  4476. void Assume %2.1, %0.4
  4477. val^? %2.3 = CastType %0.2
  4478. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4479. val %2.5 = Force! %2.3, e2.4
  4480. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4481. val %2.7 = Force %2.6, e2.4
  4482. void StVarSuper seed, %2.7, e0.0
  4483. val^? %2.9 = LdVar seed, e0.0
  4484. val %2.10 = Force %2.9, e0.0
  4485. void Return %2.10
  4486. BB1
  4487. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4488. void Deopt %1.0
  4489. Prom 0:
  4490. BB0
  4491. env e0.0 = LdFunctionEnv
  4492. val^? %0.1 = LdVar seed, e0.0
  4493. val %0.2 = Force %0.1, e0.0
  4494. real$' %0.3 = LdConst [1] 1309
  4495. goto BB1
  4496. BB1
  4497. val %1.0 = Mul %0.2, %0.3, e0.0
  4498. real$' %1.1 = LdConst [1] 13849
  4499. goto BB2
  4500. BB2
  4501. val %2.0 = Add %1.0, %1.1, e0.0
  4502. void Return %2.0
  4503. ├────── Constant folding: == 746
  4504. nextRandom[0x7f9244606500]
  4505. BB0
  4506. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4507. cls %0.1 = LdFun bitwAnd, e0.0
  4508. prom %0.2 = MkArg missing, Prom(0), e0.0
  4509. real$' %0.3 = LdConst [1] 65535
  4510. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4511. BB2
  4512. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4513. t %2.1 = Identical %0.1, %2.0
  4514. void Assume %2.1, %0.4
  4515. val^? %2.3 = CastType %0.2
  4516. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4517. val %2.5 = Force! %2.3, e2.4
  4518. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4519. val %2.7 = Force %2.6, e2.4
  4520. void StVarSuper seed, %2.7, e0.0
  4521. val^? %2.9 = LdVar seed, e0.0
  4522. val %2.10 = Force %2.9, e0.0
  4523. void Return %2.10
  4524. BB1
  4525. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4526. void Deopt %1.0
  4527. Prom 0:
  4528. BB0
  4529. env e0.0 = LdFunctionEnv
  4530. val^? %0.1 = LdVar seed, e0.0
  4531. val %0.2 = Force %0.1, e0.0
  4532. real$' %0.3 = LdConst [1] 1309
  4533. goto BB1
  4534. BB1
  4535. val %1.0 = Mul %0.2, %0.3, e0.0
  4536. real$' %1.1 = LdConst [1] 13849
  4537. goto BB2
  4538. BB2
  4539. val %2.0 = Add %1.0, %1.1, e0.0
  4540. void Return %2.0
  4541. ├────── Cleanup redundant operations: == 753
  4542. nextRandom[0x7f9244606500]
  4543. BB0
  4544. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4545. cls %0.1 = LdFun bitwAnd, e0.0
  4546. prom %0.2 = MkArg missing, Prom(0), e0.0
  4547. real$' %0.3 = LdConst [1] 65535
  4548. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4549. BB2
  4550. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4551. t %2.1 = Identical %0.1, %2.0
  4552. void Assume %2.1, %0.4
  4553. val^? %2.3 = CastType %0.2
  4554. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4555. val %2.5 = Force! %2.3, e2.4
  4556. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4557. val %2.7 = Force %2.6, e2.4
  4558. void StVarSuper seed, %2.7, e0.0
  4559. val^? %2.9 = LdVar seed, e0.0
  4560. val %2.10 = Force %2.9, e0.0
  4561. void Return %2.10
  4562. BB1
  4563. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4564. void Deopt %1.0
  4565. Prom 0:
  4566. BB0
  4567. env e0.0 = LdFunctionEnv
  4568. val^? %0.1 = LdVar seed, e0.0
  4569. val %0.2 = Force %0.1, e0.0
  4570. real$' %0.3 = LdConst [1] 1309
  4571. goto BB1
  4572. BB1
  4573. val %1.0 = Mul %0.2, %0.3, e0.0
  4574. real$' %1.1 = LdConst [1] 13849
  4575. goto BB2
  4576. BB2
  4577. val %2.0 = Add %1.0, %1.1, e0.0
  4578. void Return %2.0
  4579. ├────── Delay instructions: == 760
  4580. nextRandom[0x7f9244606500]
  4581. BB0
  4582. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4583. cls %0.1 = LdFun bitwAnd, e0.0
  4584. prom %0.2 = MkArg missing, Prom(0), e0.0
  4585. real$' %0.3 = LdConst [1] 65535
  4586. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4587. BB2
  4588. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4589. t %2.1 = Identical %0.1, %2.0
  4590. void Assume %2.1, %0.4
  4591. val^? %2.3 = CastType %0.2
  4592. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4593. val %2.5 = Force! %2.3, e2.4
  4594. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4595. val %2.7 = Force %2.6, e2.4
  4596. void StVarSuper seed, %2.7, e0.0
  4597. val^? %2.9 = LdVar seed, e0.0
  4598. val %2.10 = Force %2.9, e0.0
  4599. void Return %2.10
  4600. BB1
  4601. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4602. void Deopt %1.0
  4603. Prom 0:
  4604. BB0
  4605. env e0.0 = LdFunctionEnv
  4606. val^? %0.1 = LdVar seed, e0.0
  4607. val %0.2 = Force %0.1, e0.0
  4608. real$' %0.3 = LdConst [1] 1309
  4609. goto BB1
  4610. BB1
  4611. val %1.0 = Mul %0.2, %0.3, e0.0
  4612. real$' %1.1 = LdConst [1] 13849
  4613. goto BB2
  4614. BB2
  4615. val %2.0 = Add %1.0, %1.1, e0.0
  4616. void Return %2.0
  4617. ├────── Elide environments not needed: == 767
  4618. nextRandom[0x7f9244606500]
  4619. BB0
  4620. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4621. cls %0.1 = LdFun bitwAnd, e0.0
  4622. prom %0.2 = MkArg missing, Prom(0), e0.0
  4623. real$' %0.3 = LdConst [1] 65535
  4624. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4625. BB2
  4626. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4627. t %2.1 = Identical %0.1, %2.0
  4628. void Assume %2.1, %0.4
  4629. val^? %2.3 = CastType %0.2
  4630. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4631. val %2.5 = Force! %2.3, e2.4
  4632. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4633. val %2.7 = Force %2.6, e2.4
  4634. void StVarSuper seed, %2.7, e0.0
  4635. val^? %2.9 = LdVar seed, e0.0
  4636. val %2.10 = Force %2.9, e0.0
  4637. void Return %2.10
  4638. BB1
  4639. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4640. void Deopt %1.0
  4641. Prom 0:
  4642. BB0
  4643. env e0.0 = LdFunctionEnv
  4644. val^? %0.1 = LdVar seed, e0.0
  4645. val %0.2 = Force %0.1, e0.0
  4646. real$' %0.3 = LdConst [1] 1309
  4647. goto BB1
  4648. BB1
  4649. val %1.0 = Mul %0.2, %0.3, e0.0
  4650. real$' %1.1 = LdConst [1] 13849
  4651. goto BB2
  4652. BB2
  4653. val %2.0 = Add %1.0, %1.1, e0.0
  4654. void Return %2.0
  4655. ├────── Move environment creation as far as possible: == 774
  4656. nextRandom[0x7f9244606500]
  4657. BB0
  4658. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4659. cls %0.1 = LdFun bitwAnd, e0.0
  4660. prom %0.2 = MkArg missing, Prom(0), e0.0
  4661. real$' %0.3 = LdConst [1] 65535
  4662. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4663. BB2
  4664. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4665. t %2.1 = Identical %0.1, %2.0
  4666. void Assume %2.1, %0.4
  4667. val^? %2.3 = CastType %0.2
  4668. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4669. val %2.5 = Force! %2.3, e2.4
  4670. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4671. val %2.7 = Force %2.6, e2.4
  4672. void StVarSuper seed, %2.7, e0.0
  4673. val^? %2.9 = LdVar seed, e0.0
  4674. val %2.10 = Force %2.9, e0.0
  4675. void Return %2.10
  4676. BB1
  4677. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4678. void Deopt %1.0
  4679. Prom 0:
  4680. BB0
  4681. env e0.0 = LdFunctionEnv
  4682. val^? %0.1 = LdVar seed, e0.0
  4683. val %0.2 = Force %0.1, e0.0
  4684. real$' %0.3 = LdConst [1] 1309
  4685. goto BB1
  4686. BB1
  4687. val %1.0 = Mul %0.2, %0.3, e0.0
  4688. real$' %1.1 = LdConst [1] 13849
  4689. goto BB2
  4690. BB2
  4691. val %2.0 = Add %1.0, %1.1, e0.0
  4692. void Return %2.0
  4693. ├────── Cleanup redundant operations: == 781
  4694. nextRandom[0x7f9244606500]
  4695. BB0
  4696. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4697. cls %0.1 = LdFun bitwAnd, e0.0
  4698. prom %0.2 = MkArg missing, Prom(0), e0.0
  4699. real$' %0.3 = LdConst [1] 65535
  4700. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4701. BB2
  4702. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4703. t %2.1 = Identical %0.1, %2.0
  4704. void Assume %2.1, %0.4
  4705. val^? %2.3 = CastType %0.2
  4706. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4707. val %2.5 = Force! %2.3, e2.4
  4708. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4709. val %2.7 = Force %2.6, e2.4
  4710. void StVarSuper seed, %2.7, e0.0
  4711. val^? %2.9 = LdVar seed, e0.0
  4712. val %2.10 = Force %2.9, e0.0
  4713. void Return %2.10
  4714. BB1
  4715. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4716. void Deopt %1.0
  4717. Prom 0:
  4718. BB0
  4719. env e0.0 = LdFunctionEnv
  4720. val^? %0.1 = LdVar seed, e0.0
  4721. val %0.2 = Force %0.1, e0.0
  4722. real$' %0.3 = LdConst [1] 1309
  4723. goto BB1
  4724. BB1
  4725. val %1.0 = Mul %0.2, %0.3, e0.0
  4726. real$' %1.1 = LdConst [1] 13849
  4727. goto BB2
  4728. BB2
  4729. val %2.0 = Add %1.0, %1.1, e0.0
  4730. void Return %2.0
  4731. ├────── Inline closures: == 788
  4732. nextRandom[0x7f9244606500]
  4733. BB0
  4734. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4735. cls %0.1 = LdFun bitwAnd, e0.0
  4736. prom %0.2 = MkArg missing, Prom(0), e0.0
  4737. real$' %0.3 = LdConst [1] 65535
  4738. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4739. BB2
  4740. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4741. t %2.1 = Identical %0.1, %2.0
  4742. void Assume %2.1, %0.4
  4743. val^? %2.3 = CastType %0.2
  4744. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4745. val %2.5 = Force! %2.3, e2.4
  4746. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4747. val %2.7 = Force %2.6, e2.4
  4748. void StVarSuper seed, %2.7, e0.0
  4749. val^? %2.9 = LdVar seed, e0.0
  4750. val %2.10 = Force %2.9, e0.0
  4751. void Return %2.10
  4752. BB1
  4753. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4754. void Deopt %1.0
  4755. Prom 0:
  4756. BB0
  4757. env e0.0 = LdFunctionEnv
  4758. val^? %0.1 = LdVar seed, e0.0
  4759. val %0.2 = Force %0.1, e0.0
  4760. real$' %0.3 = LdConst [1] 1309
  4761. goto BB1
  4762. BB1
  4763. val %1.0 = Mul %0.2, %0.3, e0.0
  4764. real$' %1.1 = LdConst [1] 13849
  4765. goto BB2
  4766. BB2
  4767. val %2.0 = Add %1.0, %1.1, e0.0
  4768. void Return %2.0
  4769. ├────── Speculate on values to elide environments: == 795
  4770. nextRandom[0x7f9244606500]
  4771. BB0
  4772. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4773. cls %0.1 = LdFun bitwAnd, e0.0
  4774. prom %0.2 = MkArg missing, Prom(0), e0.0
  4775. real$' %0.3 = LdConst [1] 65535
  4776. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4777. BB2
  4778. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4779. t %2.1 = Identical %0.1, %2.0
  4780. void Assume %2.1, %0.4
  4781. val^? %2.3 = CastType %0.2
  4782. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4783. val %2.5 = Force! %2.3, e2.4
  4784. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4785. val %2.7 = Force %2.6, e2.4
  4786. void StVarSuper seed, %2.7, e0.0
  4787. val^? %2.9 = LdVar seed, e0.0
  4788. val %2.10 = Force %2.9, e0.0
  4789. void Return %2.10
  4790. BB1
  4791. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4792. void Deopt %1.0
  4793. Prom 0:
  4794. BB0
  4795. env e0.0 = LdFunctionEnv
  4796. val^? %0.1 = LdVar seed, e0.0
  4797. val %0.2 = Force %0.1, e0.0
  4798. real$' %0.3 = LdConst [1] 1309
  4799. goto BB1
  4800. BB1
  4801. val %1.0 = Mul %0.2, %0.3, e0.0
  4802. real$' %1.1 = LdConst [1] 13849
  4803. goto BB2
  4804. BB2
  4805. val %2.0 = Add %1.0, %1.1, e0.0
  4806. void Return %2.0
  4807. ├────── Cleanup unused checkpoints: == 802
  4808. nextRandom[0x7f9244606500]
  4809. BB0
  4810. env e0.0 = MkEnv parent=<environment: 0x7f9246b48c88>
  4811. cls %0.1 = LdFun bitwAnd, e0.0
  4812. prom %0.2 = MkArg missing, Prom(0), e0.0
  4813. real$' %0.3 = LdConst [1] 65535
  4814. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  4815. BB2
  4816. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  4817. t %2.1 = Identical %0.1, %2.0
  4818. void Assume %2.1, %0.4
  4819. val^? %2.3 = CastType %0.2
  4820. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  4821. val %2.5 = Force! %2.3, e2.4
  4822. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  4823. val %2.7 = Force %2.6, e2.4
  4824. void StVarSuper seed, %2.7, e0.0
  4825. val^? %2.9 = LdVar seed, e0.0
  4826. val %2.10 = Force %2.9, e0.0
  4827. void Return %2.10
  4828. BB1
  4829. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  4830. void Deopt %1.0
  4831. Prom 0:
  4832. BB0
  4833. env e0.0 = LdFunctionEnv
  4834. val^? %0.1 = LdVar seed, e0.0
  4835. val %0.2 = Force %0.1, e0.0
  4836. real$' %0.3 = LdConst [1] 1309
  4837. goto BB1
  4838. BB1
  4839. val %1.0 = Mul %0.2, %0.3, e0.0
  4840. real$' %1.1 = LdConst [1] 13849
  4841. goto BB2
  4842. BB2
  4843. val %2.0 = Add %1.0, %1.1, e0.0
  4844. void Return %2.0
  4845. │ nextRandom[0x7f9244606500] │
  4846. └──────────────────────────────────────────────────────────────────────────────┘
  4847.  
  4848. ┌──────────────────────────────────────────────────────────────────────────────┐
  4849. │ buildTreeDepth[0x7f92446010b0] │
  4850. ├────── Inline Promises: == 0
  4851. buildTreeDepth[0x7f92446010b0]
  4852. BB0
  4853. val^ %0.0 = LdArg 1
  4854. val^ %0.1 = LdArg 0
  4855. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=<environment: 0x7f9246b48c88>
  4856. val^? %0.3 = LdVar depth, e0.2
  4857. val %0.4 = Force %0.3, e0.2
  4858. real$' %0.5 = LdConst [1] 1
  4859. cp %0.6 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  4860. BB1
  4861. lgl %1.0 = Eq %0.4, %0.5, e0.2
  4862. lgl %1.1 = AsLogical %1.0
  4863. t %1.2 = AsTest %1.1
  4864. void Branch %1.2 -> BB3 (if true) | BB4 (if false)
  4865. BB2
  4866. fs %2.0 = FrameState 0x7f924457f3d0+58: [%0.4, %0.5], env=e0.2
  4867. void Deopt %2.0
  4868. BB3
  4869. cls %3.0 = LdFun c, e0.2
  4870. prom %3.1 = MkArg missing, Prom(4), e0.2
  4871. fs %3.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  4872. val^ %3.3 = Call %3.0(%3.1) %3.2, e0.2
  4873. goto BB18
  4874. BB4
  4875. cls %4.0 = LdFun vector, e0.2
  4876. str$' %4.1 = LdConst [1] "list"
  4877. prom %4.2 = MkArg %4.1, Prom(0), e0.2
  4878. real$' %4.3 = LdConst [1] 4
  4879. prom %4.4 = MkArg %4.3, Prom(1), e0.2
  4880. cls' %4.5 = LdConst function (mode = "logical", length = ...
  4881. t %4.6 = Identical %4.0, %4.5
  4882. cp %4.7 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  4883. BB18
  4884. val^ %18.0 = Phi %12.2:BB12, %3.3:BB3
  4885. val %18.1 = Force %18.0, e0.2
  4886. void Return %18.1
  4887. BB5
  4888. void Assume %4.6, %4.7
  4889. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  4890. val^ %5.2 = StaticCall vector[0x7f92445590f0](%4.2, %4.4) %5.1, e0.2
  4891. val^ %5.3 = SetShared %5.2
  4892. val %5.4 = Force %5.3, e0.2
  4893. void StVar array, %5.4, e0.2
  4894. real$' %5.6 = LdConst [1] 1
  4895. real$' %5.7 = LdConst [1] 4
  4896. cp %5.8 = Checkpoint -> BB7 (by default) | BB8 (if coming from expect)
  4897. BB6
  4898. fs %6.0 = FrameState 0x7f924457f3d0+113: [%4.0], env=e0.2
  4899. void Deopt %6.0
  4900. BB7
  4901. val %7.0 = Colon %5.6, %5.7, e0.2
  4902. val %7.1 = SetShared %7.0
  4903. int$' %7.2 = ForSeqSize %7.1
  4904. int$' %7.3 = LdConst [1] 0
  4905. goto BB9
  4906. BB8
  4907. fs %8.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  4908. void Deopt %8.0
  4909. BB9
  4910. int$' %9.0 = Phi %7.3:BB7, %9.2:BB16
  4911. int$' %9.1 = Inc %9.0
  4912. int$' %9.2 = EnsureNamed %9.1
  4913. cp %9.3 = Checkpoint -> BB10 (by default) | BB11 (if coming from expect)
  4914. BB10
  4915. lgl %10.0 = Lt %7.2, %9.2, e0.2
  4916. t %10.1 = AsTest %10.0
  4917. void Branch %10.1 -> BB12 (if true) | BB13 (if false)
  4918. BB11
  4919. fs %11.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %9.2, %7.2, %9.2], env=e0.2
  4920. void Deopt %11.0
  4921. BB12
  4922. nil' %12.0 = LdConst NULL
  4923. val^? %12.1 = LdVar array, e0.2
  4924. val %12.2 = Force %12.1, e0.2
  4925. goto BB18
  4926. BB13
  4927. cp %13.0 = Checkpoint -> BB14 (by default) | BB15 (if coming from expect)
  4928. BB14
  4929. val$ %14.0 = Extract2_1D %7.1, %9.2, e0.2
  4930. void StVar i, %14.0, e0.2
  4931. cls %14.2 = LdFun buildTreeDepth, e0.2
  4932. prom %14.3 = MkArg missing, Prom(2), e0.2
  4933. prom %14.4 = MkArg missing, Prom(3), e0.2
  4934. cls' %14.5 = LdConst function (depth, random) { if (d...
  4935. t %14.6 = Identical %14.2, %14.5
  4936. cp %14.7 = Checkpoint -> BB16 (by default) | BB17 (if coming from expect)
  4937. BB15
  4938. fs %15.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %9.2, %7.1, %9.2], env=e0.2
  4939. void Deopt %15.0
  4940. BB16
  4941. void Assume %14.6, %14.7
  4942. fs %16.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %9.2], env=e0.2
  4943. val^ %16.2 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.1, e0.2
  4944. val^ %16.3 = EnsureNamed %16.2
  4945. val^? %16.4 = LdVar array, e0.2
  4946. val %16.5 = Force %16.4, e0.2
  4947. val^? %16.6 = LdVar i, e0.2
  4948. val %16.7 = Force %16.6, e0.2
  4949. val %16.8 = Force %16.3, e0.2
  4950. val %16.9 = Subassign2_1D %16.8, %16.5, %16.7, e0.2
  4951. void StVar array, %16.9, e0.2
  4952. goto BB9
  4953. BB17
  4954. fs %17.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %9.2, %14.2], env=e0.2
  4955. void Deopt %17.0
  4956. Prom 0:
  4957. BB0
  4958. env e0.0 = LdFunctionEnv
  4959. str$' %0.1 = LdConst [1] "list"
  4960. void Return %0.1
  4961. Prom 1:
  4962. BB0
  4963. env e0.0 = LdFunctionEnv
  4964. real$' %0.1 = LdConst [1] 4
  4965. void Return %0.1
  4966. Prom 2:
  4967. BB0
  4968. env e0.0 = LdFunctionEnv
  4969. val^? %0.1 = LdVar depth, e0.0
  4970. val %0.2 = Force %0.1, e0.0
  4971. real$' %0.3 = LdConst [1] 1
  4972. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  4973. BB1
  4974. val %1.0 = Sub %0.2, %0.3, e0.0
  4975. void Return %1.0
  4976. BB2
  4977. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  4978. void Deopt %2.0
  4979. Prom 3:
  4980. BB0
  4981. env e0.0 = LdFunctionEnv
  4982. val^? %0.1 = LdVar random, e0.0
  4983. val %0.2 = Force %0.1, e0.0
  4984. void Return %0.2
  4985. Prom 4:
  4986. BB0
  4987. env e0.0 = LdFunctionEnv
  4988. cls %0.1 = LdFun nextRandom, e0.0
  4989. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  4990. t %0.3 = Identical %0.1, %0.2
  4991. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  4992. BB1
  4993. void Assume %0.3, %0.4
  4994. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  4995. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  4996. real$' %1.3 = LdConst [1] 10
  4997. cp %1.4 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  4998. BB2
  4999. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  5000. void Deopt %2.0
  5001. BB3
  5002. val %3.0 = Force %1.2, e0.0
  5003. val %3.1 = Mod %3.0, %1.3, e0.0
  5004. real$' %3.2 = LdConst [1] 1
  5005. cp %3.3 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  5006. BB4
  5007. fs %4.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  5008. void Deopt %4.0
  5009. BB5
  5010. val %5.0 = Add %3.1, %3.2, e0.0
  5011. void Return %5.0
  5012. BB6
  5013. fs %6.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  5014. void Deopt %6.0
  5015. ├────── Scope resolution: == 7
  5016. buildTreeDepth[0x7f92446010b0]
  5017. BB0
  5018. val^ %0.0 = LdArg 1
  5019. val^ %0.1 = LdArg 0
  5020. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=<environment: 0x7f9246b48c88>
  5021. val %0.3 = Force %0.1, e0.2
  5022. real$' %0.4 = LdConst [1] 1
  5023. cp %0.5 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  5024. BB1
  5025. lgl %1.0 = Eq %0.3, %0.4, e0.2
  5026. lgl %1.1 = AsLogical %1.0
  5027. t %1.2 = AsTest %1.1
  5028. void Branch %1.2 -> BB3 (if true) | BB4 (if false)
  5029. BB2
  5030. fs %2.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  5031. void Deopt %2.0
  5032. BB3
  5033. cls %3.0 = LdFun c, e0.2
  5034. prom %3.1 = MkArg missing, Prom(4), e0.2
  5035. fs %3.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  5036. val^ %3.3 = Call %3.0(%3.1) %3.2, e0.2
  5037. goto BB18
  5038. BB4
  5039. cls %4.0 = LdFun vector, e0.2
  5040. str$' %4.1 = LdConst [1] "list"
  5041. prom %4.2 = MkArg %4.1, Prom(0), e0.2
  5042. real$' %4.3 = LdConst [1] 4
  5043. prom %4.4 = MkArg %4.3, Prom(1), e0.2
  5044. cls' %4.5 = LdConst function (mode = "logical", length = ...
  5045. t %4.6 = Identical %4.0, %4.5
  5046. cp %4.7 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  5047. BB18
  5048. val^ %18.0 = Phi %9.0:BB12, %3.3:BB3
  5049. val %18.1 = Force %18.0, e0.2
  5050. void Return %18.1
  5051. BB5
  5052. void Assume %4.6, %4.7
  5053. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  5054. val^ %5.2 = StaticCall vector[0x7f92445590f0](%4.2, %4.4) %5.1, e0.2
  5055. val^ %5.3 = SetShared %5.2
  5056. val %5.4 = Force %5.3, e0.2
  5057. void StVar array, %5.4, e0.2
  5058. real$' %5.6 = LdConst [1] 1
  5059. real$' %5.7 = LdConst [1] 4
  5060. cp %5.8 = Checkpoint -> BB7 (by default) | BB8 (if coming from expect)
  5061. BB6
  5062. fs %6.0 = FrameState 0x7f924457f3d0+113: [%4.0], env=e0.2
  5063. void Deopt %6.0
  5064. BB7
  5065. val %7.0 = Colon %5.6, %5.7, e0.2
  5066. val %7.1 = SetShared %7.0
  5067. int$' %7.2 = ForSeqSize %7.1
  5068. int$' %7.3 = LdConst [1] 0
  5069. goto BB9
  5070. BB8
  5071. fs %8.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  5072. void Deopt %8.0
  5073. BB9
  5074. val %9.0 = Phi %5.4:BB5, %16.9:BB16
  5075. int$' %9.1 = Phi %7.3:BB7, %9.3:BB16
  5076. int$' %9.2 = Inc %9.1
  5077. int$' %9.3 = EnsureNamed %9.2
  5078. cp %9.4 = Checkpoint -> BB10 (by default) | BB11 (if coming from expect)
  5079. BB10
  5080. lgl %10.0 = Lt %7.2, %9.3, e0.2
  5081. t %10.1 = AsTest %10.0
  5082. void Branch %10.1 -> BB12 (if true) | BB13 (if false)
  5083. BB11
  5084. fs %11.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %9.3, %7.2, %9.3], env=e0.2
  5085. void Deopt %11.0
  5086. BB12
  5087. nil' %12.0 = LdConst NULL
  5088. goto BB18
  5089. BB13
  5090. cp %13.0 = Checkpoint -> BB14 (by default) | BB15 (if coming from expect)
  5091. BB14
  5092. val$ %14.0 = Extract2_1D %7.1, %9.3, e0.2
  5093. void StVar i, %14.0, e0.2
  5094. cls %14.2 = LdFun buildTreeDepth, e0.2
  5095. prom %14.3 = MkArg missing, Prom(2), e0.2
  5096. prom %14.4 = MkArg missing, Prom(3), e0.2
  5097. cls' %14.5 = LdConst function (depth, random) { if (d...
  5098. t %14.6 = Identical %14.2, %14.5
  5099. cp %14.7 = Checkpoint -> BB16 (by default) | BB17 (if coming from expect)
  5100. BB15
  5101. fs %15.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %9.3, %7.1, %9.3], env=e0.2
  5102. void Deopt %15.0
  5103. BB16
  5104. void Assume %14.6, %14.7
  5105. fs %16.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %9.3], env=e0.2
  5106. val^ %16.2 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.1, e0.2
  5107. val^ %16.3 = EnsureNamed %16.2
  5108. val^? %16.4 = LdVar array, e0.2
  5109. val %16.5 = Force %16.4, e0.2
  5110. val^? %16.6 = LdVar i, e0.2
  5111. val %16.7 = Force %16.6, e0.2
  5112. val %16.8 = Force %16.3, e0.2
  5113. val %16.9 = Subassign2_1D %16.8, %16.5, %16.7, e0.2
  5114. void StVar array, %16.9, e0.2
  5115. goto BB9
  5116. BB17
  5117. fs %17.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %9.3, %14.2], env=e0.2
  5118. void Deopt %17.0
  5119. Prom 0:
  5120. BB0
  5121. env e0.0 = LdFunctionEnv
  5122. str$' %0.1 = LdConst [1] "list"
  5123. void Return %0.1
  5124. Prom 1:
  5125. BB0
  5126. env e0.0 = LdFunctionEnv
  5127. real$' %0.1 = LdConst [1] 4
  5128. void Return %0.1
  5129. Prom 2:
  5130. BB0
  5131. env e0.0 = LdFunctionEnv
  5132. val^? %0.1 = LdVar depth, e0.0
  5133. val %0.2 = Force %0.1, e0.0
  5134. real$' %0.3 = LdConst [1] 1
  5135. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  5136. BB1
  5137. val %1.0 = Sub %0.2, %0.3, e0.0
  5138. void Return %1.0
  5139. BB2
  5140. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  5141. void Deopt %2.0
  5142. Prom 3:
  5143. BB0
  5144. env e0.0 = LdFunctionEnv
  5145. val^? %0.1 = LdVar random, e0.0
  5146. val %0.2 = Force %0.1, e0.0
  5147. void Return %0.2
  5148. Prom 4:
  5149. BB0
  5150. env e0.0 = LdFunctionEnv
  5151. cls %0.1 = LdFun nextRandom, e0.0
  5152. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  5153. t %0.3 = Identical %0.1, %0.2
  5154. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  5155. BB1
  5156. void Assume %0.3, %0.4
  5157. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  5158. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  5159. real$' %1.3 = LdConst [1] 10
  5160. cp %1.4 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  5161. BB2
  5162. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  5163. void Deopt %2.0
  5164. BB3
  5165. val %3.0 = Force %1.2, e0.0
  5166. val %3.1 = Mod %3.0, %1.3, e0.0
  5167. real$' %3.2 = LdConst [1] 1
  5168. cp %3.3 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  5169. BB4
  5170. fs %4.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  5171. void Deopt %4.0
  5172. BB5
  5173. val %5.0 = Add %3.1, %3.2, e0.0
  5174. void Return %5.0
  5175. BB6
  5176. fs %6.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  5177. void Deopt %6.0
  5178. ├────── Constant folding: == 14
  5179. buildTreeDepth[0x7f92446010b0]
  5180. BB0
  5181. val^ %0.0 = LdArg 1
  5182. val^ %0.1 = LdArg 0
  5183. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=<environment: 0x7f9246b48c88>
  5184. val %0.3 = Force %0.1, e0.2
  5185. real$' %0.4 = LdConst [1] 1
  5186. cp %0.5 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  5187. BB1
  5188. lgl %1.0 = Eq %0.3, %0.4, e0.2
  5189. lgl %1.1 = AsLogical %1.0
  5190. t %1.2 = AsTest %1.1
  5191. void Branch %1.2 -> BB3 (if true) | BB4 (if false)
  5192. BB2
  5193. fs %2.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  5194. void Deopt %2.0
  5195. BB3
  5196. cls %3.0 = LdFun c, e0.2
  5197. prom %3.1 = MkArg missing, Prom(4), e0.2
  5198. fs %3.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  5199. val^ %3.3 = Call %3.0(%3.1) %3.2, e0.2
  5200. goto BB18
  5201. BB4
  5202. cls %4.0 = LdFun vector, e0.2
  5203. str$' %4.1 = LdConst [1] "list"
  5204. prom %4.2 = MkArg %4.1, Prom(0), e0.2
  5205. real$' %4.3 = LdConst [1] 4
  5206. prom %4.4 = MkArg %4.3, Prom(1), e0.2
  5207. cls' %4.5 = LdConst function (mode = "logical", length = ...
  5208. t %4.6 = Identical %4.0, %4.5
  5209. cp %4.7 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  5210. BB18
  5211. val^ %18.0 = Phi %9.0:BB12, %3.3:BB3
  5212. val %18.1 = Force %18.0, e0.2
  5213. void Return %18.1
  5214. BB5
  5215. void Assume %4.6, %4.7
  5216. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  5217. val^ %5.2 = StaticCall vector[0x7f92445590f0](%4.2, %4.4) %5.1, e0.2
  5218. val^ %5.3 = SetShared %5.2
  5219. val %5.4 = Force %5.3, e0.2
  5220. void StVar array, %5.4, e0.2
  5221. real$' %5.6 = LdConst [1] 1
  5222. real$' %5.7 = LdConst [1] 4
  5223. cp %5.8 = Checkpoint -> BB7 (by default) | BB8 (if coming from expect)
  5224. BB6
  5225. fs %6.0 = FrameState 0x7f924457f3d0+113: [%4.0], env=e0.2
  5226. void Deopt %6.0
  5227. BB7
  5228. val %7.0 = Colon %5.6, %5.7, e0.2
  5229. val %7.1 = SetShared %7.0
  5230. int$' %7.2 = ForSeqSize %7.1
  5231. int$' %7.3 = LdConst [1] 0
  5232. goto BB9
  5233. BB8
  5234. fs %8.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  5235. void Deopt %8.0
  5236. BB9
  5237. val %9.0 = Phi %5.4:BB5, %16.9:BB16
  5238. int$' %9.1 = Phi %7.3:BB7, %9.3:BB16
  5239. int$' %9.2 = Inc %9.1
  5240. int$' %9.3 = EnsureNamed %9.2
  5241. cp %9.4 = Checkpoint -> BB10 (by default) | BB11 (if coming from expect)
  5242. BB10
  5243. lgl %10.0 = Lt %7.2, %9.3, e0.2
  5244. t %10.1 = AsTest %10.0
  5245. void Branch %10.1 -> BB12 (if true) | BB13 (if false)
  5246. BB11
  5247. fs %11.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %9.3, %7.2, %9.3], env=e0.2
  5248. void Deopt %11.0
  5249. BB12
  5250. nil' %12.0 = LdConst NULL
  5251. goto BB18
  5252. BB13
  5253. cp %13.0 = Checkpoint -> BB14 (by default) | BB15 (if coming from expect)
  5254. BB14
  5255. val$ %14.0 = Extract2_1D %7.1, %9.3, e0.2
  5256. void StVar i, %14.0, e0.2
  5257. cls %14.2 = LdFun buildTreeDepth, e0.2
  5258. prom %14.3 = MkArg missing, Prom(2), e0.2
  5259. prom %14.4 = MkArg missing, Prom(3), e0.2
  5260. cls' %14.5 = LdConst function (depth, random) { if (d...
  5261. t %14.6 = Identical %14.2, %14.5
  5262. cp %14.7 = Checkpoint -> BB16 (by default) | BB17 (if coming from expect)
  5263. BB15
  5264. fs %15.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %9.3, %7.1, %9.3], env=e0.2
  5265. void Deopt %15.0
  5266. BB16
  5267. void Assume %14.6, %14.7
  5268. fs %16.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %9.3], env=e0.2
  5269. val^ %16.2 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.1, e0.2
  5270. val^ %16.3 = EnsureNamed %16.2
  5271. val^? %16.4 = LdVar array, e0.2
  5272. val %16.5 = Force %16.4, e0.2
  5273. val^? %16.6 = LdVar i, e0.2
  5274. val %16.7 = Force %16.6, e0.2
  5275. val %16.8 = Force %16.3, e0.2
  5276. val %16.9 = Subassign2_1D %16.8, %16.5, %16.7, e0.2
  5277. void StVar array, %16.9, e0.2
  5278. goto BB9
  5279. BB17
  5280. fs %17.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %9.3, %14.2], env=e0.2
  5281. void Deopt %17.0
  5282. Prom 0:
  5283. BB0
  5284. env e0.0 = LdFunctionEnv
  5285. str$' %0.1 = LdConst [1] "list"
  5286. void Return %0.1
  5287. Prom 1:
  5288. BB0
  5289. env e0.0 = LdFunctionEnv
  5290. real$' %0.1 = LdConst [1] 4
  5291. void Return %0.1
  5292. Prom 2:
  5293. BB0
  5294. env e0.0 = LdFunctionEnv
  5295. val^? %0.1 = LdVar depth, e0.0
  5296. val %0.2 = Force %0.1, e0.0
  5297. real$' %0.3 = LdConst [1] 1
  5298. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  5299. BB1
  5300. val %1.0 = Sub %0.2, %0.3, e0.0
  5301. void Return %1.0
  5302. BB2
  5303. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  5304. void Deopt %2.0
  5305. Prom 3:
  5306. BB0
  5307. env e0.0 = LdFunctionEnv
  5308. val^? %0.1 = LdVar random, e0.0
  5309. val %0.2 = Force %0.1, e0.0
  5310. void Return %0.2
  5311. Prom 4:
  5312. BB0
  5313. env e0.0 = LdFunctionEnv
  5314. cls %0.1 = LdFun nextRandom, e0.0
  5315. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  5316. t %0.3 = Identical %0.1, %0.2
  5317. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  5318. BB1
  5319. void Assume %0.3, %0.4
  5320. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  5321. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  5322. real$' %1.3 = LdConst [1] 10
  5323. cp %1.4 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  5324. BB2
  5325. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  5326. void Deopt %2.0
  5327. BB3
  5328. val %3.0 = Force %1.2, e0.0
  5329. val %3.1 = Mod %3.0, %1.3, e0.0
  5330. real$' %3.2 = LdConst [1] 1
  5331. cp %3.3 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  5332. BB4
  5333. fs %4.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  5334. void Deopt %4.0
  5335. BB5
  5336. val %5.0 = Add %3.1, %3.2, e0.0
  5337. void Return %5.0
  5338. BB6
  5339. fs %6.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  5340. void Deopt %6.0
  5341. ├────── Cleanup redundant operations: == 21
  5342. buildTreeDepth[0x7f92446010b0]
  5343. BB0
  5344. val^ %0.0 = LdArg 1
  5345. val^ %0.1 = LdArg 0
  5346. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=<environment: 0x7f9246b48c88>
  5347. val %0.3 = Force %0.1, e0.2
  5348. real$' %0.4 = LdConst [1] 1
  5349. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5350. BB2
  5351. lgl %2.0 = Eq %0.3, %0.4, e0.2
  5352. lgl %2.1 = AsLogical %2.0
  5353. t %2.2 = AsTest %2.1
  5354. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  5355. BB1
  5356. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  5357. void Deopt %1.0
  5358. BB17
  5359. cls %17.0 = LdFun c, e0.2
  5360. prom %17.1 = MkArg missing, Prom(4), e0.2
  5361. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  5362. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  5363. goto BB18
  5364. BB3
  5365. cls %3.0 = LdFun vector, e0.2
  5366. str$' %3.1 = LdConst [1] "list"
  5367. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  5368. real$' %3.3 = LdConst [1] 4
  5369. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  5370. cls' %3.5 = LdConst function (mode = "logical", length = ...
  5371. t %3.6 = Identical %3.0, %3.5
  5372. cp %3.7 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  5373. BB18
  5374. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  5375. val %18.1 = Force %18.0, e0.2
  5376. void Return %18.1
  5377. BB5
  5378. void Assume %3.6, %3.7
  5379. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  5380. val^ %5.2 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.1, e0.2
  5381. val^ %5.3 = SetShared %5.2
  5382. val %5.4 = Force %5.3, e0.2
  5383. void StVar array, %5.4, e0.2
  5384. real$' %5.6 = LdConst [1] 1
  5385. real$' %5.7 = LdConst [1] 4
  5386. cp %5.8 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  5387. BB4
  5388. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  5389. void Deopt %4.0
  5390. BB7
  5391. val %7.0 = Colon %5.6, %5.7, e0.2
  5392. val %7.1 = SetShared %7.0
  5393. int$' %7.2 = ForSeqSize %7.1
  5394. int$' %7.3 = LdConst [1] 0
  5395. goto BB8
  5396. BB6
  5397. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  5398. void Deopt %6.0
  5399. BB8
  5400. val %8.0 = Phi %5.4:BB5, %15.9:BB15
  5401. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  5402. int$' %8.2 = Inc %8.1
  5403. int$' %8.3 = EnsureNamed %8.2
  5404. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  5405. BB10
  5406. lgl %10.0 = Lt %7.2, %8.3, e0.2
  5407. t %10.1 = AsTest %10.0
  5408. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  5409. BB9
  5410. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  5411. void Deopt %9.0
  5412. BB16
  5413. goto BB18
  5414. BB11
  5415. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  5416. BB13
  5417. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  5418. void StVar i, %13.0, e0.2
  5419. cls %13.2 = LdFun buildTreeDepth, e0.2
  5420. prom %13.3 = MkArg missing, Prom(2), e0.2
  5421. prom %13.4 = MkArg missing, Prom(3), e0.2
  5422. cls' %13.5 = LdConst function (depth, random) { if (d...
  5423. t %13.6 = Identical %13.2, %13.5
  5424. cp %13.7 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  5425. BB12
  5426. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  5427. void Deopt %12.0
  5428. BB15
  5429. void Assume %13.6, %13.7
  5430. fs %15.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  5431. val^ %15.2 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.1, e0.2
  5432. val^ %15.3 = EnsureNamed %15.2
  5433. val^? %15.4 = LdVar array, e0.2
  5434. val %15.5 = Force %15.4, e0.2
  5435. val^? %15.6 = LdVar i, e0.2
  5436. val %15.7 = Force %15.6, e0.2
  5437. val %15.8 = Force %15.3, e0.2
  5438. val %15.9 = Subassign2_1D %15.8, %15.5, %15.7, e0.2
  5439. void StVar array, %15.9, e0.2
  5440. goto BB8
  5441. BB14
  5442. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  5443. void Deopt %14.0
  5444. Prom 0:
  5445. BB0
  5446. env e0.0 = LdFunctionEnv
  5447. str$' %0.1 = LdConst [1] "list"
  5448. void Return %0.1
  5449. Prom 1:
  5450. BB0
  5451. env e0.0 = LdFunctionEnv
  5452. real$' %0.1 = LdConst [1] 4
  5453. void Return %0.1
  5454. Prom 2:
  5455. BB0
  5456. env e0.0 = LdFunctionEnv
  5457. val^? %0.1 = LdVar depth, e0.0
  5458. val %0.2 = Force %0.1, e0.0
  5459. real$' %0.3 = LdConst [1] 1
  5460. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5461. BB2
  5462. val %2.0 = Sub %0.2, %0.3, e0.0
  5463. void Return %2.0
  5464. BB1
  5465. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  5466. void Deopt %1.0
  5467. Prom 3:
  5468. BB0
  5469. env e0.0 = LdFunctionEnv
  5470. val^? %0.1 = LdVar random, e0.0
  5471. val %0.2 = Force %0.1, e0.0
  5472. void Return %0.2
  5473. Prom 4:
  5474. BB0
  5475. env e0.0 = LdFunctionEnv
  5476. cls %0.1 = LdFun nextRandom, e0.0
  5477. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  5478. t %0.3 = Identical %0.1, %0.2
  5479. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5480. BB2
  5481. void Assume %0.3, %0.4
  5482. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  5483. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  5484. real$' %2.3 = LdConst [1] 10
  5485. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  5486. BB1
  5487. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  5488. void Deopt %1.0
  5489. BB4
  5490. val %4.0 = Force %2.2, e0.0
  5491. val %4.1 = Mod %4.0, %2.3, e0.0
  5492. real$' %4.2 = LdConst [1] 1
  5493. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  5494. BB3
  5495. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  5496. void Deopt %3.0
  5497. BB6
  5498. val %6.0 = Add %4.1, %4.2, e0.0
  5499. void Return %6.0
  5500. BB5
  5501. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  5502. void Deopt %5.0
  5503. ├────── Delay instructions: == 28
  5504. buildTreeDepth[0x7f92446010b0]
  5505. BB0
  5506. val^ %0.0 = LdArg 0
  5507. val^ %0.1 = LdArg 1
  5508. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  5509. val %0.3 = Force %0.0, e0.2
  5510. real$' %0.4 = LdConst [1] 1
  5511. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5512. BB2
  5513. lgl %2.0 = Eq %0.3, %0.4, e0.2
  5514. lgl %2.1 = AsLogical %2.0
  5515. t %2.2 = AsTest %2.1
  5516. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  5517. BB1
  5518. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  5519. void Deopt %1.0
  5520. BB17
  5521. cls %17.0 = LdFun c, e0.2
  5522. prom %17.1 = MkArg missing, Prom(4), e0.2
  5523. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  5524. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  5525. goto BB18
  5526. BB3
  5527. cls %3.0 = LdFun vector, e0.2
  5528. str$' %3.1 = LdConst [1] "list"
  5529. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  5530. real$' %3.3 = LdConst [1] 4
  5531. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  5532. cls' %3.5 = LdConst function (mode = "logical", length = ...
  5533. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  5534. BB18
  5535. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  5536. val %18.1 = Force %18.0, e0.2
  5537. void Return %18.1
  5538. BB5
  5539. t %5.0 = Identical %3.0, %3.5
  5540. void Assume %5.0, %3.6
  5541. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  5542. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  5543. val^ %5.4 = SetShared %5.3
  5544. val %5.5 = Force %5.4, e0.2
  5545. void StVar array, %5.5, e0.2
  5546. real$' %5.7 = LdConst [1] 1
  5547. real$' %5.8 = LdConst [1] 4
  5548. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  5549. BB4
  5550. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  5551. void Deopt %4.0
  5552. BB7
  5553. val %7.0 = Colon %5.7, %5.8, e0.2
  5554. val %7.1 = SetShared %7.0
  5555. int$' %7.2 = ForSeqSize %7.1
  5556. int$' %7.3 = LdConst [1] 0
  5557. goto BB8
  5558. BB6
  5559. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  5560. void Deopt %6.0
  5561. BB8
  5562. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  5563. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  5564. int$' %8.2 = Inc %8.1
  5565. int$' %8.3 = EnsureNamed %8.2
  5566. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  5567. BB10
  5568. lgl %10.0 = Lt %7.2, %8.3, e0.2
  5569. t %10.1 = AsTest %10.0
  5570. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  5571. BB9
  5572. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  5573. void Deopt %9.0
  5574. BB16
  5575. goto BB18
  5576. BB11
  5577. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  5578. BB13
  5579. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  5580. void StVar i, %13.0, e0.2
  5581. cls %13.2 = LdFun buildTreeDepth, e0.2
  5582. prom %13.3 = MkArg missing, Prom(2), e0.2
  5583. prom %13.4 = MkArg missing, Prom(3), e0.2
  5584. cls' %13.5 = LdConst function (depth, random) { if (d...
  5585. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  5586. BB12
  5587. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  5588. void Deopt %12.0
  5589. BB15
  5590. t %15.0 = Identical %13.2, %13.5
  5591. void Assume %15.0, %13.6
  5592. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  5593. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  5594. val^? %15.4 = LdVar array, e0.2
  5595. val %15.5 = Force %15.4, e0.2
  5596. val^? %15.6 = LdVar i, e0.2
  5597. val %15.7 = Force %15.6, e0.2
  5598. val^ %15.8 = EnsureNamed %15.3
  5599. val %15.9 = Force %15.8, e0.2
  5600. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  5601. void StVar array, %15.10, e0.2
  5602. goto BB8
  5603. BB14
  5604. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  5605. void Deopt %14.0
  5606. Prom 0:
  5607. BB0
  5608. env e0.0 = LdFunctionEnv
  5609. str$' %0.1 = LdConst [1] "list"
  5610. void Return %0.1
  5611. Prom 1:
  5612. BB0
  5613. env e0.0 = LdFunctionEnv
  5614. real$' %0.1 = LdConst [1] 4
  5615. void Return %0.1
  5616. Prom 2:
  5617. BB0
  5618. env e0.0 = LdFunctionEnv
  5619. val^? %0.1 = LdVar depth, e0.0
  5620. val %0.2 = Force %0.1, e0.0
  5621. real$' %0.3 = LdConst [1] 1
  5622. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5623. BB2
  5624. val %2.0 = Sub %0.2, %0.3, e0.0
  5625. void Return %2.0
  5626. BB1
  5627. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  5628. void Deopt %1.0
  5629. Prom 3:
  5630. BB0
  5631. env e0.0 = LdFunctionEnv
  5632. val^? %0.1 = LdVar random, e0.0
  5633. val %0.2 = Force %0.1, e0.0
  5634. void Return %0.2
  5635. Prom 4:
  5636. BB0
  5637. env e0.0 = LdFunctionEnv
  5638. cls %0.1 = LdFun nextRandom, e0.0
  5639. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  5640. t %0.3 = Identical %0.1, %0.2
  5641. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5642. BB2
  5643. void Assume %0.3, %0.4
  5644. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  5645. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  5646. real$' %2.3 = LdConst [1] 10
  5647. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  5648. BB1
  5649. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  5650. void Deopt %1.0
  5651. BB4
  5652. val %4.0 = Force %2.2, e0.0
  5653. val %4.1 = Mod %4.0, %2.3, e0.0
  5654. real$' %4.2 = LdConst [1] 1
  5655. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  5656. BB3
  5657. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  5658. void Deopt %3.0
  5659. BB6
  5660. val %6.0 = Add %4.1, %4.2, e0.0
  5661. void Return %6.0
  5662. BB5
  5663. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  5664. void Deopt %5.0
  5665. ├────── Elide environments not needed: == 35
  5666. buildTreeDepth[0x7f92446010b0]
  5667. BB0
  5668. val^ %0.0 = LdArg 0
  5669. val^ %0.1 = LdArg 1
  5670. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  5671. val %0.3 = Force %0.0, e0.2
  5672. real$' %0.4 = LdConst [1] 1
  5673. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5674. BB2
  5675. lgl %2.0 = Eq %0.3, %0.4, e0.2
  5676. lgl %2.1 = AsLogical %2.0
  5677. t %2.2 = AsTest %2.1
  5678. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  5679. BB1
  5680. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  5681. void Deopt %1.0
  5682. BB17
  5683. cls %17.0 = LdFun c, e0.2
  5684. prom %17.1 = MkArg missing, Prom(4), e0.2
  5685. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  5686. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  5687. goto BB18
  5688. BB3
  5689. cls %3.0 = LdFun vector, e0.2
  5690. str$' %3.1 = LdConst [1] "list"
  5691. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  5692. real$' %3.3 = LdConst [1] 4
  5693. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  5694. cls' %3.5 = LdConst function (mode = "logical", length = ...
  5695. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  5696. BB18
  5697. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  5698. val %18.1 = Force %18.0, e0.2
  5699. void Return %18.1
  5700. BB5
  5701. t %5.0 = Identical %3.0, %3.5
  5702. void Assume %5.0, %3.6
  5703. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  5704. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  5705. val^ %5.4 = SetShared %5.3
  5706. val %5.5 = Force %5.4, e0.2
  5707. void StVar array, %5.5, e0.2
  5708. real$' %5.7 = LdConst [1] 1
  5709. real$' %5.8 = LdConst [1] 4
  5710. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  5711. BB4
  5712. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  5713. void Deopt %4.0
  5714. BB7
  5715. val' %7.0 = Colon %5.7, %5.8, elided
  5716. val %7.1 = SetShared %7.0
  5717. int$' %7.2 = ForSeqSize %7.1
  5718. int$' %7.3 = LdConst [1] 0
  5719. goto BB8
  5720. BB6
  5721. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  5722. void Deopt %6.0
  5723. BB8
  5724. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  5725. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  5726. int$' %8.2 = Inc %8.1
  5727. int$' %8.3 = EnsureNamed %8.2
  5728. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  5729. BB10
  5730. lgl' %10.0 = Lt %7.2, %8.3, elided
  5731. t %10.1 = AsTest %10.0
  5732. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  5733. BB9
  5734. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  5735. void Deopt %9.0
  5736. BB16
  5737. goto BB18
  5738. BB11
  5739. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  5740. BB13
  5741. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  5742. void StVar i, %13.0, e0.2
  5743. cls %13.2 = LdFun buildTreeDepth, e0.2
  5744. prom %13.3 = MkArg missing, Prom(2), e0.2
  5745. prom %13.4 = MkArg missing, Prom(3), e0.2
  5746. cls' %13.5 = LdConst function (depth, random) { if (d...
  5747. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  5748. BB12
  5749. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  5750. void Deopt %12.0
  5751. BB15
  5752. t %15.0 = Identical %13.2, %13.5
  5753. void Assume %15.0, %13.6
  5754. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  5755. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  5756. val^? %15.4 = LdVar array, e0.2
  5757. val %15.5 = Force %15.4, e0.2
  5758. val^? %15.6 = LdVar i, e0.2
  5759. val %15.7 = Force %15.6, e0.2
  5760. val^ %15.8 = EnsureNamed %15.3
  5761. val %15.9 = Force %15.8, e0.2
  5762. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  5763. void StVar array, %15.10, e0.2
  5764. goto BB8
  5765. BB14
  5766. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  5767. void Deopt %14.0
  5768. Prom 0:
  5769. BB0
  5770. env e0.0 = LdFunctionEnv
  5771. str$' %0.1 = LdConst [1] "list"
  5772. void Return %0.1
  5773. Prom 1:
  5774. BB0
  5775. env e0.0 = LdFunctionEnv
  5776. real$' %0.1 = LdConst [1] 4
  5777. void Return %0.1
  5778. Prom 2:
  5779. BB0
  5780. env e0.0 = LdFunctionEnv
  5781. val^? %0.1 = LdVar depth, e0.0
  5782. val %0.2 = Force %0.1, e0.0
  5783. real$' %0.3 = LdConst [1] 1
  5784. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5785. BB2
  5786. val %2.0 = Sub %0.2, %0.3, e0.0
  5787. void Return %2.0
  5788. BB1
  5789. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  5790. void Deopt %1.0
  5791. Prom 3:
  5792. BB0
  5793. env e0.0 = LdFunctionEnv
  5794. val^? %0.1 = LdVar random, e0.0
  5795. val %0.2 = Force %0.1, e0.0
  5796. void Return %0.2
  5797. Prom 4:
  5798. BB0
  5799. env e0.0 = LdFunctionEnv
  5800. cls %0.1 = LdFun nextRandom, e0.0
  5801. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  5802. t %0.3 = Identical %0.1, %0.2
  5803. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5804. BB2
  5805. void Assume %0.3, %0.4
  5806. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  5807. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  5808. real$' %2.3 = LdConst [1] 10
  5809. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  5810. BB1
  5811. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  5812. void Deopt %1.0
  5813. BB4
  5814. val %4.0 = Force %2.2, e0.0
  5815. val %4.1 = Mod %4.0, %2.3, e0.0
  5816. real$' %4.2 = LdConst [1] 1
  5817. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  5818. BB3
  5819. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  5820. void Deopt %3.0
  5821. BB6
  5822. val %6.0 = Add %4.1, %4.2, e0.0
  5823. void Return %6.0
  5824. BB5
  5825. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  5826. void Deopt %5.0
  5827. ├────── Move environment creation as far as possible: == 42
  5828. buildTreeDepth[0x7f92446010b0]
  5829. BB0
  5830. val^ %0.0 = LdArg 0
  5831. val^ %0.1 = LdArg 1
  5832. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  5833. val %0.3 = Force %0.0, e0.2
  5834. real$' %0.4 = LdConst [1] 1
  5835. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5836. BB2
  5837. lgl %2.0 = Eq %0.3, %0.4, e0.2
  5838. lgl %2.1 = AsLogical %2.0
  5839. t %2.2 = AsTest %2.1
  5840. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  5841. BB1
  5842. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  5843. void Deopt %1.0
  5844. BB17
  5845. cls %17.0 = LdFun c, e0.2
  5846. prom %17.1 = MkArg missing, Prom(4), e0.2
  5847. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  5848. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  5849. goto BB18
  5850. BB3
  5851. cls %3.0 = LdFun vector, e0.2
  5852. str$' %3.1 = LdConst [1] "list"
  5853. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  5854. real$' %3.3 = LdConst [1] 4
  5855. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  5856. cls' %3.5 = LdConst function (mode = "logical", length = ...
  5857. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  5858. BB18
  5859. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  5860. val %18.1 = Force %18.0, e0.2
  5861. void Return %18.1
  5862. BB5
  5863. t %5.0 = Identical %3.0, %3.5
  5864. void Assume %5.0, %3.6
  5865. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  5866. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  5867. val^ %5.4 = SetShared %5.3
  5868. val %5.5 = Force %5.4, e0.2
  5869. void StVar array, %5.5, e0.2
  5870. real$' %5.7 = LdConst [1] 1
  5871. real$' %5.8 = LdConst [1] 4
  5872. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  5873. BB4
  5874. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  5875. void Deopt %4.0
  5876. BB7
  5877. val' %7.0 = Colon %5.7, %5.8, elided
  5878. val %7.1 = SetShared %7.0
  5879. int$' %7.2 = ForSeqSize %7.1
  5880. int$' %7.3 = LdConst [1] 0
  5881. goto BB8
  5882. BB6
  5883. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  5884. void Deopt %6.0
  5885. BB8
  5886. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  5887. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  5888. int$' %8.2 = Inc %8.1
  5889. int$' %8.3 = EnsureNamed %8.2
  5890. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  5891. BB10
  5892. lgl' %10.0 = Lt %7.2, %8.3, elided
  5893. t %10.1 = AsTest %10.0
  5894. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  5895. BB9
  5896. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  5897. void Deopt %9.0
  5898. BB16
  5899. goto BB18
  5900. BB11
  5901. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  5902. BB13
  5903. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  5904. void StVar i, %13.0, e0.2
  5905. cls %13.2 = LdFun buildTreeDepth, e0.2
  5906. prom %13.3 = MkArg missing, Prom(2), e0.2
  5907. prom %13.4 = MkArg missing, Prom(3), e0.2
  5908. cls' %13.5 = LdConst function (depth, random) { if (d...
  5909. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  5910. BB12
  5911. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  5912. void Deopt %12.0
  5913. BB15
  5914. t %15.0 = Identical %13.2, %13.5
  5915. void Assume %15.0, %13.6
  5916. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  5917. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  5918. val^? %15.4 = LdVar array, e0.2
  5919. val %15.5 = Force %15.4, e0.2
  5920. val^? %15.6 = LdVar i, e0.2
  5921. val %15.7 = Force %15.6, e0.2
  5922. val^ %15.8 = EnsureNamed %15.3
  5923. val %15.9 = Force %15.8, e0.2
  5924. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  5925. void StVar array, %15.10, e0.2
  5926. goto BB8
  5927. BB14
  5928. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  5929. void Deopt %14.0
  5930. Prom 0:
  5931. BB0
  5932. env e0.0 = LdFunctionEnv
  5933. str$' %0.1 = LdConst [1] "list"
  5934. void Return %0.1
  5935. Prom 1:
  5936. BB0
  5937. env e0.0 = LdFunctionEnv
  5938. real$' %0.1 = LdConst [1] 4
  5939. void Return %0.1
  5940. Prom 2:
  5941. BB0
  5942. env e0.0 = LdFunctionEnv
  5943. val^? %0.1 = LdVar depth, e0.0
  5944. val %0.2 = Force %0.1, e0.0
  5945. real$' %0.3 = LdConst [1] 1
  5946. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5947. BB2
  5948. val %2.0 = Sub %0.2, %0.3, e0.0
  5949. void Return %2.0
  5950. BB1
  5951. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  5952. void Deopt %1.0
  5953. Prom 3:
  5954. BB0
  5955. env e0.0 = LdFunctionEnv
  5956. val^? %0.1 = LdVar random, e0.0
  5957. val %0.2 = Force %0.1, e0.0
  5958. void Return %0.2
  5959. Prom 4:
  5960. BB0
  5961. env e0.0 = LdFunctionEnv
  5962. cls %0.1 = LdFun nextRandom, e0.0
  5963. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  5964. t %0.3 = Identical %0.1, %0.2
  5965. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5966. BB2
  5967. void Assume %0.3, %0.4
  5968. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  5969. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  5970. real$' %2.3 = LdConst [1] 10
  5971. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  5972. BB1
  5973. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  5974. void Deopt %1.0
  5975. BB4
  5976. val %4.0 = Force %2.2, e0.0
  5977. val %4.1 = Mod %4.0, %2.3, e0.0
  5978. real$' %4.2 = LdConst [1] 1
  5979. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  5980. BB3
  5981. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  5982. void Deopt %3.0
  5983. BB6
  5984. val %6.0 = Add %4.1, %4.2, e0.0
  5985. void Return %6.0
  5986. BB5
  5987. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  5988. void Deopt %5.0
  5989. ├────── Cleanup redundant operations: == 49
  5990. buildTreeDepth[0x7f92446010b0]
  5991. BB0
  5992. val^ %0.0 = LdArg 0
  5993. val^ %0.1 = LdArg 1
  5994. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  5995. val %0.3 = Force %0.0, e0.2
  5996. real$' %0.4 = LdConst [1] 1
  5997. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  5998. BB2
  5999. lgl %2.0 = Eq %0.3, %0.4, e0.2
  6000. lgl %2.1 = AsLogical %2.0
  6001. t %2.2 = AsTest %2.1
  6002. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  6003. BB1
  6004. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  6005. void Deopt %1.0
  6006. BB17
  6007. cls %17.0 = LdFun c, e0.2
  6008. prom %17.1 = MkArg missing, Prom(4), e0.2
  6009. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  6010. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  6011. goto BB18
  6012. BB3
  6013. cls %3.0 = LdFun vector, e0.2
  6014. str$' %3.1 = LdConst [1] "list"
  6015. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  6016. real$' %3.3 = LdConst [1] 4
  6017. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  6018. cls' %3.5 = LdConst function (mode = "logical", length = ...
  6019. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  6020. BB18
  6021. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  6022. val %18.1 = Force %18.0, e0.2
  6023. void Return %18.1
  6024. BB5
  6025. t %5.0 = Identical %3.0, %3.5
  6026. void Assume %5.0, %3.6
  6027. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  6028. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  6029. val^ %5.4 = SetShared %5.3
  6030. val %5.5 = Force %5.4, e0.2
  6031. void StVar array, %5.5, e0.2
  6032. real$' %5.7 = LdConst [1] 1
  6033. real$' %5.8 = LdConst [1] 4
  6034. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  6035. BB4
  6036. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  6037. void Deopt %4.0
  6038. BB7
  6039. val' %7.0 = Colon %5.7, %5.8, elided
  6040. val' %7.1 = SetShared %7.0
  6041. int$' %7.2 = ForSeqSize %7.1
  6042. int$' %7.3 = LdConst [1] 0
  6043. goto BB8
  6044. BB6
  6045. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  6046. void Deopt %6.0
  6047. BB8
  6048. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  6049. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  6050. int$' %8.2 = Inc %8.1
  6051. int$' %8.3 = EnsureNamed %8.2
  6052. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  6053. BB10
  6054. lgl' %10.0 = Lt %7.2, %8.3, elided
  6055. t %10.1 = AsTest %10.0
  6056. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  6057. BB9
  6058. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  6059. void Deopt %9.0
  6060. BB16
  6061. goto BB18
  6062. BB11
  6063. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  6064. BB13
  6065. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  6066. void StVar i, %13.0, e0.2
  6067. cls %13.2 = LdFun buildTreeDepth, e0.2
  6068. prom %13.3 = MkArg missing, Prom(2), e0.2
  6069. prom %13.4 = MkArg missing, Prom(3), e0.2
  6070. cls' %13.5 = LdConst function (depth, random) { if (d...
  6071. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  6072. BB12
  6073. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  6074. void Deopt %12.0
  6075. BB15
  6076. t %15.0 = Identical %13.2, %13.5
  6077. void Assume %15.0, %13.6
  6078. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6079. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  6080. val^? %15.4 = LdVar array, e0.2
  6081. val %15.5 = Force %15.4, e0.2
  6082. val^? %15.6 = LdVar i, e0.2
  6083. val %15.7 = Force %15.6, e0.2
  6084. val^ %15.8 = EnsureNamed %15.3
  6085. val %15.9 = Force %15.8, e0.2
  6086. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  6087. void StVar array, %15.10, e0.2
  6088. goto BB8
  6089. BB14
  6090. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  6091. void Deopt %14.0
  6092. Prom 0:
  6093. BB0
  6094. env e0.0 = LdFunctionEnv
  6095. str$' %0.1 = LdConst [1] "list"
  6096. void Return %0.1
  6097. Prom 1:
  6098. BB0
  6099. env e0.0 = LdFunctionEnv
  6100. real$' %0.1 = LdConst [1] 4
  6101. void Return %0.1
  6102. Prom 2:
  6103. BB0
  6104. env e0.0 = LdFunctionEnv
  6105. val^? %0.1 = LdVar depth, e0.0
  6106. val %0.2 = Force %0.1, e0.0
  6107. real$' %0.3 = LdConst [1] 1
  6108. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6109. BB2
  6110. val %2.0 = Sub %0.2, %0.3, e0.0
  6111. void Return %2.0
  6112. BB1
  6113. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  6114. void Deopt %1.0
  6115. Prom 3:
  6116. BB0
  6117. env e0.0 = LdFunctionEnv
  6118. val^? %0.1 = LdVar random, e0.0
  6119. val %0.2 = Force %0.1, e0.0
  6120. void Return %0.2
  6121. Prom 4:
  6122. BB0
  6123. env e0.0 = LdFunctionEnv
  6124. cls %0.1 = LdFun nextRandom, e0.0
  6125. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  6126. t %0.3 = Identical %0.1, %0.2
  6127. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6128. BB2
  6129. void Assume %0.3, %0.4
  6130. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  6131. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  6132. real$' %2.3 = LdConst [1] 10
  6133. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  6134. BB1
  6135. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  6136. void Deopt %1.0
  6137. BB4
  6138. val %4.0 = Force %2.2, e0.0
  6139. val %4.1 = Mod %4.0, %2.3, e0.0
  6140. real$' %4.2 = LdConst [1] 1
  6141. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  6142. BB3
  6143. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  6144. void Deopt %3.0
  6145. BB6
  6146. val %6.0 = Add %4.1, %4.2, e0.0
  6147. void Return %6.0
  6148. BB5
  6149. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  6150. void Deopt %5.0
  6151. ├────── Inline closures: == 56
  6152. buildTreeDepth[0x7f92446010b0]
  6153. BB0
  6154. val^ %0.0 = LdArg 0
  6155. val^ %0.1 = LdArg 1
  6156. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  6157. val %0.3 = Force %0.0, e0.2
  6158. real$' %0.4 = LdConst [1] 1
  6159. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6160. BB2
  6161. lgl %2.0 = Eq %0.3, %0.4, e0.2
  6162. lgl %2.1 = AsLogical %2.0
  6163. t %2.2 = AsTest %2.1
  6164. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  6165. BB1
  6166. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  6167. void Deopt %1.0
  6168. BB17
  6169. cls %17.0 = LdFun c, e0.2
  6170. prom %17.1 = MkArg missing, Prom(4), e0.2
  6171. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  6172. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  6173. goto BB18
  6174. BB3
  6175. cls %3.0 = LdFun vector, e0.2
  6176. str$' %3.1 = LdConst [1] "list"
  6177. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  6178. real$' %3.3 = LdConst [1] 4
  6179. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  6180. cls' %3.5 = LdConst function (mode = "logical", length = ...
  6181. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  6182. BB18
  6183. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  6184. val %18.1 = Force %18.0, e0.2
  6185. void Return %18.1
  6186. BB5
  6187. t %5.0 = Identical %3.0, %3.5
  6188. void Assume %5.0, %3.6
  6189. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  6190. goto BB20
  6191. BB4
  6192. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  6193. void Deopt %4.0
  6194. BB20
  6195. val^? %20.0 = CastType %3.2
  6196. val^? %20.1 = CastType %3.4
  6197. env e20.2 = MkEnv mode=%20.0, length=%20.1, parent=<environment: namespace:base>
  6198. val %20.3 = Force %20.0, e20.2
  6199. val^? %20.4 = LdVar length, e20.2
  6200. val %20.5 = Force %20.4, e20.2
  6201. val %20.6 = CallSafeBuiltin vector(%20.3, %20.5)
  6202. goto BB19
  6203. BB19
  6204. val^ %19.0 = SetShared %20.6
  6205. val %19.1 = Force %19.0, e0.2
  6206. void StVar array, %19.1, e0.2
  6207. real$' %19.3 = LdConst [1] 1
  6208. real$' %19.4 = LdConst [1] 4
  6209. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  6210. BB7
  6211. val' %7.0 = Colon %19.3, %19.4, elided
  6212. val' %7.1 = SetShared %7.0
  6213. int$' %7.2 = ForSeqSize %7.1
  6214. int$' %7.3 = LdConst [1] 0
  6215. goto BB8
  6216. BB6
  6217. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  6218. void Deopt %6.0
  6219. BB8
  6220. val %8.0 = Phi %19.1:BB19, %21.6:BB21
  6221. int$' %8.1 = Phi %7.3:BB7, %8.3:BB21
  6222. int$' %8.2 = Inc %8.1
  6223. int$' %8.3 = EnsureNamed %8.2
  6224. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  6225. BB10
  6226. lgl' %10.0 = Lt %7.2, %8.3, elided
  6227. t %10.1 = AsTest %10.0
  6228. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  6229. BB9
  6230. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  6231. void Deopt %9.0
  6232. BB16
  6233. goto BB18
  6234. BB11
  6235. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  6236. BB13
  6237. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  6238. void StVar i, %13.0, e0.2
  6239. cls %13.2 = LdFun buildTreeDepth, e0.2
  6240. prom %13.3 = MkArg missing, Prom(2), e0.2
  6241. prom %13.4 = MkArg missing, Prom(3), e0.2
  6242. cls' %13.5 = LdConst function (depth, random) { if (d...
  6243. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  6244. BB12
  6245. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  6246. void Deopt %12.0
  6247. BB15
  6248. t %15.0 = Identical %13.2, %13.5
  6249. void Assume %15.0, %13.6
  6250. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6251. goto BB22
  6252. BB14
  6253. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  6254. void Deopt %14.0
  6255. BB22
  6256. val^? %22.0 = CastType %13.3
  6257. val^? %22.1 = CastType %13.4
  6258. env e22.2 = MkEnv depth=%22.0, random=%22.1, parent=<environment: 0x7f9246b48c88>
  6259. val %22.3 = Force %22.0, e22.2
  6260. real$' %22.4 = LdConst [1] 1
  6261. cp %22.5 = Checkpoint -> BB23 (by default) | BB28 (if coming from expect)
  6262. BB23
  6263. lgl %23.0 = Eq %22.3, %22.4, e22.2
  6264. lgl %23.1 = AsLogical %23.0
  6265. t %23.2 = AsTest %23.1
  6266. void Branch %23.2 -> BB26 (if true) | BB24 (if false)
  6267. BB28
  6268. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6269. fs %28.1 = FrameState 0x7f924457f3d0+58: [%22.3, %22.4], env=e22.2, next=%28.0
  6270. void Deopt %28.1
  6271. BB26
  6272. cls %26.0 = LdFun c, e22.2
  6273. prom %26.1 = MkArg missing, Prom(5), e22.2
  6274. fs %26.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6275. fs %26.3 = FrameState 0x7f924457f3d0+410: [], env=e22.2, next=%26.2
  6276. val^ %26.4 = Call %26.0(%26.1) %26.3, e22.2
  6277. goto BB27
  6278. BB24
  6279. cls %24.0 = LdFun vector, e22.2
  6280. str$' %24.1 = LdConst [1] "list"
  6281. prom %24.2 = MkArg %24.1, Prom(6), e22.2
  6282. real$' %24.3 = LdConst [1] 4
  6283. prom %24.4 = MkArg %24.3, Prom(7), e22.2
  6284. cls' %24.5 = LdConst function (mode = "logical", length = ...
  6285. cp %24.6 = Checkpoint -> BB29 (by default) | BB25 (if coming from expect)
  6286. BB27
  6287. val^ %27.0 = Phi %33.0:BB37, %26.4:BB26
  6288. val %27.1 = Force %27.0, e22.2
  6289. goto BB21
  6290. BB29
  6291. t %29.0 = Identical %24.0, %24.5
  6292. void Assume %29.0, %24.6
  6293. fs %29.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6294. fs %29.3 = FrameState 0x7f924457f3d0+138: [], env=e22.2, next=%29.2
  6295. goto BB30
  6296. BB25
  6297. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6298. fs %25.1 = FrameState 0x7f924457f3d0+113: [%24.0], env=e22.2, next=%25.0
  6299. void Deopt %25.1
  6300. BB21
  6301. val^? %21.0 = LdVar array, e0.2
  6302. val %21.1 = Force %21.0, e0.2
  6303. val^? %21.2 = LdVar i, e0.2
  6304. val %21.3 = Force %21.2, e0.2
  6305. val^ %21.4 = EnsureNamed %27.1
  6306. val %21.5 = Force %21.4, e0.2
  6307. val %21.6 = Subassign2_1D %21.5, %21.1, %21.3, e0.2
  6308. void StVar array, %21.6, e0.2
  6309. goto BB8
  6310. BB30
  6311. val^? %30.0 = CastType %24.2
  6312. val^? %30.1 = CastType %24.4
  6313. env e30.2 = MkEnv mode=%30.0, length=%30.1, parent=<environment: namespace:base>
  6314. val %30.3 = Force %30.0, e30.2
  6315. val^? %30.4 = LdVar length, e30.2
  6316. val %30.5 = Force %30.4, e30.2
  6317. val %30.6 = CallSafeBuiltin vector(%30.3, %30.5)
  6318. goto BB31
  6319. BB31
  6320. val^ %31.0 = SetShared %30.6
  6321. val %31.1 = Force %31.0, e22.2
  6322. void StVar array, %31.1, e22.2
  6323. real$' %31.3 = LdConst [1] 1
  6324. real$' %31.4 = LdConst [1] 4
  6325. cp %31.5 = Checkpoint -> BB32 (by default) | BB35 (if coming from expect)
  6326. BB32
  6327. val' %32.0 = Colon %31.3, %31.4, elided
  6328. val' %32.1 = SetShared %32.0
  6329. int$' %32.2 = ForSeqSize %32.1
  6330. int$' %32.3 = LdConst [1] 0
  6331. goto BB33
  6332. BB35
  6333. fs %35.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6334. fs %35.1 = FrameState 0x7f924457f3d0+192: [%31.3, %31.4], env=e22.2, next=%35.0
  6335. void Deopt %35.1
  6336. BB33
  6337. val %33.0 = Phi %31.1:BB31, %42.7:BB42
  6338. int$' %33.1 = Phi %32.3:BB32, %33.3:BB42
  6339. int$' %33.2 = Inc %33.1
  6340. int$' %33.3 = EnsureNamed %33.2
  6341. cp %33.4 = Checkpoint -> BB34 (by default) | BB36 (if coming from expect)
  6342. BB34
  6343. lgl' %34.0 = Lt %32.2, %33.3, elided
  6344. t %34.1 = AsTest %34.0
  6345. void Branch %34.1 -> BB37 (if true) | BB38 (if false)
  6346. BB36
  6347. fs %36.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6348. fs %36.1 = FrameState 0x7f924457f3d0+203: [%32.1, %32.2, %33.3, %32.2, %33.3], env=e22.2, next=%36.0
  6349. void Deopt %36.1
  6350. BB37
  6351. goto BB27
  6352. BB38
  6353. cp %38.0 = Checkpoint -> BB39 (by default) | BB40 (if coming from expect)
  6354. BB39
  6355. val$ %39.0 = Extract2_1D %32.1, %33.3, e22.2
  6356. void StVar i, %39.0, e22.2
  6357. cls %39.2 = LdFun buildTreeDepth, e22.2
  6358. prom %39.3 = MkArg missing, Prom(8), e22.2
  6359. prom %39.4 = MkArg missing, Prom(9), e22.2
  6360. cls' %39.5 = LdConst function (depth, random) { if (d...
  6361. cp %39.6 = Checkpoint -> BB41 (by default) | BB43 (if coming from expect)
  6362. BB40
  6363. fs %40.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6364. fs %40.1 = FrameState 0x7f924457f3d0+219: [%32.1, %32.2, %33.3, %32.1, %33.3], env=e22.2, next=%40.0
  6365. void Deopt %40.1
  6366. BB41
  6367. t %41.0 = Identical %39.2, %39.5
  6368. void Assume %41.0, %39.6
  6369. fs %41.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6370. fs %41.3 = FrameState 0x7f924457f3d0+290: [%32.1, %32.2, %33.3], env=e22.2, next=%41.2
  6371. goto BB42
  6372. BB43
  6373. fs %43.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6374. fs %43.1 = FrameState 0x7f924457f3d0+273: [%32.1, %32.2, %33.3, %39.2], env=e22.2, next=%43.0
  6375. void Deopt %43.1
  6376. BB42
  6377. val^ %42.0 = StaticCall buildTreeDepth[0x7f92446010b0](%39.3, %39.4) %41.3, e22.2
  6378. val^? %42.1 = LdVar array, e22.2
  6379. val %42.2 = Force %42.1, e22.2
  6380. val^? %42.3 = LdVar i, e22.2
  6381. val %42.4 = Force %42.3, e22.2
  6382. val^ %42.5 = EnsureNamed %42.0
  6383. val %42.6 = Force %42.5, e22.2
  6384. val %42.7 = Subassign2_1D %42.6, %42.2, %42.4, e22.2
  6385. void StVar array, %42.7, e22.2
  6386. goto BB33
  6387. Prom 0:
  6388. BB0
  6389. env e0.0 = LdFunctionEnv
  6390. str$' %0.1 = LdConst [1] "list"
  6391. void Return %0.1
  6392. Prom 1:
  6393. BB0
  6394. env e0.0 = LdFunctionEnv
  6395. real$' %0.1 = LdConst [1] 4
  6396. void Return %0.1
  6397. Prom 2:
  6398. BB0
  6399. env e0.0 = LdFunctionEnv
  6400. val^? %0.1 = LdVar depth, e0.0
  6401. val %0.2 = Force %0.1, e0.0
  6402. real$' %0.3 = LdConst [1] 1
  6403. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6404. BB2
  6405. val %2.0 = Sub %0.2, %0.3, e0.0
  6406. void Return %2.0
  6407. BB1
  6408. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  6409. void Deopt %1.0
  6410. Prom 3:
  6411. BB0
  6412. env e0.0 = LdFunctionEnv
  6413. val^? %0.1 = LdVar random, e0.0
  6414. val %0.2 = Force %0.1, e0.0
  6415. void Return %0.2
  6416. Prom 4:
  6417. BB0
  6418. env e0.0 = LdFunctionEnv
  6419. cls %0.1 = LdFun nextRandom, e0.0
  6420. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  6421. t %0.3 = Identical %0.1, %0.2
  6422. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6423. BB2
  6424. void Assume %0.3, %0.4
  6425. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  6426. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  6427. real$' %2.3 = LdConst [1] 10
  6428. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  6429. BB1
  6430. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  6431. void Deopt %1.0
  6432. BB4
  6433. val %4.0 = Force %2.2, e0.0
  6434. val %4.1 = Mod %4.0, %2.3, e0.0
  6435. real$' %4.2 = LdConst [1] 1
  6436. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  6437. BB3
  6438. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  6439. void Deopt %3.0
  6440. BB6
  6441. val %6.0 = Add %4.1, %4.2, e0.0
  6442. void Return %6.0
  6443. BB5
  6444. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  6445. void Deopt %5.0
  6446. Prom 5:
  6447. BB0
  6448. env e0.0 = LdFunctionEnv
  6449. cls %0.1 = LdFun nextRandom, e0.0
  6450. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  6451. t %0.3 = Identical %0.1, %0.2
  6452. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  6453. BB1
  6454. void Assume %0.3, %0.4
  6455. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  6456. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  6457. real$' %1.3 = LdConst [1] 10
  6458. cp %1.4 = Checkpoint -> BB3 (by default) | BB6 (if coming from expect)
  6459. BB2
  6460. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  6461. void Deopt %2.0
  6462. BB3
  6463. val %3.0 = Force %1.2, e0.0
  6464. val %3.1 = Mod %3.0, %1.3, e0.0
  6465. real$' %3.2 = LdConst [1] 1
  6466. cp %3.3 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  6467. BB6
  6468. fs %6.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  6469. void Deopt %6.0
  6470. BB5
  6471. val %5.0 = Add %3.1, %3.2, e0.0
  6472. void Return %5.0
  6473. BB4
  6474. fs %4.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  6475. void Deopt %4.0
  6476. Prom 6:
  6477. BB0
  6478. env e0.0 = LdFunctionEnv
  6479. str$' %0.1 = LdConst [1] "list"
  6480. void Return %0.1
  6481. Prom 7:
  6482. BB0
  6483. env e0.0 = LdFunctionEnv
  6484. real$' %0.1 = LdConst [1] 4
  6485. void Return %0.1
  6486. Prom 8:
  6487. BB0
  6488. env e0.0 = LdFunctionEnv
  6489. val^? %0.1 = LdVar depth, e0.0
  6490. val %0.2 = Force %0.1, e0.0
  6491. real$' %0.3 = LdConst [1] 1
  6492. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  6493. BB1
  6494. val %1.0 = Sub %0.2, %0.3, e0.0
  6495. void Return %1.0
  6496. BB2
  6497. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  6498. void Deopt %2.0
  6499. Prom 9:
  6500. BB0
  6501. env e0.0 = LdFunctionEnv
  6502. val^? %0.1 = LdVar random, e0.0
  6503. val %0.2 = Force %0.1, e0.0
  6504. void Return %0.2
  6505. ├────── Inline Promises: == 63
  6506. buildTreeDepth[0x7f92446010b0]
  6507. BB0
  6508. val^ %0.0 = LdArg 0
  6509. val^ %0.1 = LdArg 1
  6510. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  6511. val %0.3 = Force! %0.0, e0.2
  6512. real$' %0.4 = LdConst [1] 1
  6513. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6514. BB2
  6515. lgl %2.0 = Eq %0.3, %0.4, e0.2
  6516. lgl %2.1 = AsLogical %2.0
  6517. t %2.2 = AsTest %2.1
  6518. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  6519. BB1
  6520. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  6521. void Deopt %1.0
  6522. BB17
  6523. cls %17.0 = LdFun c, e0.2
  6524. prom %17.1 = MkArg missing, Prom(4), e0.2
  6525. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  6526. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  6527. goto BB18
  6528. BB3
  6529. cls %3.0 = LdFun vector, e0.2
  6530. str$' %3.1 = LdConst [1] "list"
  6531. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  6532. real$' %3.3 = LdConst [1] 4
  6533. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  6534. cls' %3.5 = LdConst function (mode = "logical", length = ...
  6535. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  6536. BB18
  6537. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  6538. val %18.1 = Force %18.0, e0.2
  6539. void Return %18.1
  6540. BB5
  6541. t %5.0 = Identical %3.0, %3.5
  6542. void Assume %5.0, %3.6
  6543. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  6544. goto BB20
  6545. BB4
  6546. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  6547. void Deopt %4.0
  6548. BB20
  6549. env e20.0 = MkEnv mode=%3.1, length=%3.3, parent=<environment: namespace:base>
  6550. val %20.1 = Force %3.1, e20.0
  6551. val^? %20.2 = LdVar length, e20.0
  6552. val %20.3 = Force %20.2, e20.0
  6553. val %20.4 = CallSafeBuiltin vector(%20.1, %20.3)
  6554. goto BB19
  6555. BB19
  6556. val^ %19.0 = SetShared %20.4
  6557. val %19.1 = Force %19.0, e0.2
  6558. void StVar array, %19.1, e0.2
  6559. real$' %19.3 = LdConst [1] 1
  6560. real$' %19.4 = LdConst [1] 4
  6561. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  6562. BB7
  6563. val' %7.0 = Colon %19.3, %19.4, elided
  6564. val' %7.1 = SetShared %7.0
  6565. int$' %7.2 = ForSeqSize %7.1
  6566. int$' %7.3 = LdConst [1] 0
  6567. goto BB8
  6568. BB6
  6569. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  6570. void Deopt %6.0
  6571. BB8
  6572. val %8.0 = Phi %19.1:BB19, %21.6:BB21
  6573. int$' %8.1 = Phi %7.3:BB7, %8.3:BB21
  6574. int$' %8.2 = Inc %8.1
  6575. int$' %8.3 = EnsureNamed %8.2
  6576. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  6577. BB10
  6578. lgl' %10.0 = Lt %7.2, %8.3, elided
  6579. t %10.1 = AsTest %10.0
  6580. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  6581. BB9
  6582. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  6583. void Deopt %9.0
  6584. BB16
  6585. goto BB18
  6586. BB11
  6587. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  6588. BB13
  6589. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  6590. void StVar i, %13.0, e0.2
  6591. cls %13.2 = LdFun buildTreeDepth, e0.2
  6592. prom %13.3 = MkArg missing, Prom(2), e0.2
  6593. prom %13.4 = MkArg missing, Prom(3), e0.2
  6594. cls' %13.5 = LdConst function (depth, random) { if (d...
  6595. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  6596. BB12
  6597. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  6598. void Deopt %12.0
  6599. BB15
  6600. t %15.0 = Identical %13.2, %13.5
  6601. void Assume %15.0, %13.6
  6602. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6603. goto BB22
  6604. BB14
  6605. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  6606. void Deopt %14.0
  6607. BB22
  6608. val^? %22.0 = CastType %13.3
  6609. val^? %22.1 = CastType %13.4
  6610. env e22.2 = MkEnv depth=%22.0, random=%22.1, parent=<environment: 0x7f9246b48c88>
  6611. val %22.3 = Force %22.0, e22.2
  6612. real$' %22.4 = LdConst [1] 1
  6613. cp %22.5 = Checkpoint -> BB23 (by default) | BB28 (if coming from expect)
  6614. BB23
  6615. lgl %23.0 = Eq %22.3, %22.4, e22.2
  6616. lgl %23.1 = AsLogical %23.0
  6617. t %23.2 = AsTest %23.1
  6618. void Branch %23.2 -> BB26 (if true) | BB24 (if false)
  6619. BB28
  6620. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6621. fs %28.1 = FrameState 0x7f924457f3d0+58: [%22.3, %22.4], env=e22.2, next=%28.0
  6622. void Deopt %28.1
  6623. BB26
  6624. cls %26.0 = LdFun c, e22.2
  6625. prom %26.1 = MkArg missing, Prom(5), e22.2
  6626. fs %26.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6627. fs %26.3 = FrameState 0x7f924457f3d0+410: [], env=e22.2, next=%26.2
  6628. val^ %26.4 = Call %26.0(%26.1) %26.3, e22.2
  6629. goto BB27
  6630. BB24
  6631. cls %24.0 = LdFun vector, e22.2
  6632. str$' %24.1 = LdConst [1] "list"
  6633. prom %24.2 = MkArg %24.1, Prom(6), e22.2
  6634. real$' %24.3 = LdConst [1] 4
  6635. prom %24.4 = MkArg %24.3, Prom(7), e22.2
  6636. cls' %24.5 = LdConst function (mode = "logical", length = ...
  6637. cp %24.6 = Checkpoint -> BB29 (by default) | BB25 (if coming from expect)
  6638. BB27
  6639. val^ %27.0 = Phi %33.0:BB37, %26.4:BB26
  6640. val %27.1 = Force %27.0, e22.2
  6641. goto BB21
  6642. BB29
  6643. t %29.0 = Identical %24.0, %24.5
  6644. void Assume %29.0, %24.6
  6645. fs %29.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6646. fs %29.3 = FrameState 0x7f924457f3d0+138: [], env=e22.2, next=%29.2
  6647. goto BB30
  6648. BB25
  6649. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6650. fs %25.1 = FrameState 0x7f924457f3d0+113: [%24.0], env=e22.2, next=%25.0
  6651. void Deopt %25.1
  6652. BB21
  6653. val^? %21.0 = LdVar array, e0.2
  6654. val %21.1 = Force %21.0, e0.2
  6655. val^? %21.2 = LdVar i, e0.2
  6656. val %21.3 = Force %21.2, e0.2
  6657. val^ %21.4 = EnsureNamed %27.1
  6658. val %21.5 = Force %21.4, e0.2
  6659. val %21.6 = Subassign2_1D %21.5, %21.1, %21.3, e0.2
  6660. void StVar array, %21.6, e0.2
  6661. goto BB8
  6662. BB30
  6663. env e30.0 = MkEnv mode=%24.1, length=%24.3, parent=<environment: namespace:base>
  6664. val %30.1 = Force %24.1, e30.0
  6665. val^? %30.2 = LdVar length, e30.0
  6666. val %30.3 = Force %30.2, e30.0
  6667. val %30.4 = CallSafeBuiltin vector(%30.1, %30.3)
  6668. goto BB31
  6669. BB31
  6670. val^ %31.0 = SetShared %30.4
  6671. val %31.1 = Force %31.0, e22.2
  6672. void StVar array, %31.1, e22.2
  6673. real$' %31.3 = LdConst [1] 1
  6674. real$' %31.4 = LdConst [1] 4
  6675. cp %31.5 = Checkpoint -> BB32 (by default) | BB35 (if coming from expect)
  6676. BB32
  6677. val' %32.0 = Colon %31.3, %31.4, elided
  6678. val' %32.1 = SetShared %32.0
  6679. int$' %32.2 = ForSeqSize %32.1
  6680. int$' %32.3 = LdConst [1] 0
  6681. goto BB33
  6682. BB35
  6683. fs %35.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6684. fs %35.1 = FrameState 0x7f924457f3d0+192: [%31.3, %31.4], env=e22.2, next=%35.0
  6685. void Deopt %35.1
  6686. BB33
  6687. val %33.0 = Phi %31.1:BB31, %42.7:BB42
  6688. int$' %33.1 = Phi %32.3:BB32, %33.3:BB42
  6689. int$' %33.2 = Inc %33.1
  6690. int$' %33.3 = EnsureNamed %33.2
  6691. cp %33.4 = Checkpoint -> BB34 (by default) | BB36 (if coming from expect)
  6692. BB34
  6693. lgl' %34.0 = Lt %32.2, %33.3, elided
  6694. t %34.1 = AsTest %34.0
  6695. void Branch %34.1 -> BB37 (if true) | BB38 (if false)
  6696. BB36
  6697. fs %36.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6698. fs %36.1 = FrameState 0x7f924457f3d0+203: [%32.1, %32.2, %33.3, %32.2, %33.3], env=e22.2, next=%36.0
  6699. void Deopt %36.1
  6700. BB37
  6701. goto BB27
  6702. BB38
  6703. cp %38.0 = Checkpoint -> BB39 (by default) | BB40 (if coming from expect)
  6704. BB39
  6705. val$ %39.0 = Extract2_1D %32.1, %33.3, e22.2
  6706. void StVar i, %39.0, e22.2
  6707. cls %39.2 = LdFun buildTreeDepth, e22.2
  6708. prom %39.3 = MkArg missing, Prom(8), e22.2
  6709. prom %39.4 = MkArg missing, Prom(9), e22.2
  6710. cls' %39.5 = LdConst function (depth, random) { if (d...
  6711. cp %39.6 = Checkpoint -> BB41 (by default) | BB43 (if coming from expect)
  6712. BB40
  6713. fs %40.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6714. fs %40.1 = FrameState 0x7f924457f3d0+219: [%32.1, %32.2, %33.3, %32.1, %33.3], env=e22.2, next=%40.0
  6715. void Deopt %40.1
  6716. BB41
  6717. t %41.0 = Identical %39.2, %39.5
  6718. void Assume %41.0, %39.6
  6719. fs %41.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6720. fs %41.3 = FrameState 0x7f924457f3d0+290: [%32.1, %32.2, %33.3], env=e22.2, next=%41.2
  6721. goto BB42
  6722. BB43
  6723. fs %43.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6724. fs %43.1 = FrameState 0x7f924457f3d0+273: [%32.1, %32.2, %33.3, %39.2], env=e22.2, next=%43.0
  6725. void Deopt %43.1
  6726. BB42
  6727. val^ %42.0 = StaticCall buildTreeDepth[0x7f92446010b0](%39.3, %39.4) %41.3, e22.2
  6728. val^? %42.1 = LdVar array, e22.2
  6729. val %42.2 = Force %42.1, e22.2
  6730. val^? %42.3 = LdVar i, e22.2
  6731. val %42.4 = Force %42.3, e22.2
  6732. val^ %42.5 = EnsureNamed %42.0
  6733. val %42.6 = Force %42.5, e22.2
  6734. val %42.7 = Subassign2_1D %42.6, %42.2, %42.4, e22.2
  6735. void StVar array, %42.7, e22.2
  6736. goto BB33
  6737. Prom 0:
  6738. BB0
  6739. env e0.0 = LdFunctionEnv
  6740. str$' %0.1 = LdConst [1] "list"
  6741. void Return %0.1
  6742. Prom 1:
  6743. BB0
  6744. env e0.0 = LdFunctionEnv
  6745. real$' %0.1 = LdConst [1] 4
  6746. void Return %0.1
  6747. Prom 2:
  6748. BB0
  6749. env e0.0 = LdFunctionEnv
  6750. val^? %0.1 = LdVar depth, e0.0
  6751. val %0.2 = Force %0.1, e0.0
  6752. real$' %0.3 = LdConst [1] 1
  6753. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6754. BB2
  6755. val %2.0 = Sub %0.2, %0.3, e0.0
  6756. void Return %2.0
  6757. BB1
  6758. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  6759. void Deopt %1.0
  6760. Prom 3:
  6761. BB0
  6762. env e0.0 = LdFunctionEnv
  6763. val^? %0.1 = LdVar random, e0.0
  6764. val %0.2 = Force %0.1, e0.0
  6765. void Return %0.2
  6766. Prom 4:
  6767. BB0
  6768. env e0.0 = LdFunctionEnv
  6769. cls %0.1 = LdFun nextRandom, e0.0
  6770. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  6771. t %0.3 = Identical %0.1, %0.2
  6772. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6773. BB2
  6774. void Assume %0.3, %0.4
  6775. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  6776. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  6777. real$' %2.3 = LdConst [1] 10
  6778. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  6779. BB1
  6780. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  6781. void Deopt %1.0
  6782. BB4
  6783. val %4.0 = Force %2.2, e0.0
  6784. val %4.1 = Mod %4.0, %2.3, e0.0
  6785. real$' %4.2 = LdConst [1] 1
  6786. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  6787. BB3
  6788. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  6789. void Deopt %3.0
  6790. BB6
  6791. val %6.0 = Add %4.1, %4.2, e0.0
  6792. void Return %6.0
  6793. BB5
  6794. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  6795. void Deopt %5.0
  6796. Prom 5:
  6797. BB0
  6798. env e0.0 = LdFunctionEnv
  6799. cls %0.1 = LdFun nextRandom, e0.0
  6800. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  6801. t %0.3 = Identical %0.1, %0.2
  6802. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  6803. BB1
  6804. void Assume %0.3, %0.4
  6805. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  6806. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  6807. real$' %1.3 = LdConst [1] 10
  6808. cp %1.4 = Checkpoint -> BB3 (by default) | BB6 (if coming from expect)
  6809. BB2
  6810. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  6811. void Deopt %2.0
  6812. BB3
  6813. val %3.0 = Force %1.2, e0.0
  6814. val %3.1 = Mod %3.0, %1.3, e0.0
  6815. real$' %3.2 = LdConst [1] 1
  6816. cp %3.3 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  6817. BB6
  6818. fs %6.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  6819. void Deopt %6.0
  6820. BB5
  6821. val %5.0 = Add %3.1, %3.2, e0.0
  6822. void Return %5.0
  6823. BB4
  6824. fs %4.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  6825. void Deopt %4.0
  6826. Prom 6:
  6827. BB0
  6828. env e0.0 = LdFunctionEnv
  6829. str$' %0.1 = LdConst [1] "list"
  6830. void Return %0.1
  6831. Prom 7:
  6832. BB0
  6833. env e0.0 = LdFunctionEnv
  6834. real$' %0.1 = LdConst [1] 4
  6835. void Return %0.1
  6836. Prom 8:
  6837. BB0
  6838. env e0.0 = LdFunctionEnv
  6839. val^? %0.1 = LdVar depth, e0.0
  6840. val %0.2 = Force %0.1, e0.0
  6841. real$' %0.3 = LdConst [1] 1
  6842. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  6843. BB1
  6844. val %1.0 = Sub %0.2, %0.3, e0.0
  6845. void Return %1.0
  6846. BB2
  6847. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  6848. void Deopt %2.0
  6849. Prom 9:
  6850. BB0
  6851. env e0.0 = LdFunctionEnv
  6852. val^? %0.1 = LdVar random, e0.0
  6853. val %0.2 = Force %0.1, e0.0
  6854. void Return %0.2
  6855. ├────── Scope resolution: == 70
  6856. buildTreeDepth[0x7f92446010b0]
  6857. BB0
  6858. val^ %0.0 = LdArg 0
  6859. val^ %0.1 = LdArg 1
  6860. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  6861. val %0.3 = Force! %0.0, e0.2
  6862. real$' %0.4 = LdConst [1] 1
  6863. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  6864. BB2
  6865. lgl %2.0 = Eq %0.3, %0.4, e0.2
  6866. lgl %2.1 = AsLogical %2.0
  6867. t %2.2 = AsTest %2.1
  6868. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  6869. BB1
  6870. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  6871. void Deopt %1.0
  6872. BB17
  6873. cls %17.0 = LdFun c, e0.2
  6874. prom %17.1 = MkArg missing, Prom(4), e0.2
  6875. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  6876. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  6877. goto BB18
  6878. BB3
  6879. cls %3.0 = LdFun vector, e0.2
  6880. str$' %3.1 = LdConst [1] "list"
  6881. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  6882. real$' %3.3 = LdConst [1] 4
  6883. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  6884. cls' %3.5 = LdConst function (mode = "logical", length = ...
  6885. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  6886. BB18
  6887. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  6888. val %18.1 = Force %18.0, e0.2
  6889. void Return %18.1
  6890. BB5
  6891. t %5.0 = Identical %3.0, %3.5
  6892. void Assume %5.0, %3.6
  6893. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  6894. goto BB20
  6895. BB4
  6896. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  6897. void Deopt %4.0
  6898. BB20
  6899. env e20.0 = MkEnv mode=%3.1, length=%3.3, parent=<environment: namespace:base>
  6900. val %20.1 = CallSafeBuiltin vector(%3.1, %3.3)
  6901. goto BB19
  6902. BB19
  6903. val^ %19.0 = SetShared %20.1
  6904. val %19.1 = Force %19.0, e0.2
  6905. void StVar array, %19.1, e0.2
  6906. real$' %19.3 = LdConst [1] 1
  6907. real$' %19.4 = LdConst [1] 4
  6908. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  6909. BB7
  6910. val' %7.0 = Colon %19.3, %19.4, elided
  6911. val' %7.1 = SetShared %7.0
  6912. int$' %7.2 = ForSeqSize %7.1
  6913. int$' %7.3 = LdConst [1] 0
  6914. goto BB8
  6915. BB6
  6916. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  6917. void Deopt %6.0
  6918. BB8
  6919. val %8.0 = Phi %19.1:BB19, %21.6:BB21
  6920. int$' %8.1 = Phi %7.3:BB7, %8.3:BB21
  6921. int$' %8.2 = Inc %8.1
  6922. int$' %8.3 = EnsureNamed %8.2
  6923. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  6924. BB10
  6925. lgl' %10.0 = Lt %7.2, %8.3, elided
  6926. t %10.1 = AsTest %10.0
  6927. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  6928. BB9
  6929. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  6930. void Deopt %9.0
  6931. BB16
  6932. goto BB18
  6933. BB11
  6934. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  6935. BB13
  6936. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  6937. void StVar i, %13.0, e0.2
  6938. cls %13.2 = LdFun buildTreeDepth, e0.2
  6939. prom %13.3 = MkArg missing, Prom(2), e0.2
  6940. prom %13.4 = MkArg missing, Prom(3), e0.2
  6941. cls' %13.5 = LdConst function (depth, random) { if (d...
  6942. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  6943. BB12
  6944. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  6945. void Deopt %12.0
  6946. BB15
  6947. t %15.0 = Identical %13.2, %13.5
  6948. void Assume %15.0, %13.6
  6949. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6950. goto BB22
  6951. BB14
  6952. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  6953. void Deopt %14.0
  6954. BB22
  6955. val^? %22.0 = CastType %13.3
  6956. val^? %22.1 = CastType %13.4
  6957. env e22.2 = MkEnv depth=%22.0, random=%22.1, parent=<environment: 0x7f9246b48c88>
  6958. val %22.3 = Force %22.0, e22.2
  6959. real$' %22.4 = LdConst [1] 1
  6960. cp %22.5 = Checkpoint -> BB23 (by default) | BB28 (if coming from expect)
  6961. BB23
  6962. lgl %23.0 = Eq %22.3, %22.4, e22.2
  6963. lgl %23.1 = AsLogical %23.0
  6964. t %23.2 = AsTest %23.1
  6965. void Branch %23.2 -> BB26 (if true) | BB24 (if false)
  6966. BB28
  6967. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6968. fs %28.1 = FrameState 0x7f924457f3d0+58: [%22.3, %22.4], env=e22.2, next=%28.0
  6969. void Deopt %28.1
  6970. BB26
  6971. cls %26.0 = LdFun c, e22.2
  6972. prom %26.1 = MkArg missing, Prom(5), e22.2
  6973. fs %26.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6974. fs %26.3 = FrameState 0x7f924457f3d0+410: [], env=e22.2, next=%26.2
  6975. val^ %26.4 = Call %26.0(%26.1) %26.3, e22.2
  6976. goto BB27
  6977. BB24
  6978. cls %24.0 = LdFun vector, e22.2
  6979. str$' %24.1 = LdConst [1] "list"
  6980. prom %24.2 = MkArg %24.1, Prom(6), e22.2
  6981. real$' %24.3 = LdConst [1] 4
  6982. prom %24.4 = MkArg %24.3, Prom(7), e22.2
  6983. cls' %24.5 = LdConst function (mode = "logical", length = ...
  6984. cp %24.6 = Checkpoint -> BB29 (by default) | BB25 (if coming from expect)
  6985. BB27
  6986. val^ %27.0 = Phi %33.0:BB37, %26.4:BB26
  6987. val %27.1 = Force %27.0, e22.2
  6988. goto BB21
  6989. BB29
  6990. t %29.0 = Identical %24.0, %24.5
  6991. void Assume %29.0, %24.6
  6992. fs %29.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6993. fs %29.3 = FrameState 0x7f924457f3d0+138: [], env=e22.2, next=%29.2
  6994. goto BB30
  6995. BB25
  6996. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  6997. fs %25.1 = FrameState 0x7f924457f3d0+113: [%24.0], env=e22.2, next=%25.0
  6998. void Deopt %25.1
  6999. BB21
  7000. val^? %21.0 = LdVar array, e0.2
  7001. val %21.1 = Force %21.0, e0.2
  7002. val^? %21.2 = LdVar i, e0.2
  7003. val %21.3 = Force %21.2, e0.2
  7004. val^ %21.4 = EnsureNamed %27.1
  7005. val %21.5 = Force %21.4, e0.2
  7006. val %21.6 = Subassign2_1D %21.5, %21.1, %21.3, e0.2
  7007. void StVar array, %21.6, e0.2
  7008. goto BB8
  7009. BB30
  7010. env e30.0 = MkEnv mode=%24.1, length=%24.3, parent=<environment: namespace:base>
  7011. real$' %30.1 = Force %24.3, e30.0
  7012. val %30.2 = CallSafeBuiltin vector(%24.1, %30.1)
  7013. goto BB31
  7014. BB31
  7015. val^ %31.0 = SetShared %30.2
  7016. val %31.1 = Force %31.0, e22.2
  7017. void StVar array, %31.1, e22.2
  7018. real$' %31.3 = LdConst [1] 1
  7019. real$' %31.4 = LdConst [1] 4
  7020. cp %31.5 = Checkpoint -> BB32 (by default) | BB35 (if coming from expect)
  7021. BB32
  7022. val' %32.0 = Colon %31.3, %31.4, elided
  7023. val' %32.1 = SetShared %32.0
  7024. int$' %32.2 = ForSeqSize %32.1
  7025. int$' %32.3 = LdConst [1] 0
  7026. goto BB33
  7027. BB35
  7028. fs %35.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7029. fs %35.1 = FrameState 0x7f924457f3d0+192: [%31.3, %31.4], env=e22.2, next=%35.0
  7030. void Deopt %35.1
  7031. BB33
  7032. val %33.0 = Phi %31.1:BB31, %42.7:BB42
  7033. int$' %33.1 = Phi %32.3:BB32, %33.3:BB42
  7034. int$' %33.2 = Inc %33.1
  7035. int$' %33.3 = EnsureNamed %33.2
  7036. cp %33.4 = Checkpoint -> BB34 (by default) | BB36 (if coming from expect)
  7037. BB34
  7038. lgl' %34.0 = Lt %32.2, %33.3, elided
  7039. t %34.1 = AsTest %34.0
  7040. void Branch %34.1 -> BB37 (if true) | BB38 (if false)
  7041. BB36
  7042. fs %36.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7043. fs %36.1 = FrameState 0x7f924457f3d0+203: [%32.1, %32.2, %33.3, %32.2, %33.3], env=e22.2, next=%36.0
  7044. void Deopt %36.1
  7045. BB37
  7046. goto BB27
  7047. BB38
  7048. cp %38.0 = Checkpoint -> BB39 (by default) | BB40 (if coming from expect)
  7049. BB39
  7050. val$ %39.0 = Extract2_1D %32.1, %33.3, e22.2
  7051. void StVar i, %39.0, e22.2
  7052. cls %39.2 = LdFun buildTreeDepth, e22.2
  7053. prom %39.3 = MkArg missing, Prom(8), e22.2
  7054. prom %39.4 = MkArg missing, Prom(9), e22.2
  7055. cls' %39.5 = LdConst function (depth, random) { if (d...
  7056. cp %39.6 = Checkpoint -> BB41 (by default) | BB43 (if coming from expect)
  7057. BB40
  7058. fs %40.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7059. fs %40.1 = FrameState 0x7f924457f3d0+219: [%32.1, %32.2, %33.3, %32.1, %33.3], env=e22.2, next=%40.0
  7060. void Deopt %40.1
  7061. BB41
  7062. t %41.0 = Identical %39.2, %39.5
  7063. void Assume %41.0, %39.6
  7064. fs %41.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7065. fs %41.3 = FrameState 0x7f924457f3d0+290: [%32.1, %32.2, %33.3], env=e22.2, next=%41.2
  7066. goto BB42
  7067. BB43
  7068. fs %43.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7069. fs %43.1 = FrameState 0x7f924457f3d0+273: [%32.1, %32.2, %33.3, %39.2], env=e22.2, next=%43.0
  7070. void Deopt %43.1
  7071. BB42
  7072. val^ %42.0 = StaticCall buildTreeDepth[0x7f92446010b0](%39.3, %39.4) %41.3, e22.2
  7073. val^? %42.1 = LdVar array, e22.2
  7074. val %42.2 = Force %42.1, e22.2
  7075. val^? %42.3 = LdVar i, e22.2
  7076. val %42.4 = Force %42.3, e22.2
  7077. val^ %42.5 = EnsureNamed %42.0
  7078. val %42.6 = Force %42.5, e22.2
  7079. val %42.7 = Subassign2_1D %42.6, %42.2, %42.4, e22.2
  7080. void StVar array, %42.7, e22.2
  7081. goto BB33
  7082. Prom 0:
  7083. BB0
  7084. env e0.0 = LdFunctionEnv
  7085. str$' %0.1 = LdConst [1] "list"
  7086. void Return %0.1
  7087. Prom 1:
  7088. BB0
  7089. env e0.0 = LdFunctionEnv
  7090. real$' %0.1 = LdConst [1] 4
  7091. void Return %0.1
  7092. Prom 2:
  7093. BB0
  7094. env e0.0 = LdFunctionEnv
  7095. val^? %0.1 = LdVar depth, e0.0
  7096. val %0.2 = Force %0.1, e0.0
  7097. real$' %0.3 = LdConst [1] 1
  7098. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7099. BB2
  7100. val %2.0 = Sub %0.2, %0.3, e0.0
  7101. void Return %2.0
  7102. BB1
  7103. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  7104. void Deopt %1.0
  7105. Prom 3:
  7106. BB0
  7107. env e0.0 = LdFunctionEnv
  7108. val^? %0.1 = LdVar random, e0.0
  7109. val %0.2 = Force %0.1, e0.0
  7110. void Return %0.2
  7111. Prom 4:
  7112. BB0
  7113. env e0.0 = LdFunctionEnv
  7114. cls %0.1 = LdFun nextRandom, e0.0
  7115. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  7116. t %0.3 = Identical %0.1, %0.2
  7117. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7118. BB2
  7119. void Assume %0.3, %0.4
  7120. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  7121. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  7122. real$' %2.3 = LdConst [1] 10
  7123. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  7124. BB1
  7125. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  7126. void Deopt %1.0
  7127. BB4
  7128. val %4.0 = Force %2.2, e0.0
  7129. val %4.1 = Mod %4.0, %2.3, e0.0
  7130. real$' %4.2 = LdConst [1] 1
  7131. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  7132. BB3
  7133. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  7134. void Deopt %3.0
  7135. BB6
  7136. val %6.0 = Add %4.1, %4.2, e0.0
  7137. void Return %6.0
  7138. BB5
  7139. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  7140. void Deopt %5.0
  7141. Prom 5:
  7142. BB0
  7143. env e0.0 = LdFunctionEnv
  7144. cls %0.1 = LdFun nextRandom, e0.0
  7145. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  7146. t %0.3 = Identical %0.1, %0.2
  7147. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  7148. BB1
  7149. void Assume %0.3, %0.4
  7150. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  7151. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  7152. real$' %1.3 = LdConst [1] 10
  7153. cp %1.4 = Checkpoint -> BB3 (by default) | BB6 (if coming from expect)
  7154. BB2
  7155. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  7156. void Deopt %2.0
  7157. BB3
  7158. val %3.0 = Force %1.2, e0.0
  7159. val %3.1 = Mod %3.0, %1.3, e0.0
  7160. real$' %3.2 = LdConst [1] 1
  7161. cp %3.3 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  7162. BB6
  7163. fs %6.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  7164. void Deopt %6.0
  7165. BB5
  7166. val %5.0 = Add %3.1, %3.2, e0.0
  7167. void Return %5.0
  7168. BB4
  7169. fs %4.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  7170. void Deopt %4.0
  7171. Prom 6:
  7172. BB0
  7173. env e0.0 = LdFunctionEnv
  7174. str$' %0.1 = LdConst [1] "list"
  7175. void Return %0.1
  7176. Prom 7:
  7177. BB0
  7178. env e0.0 = LdFunctionEnv
  7179. real$' %0.1 = LdConst [1] 4
  7180. void Return %0.1
  7181. Prom 8:
  7182. BB0
  7183. env e0.0 = LdFunctionEnv
  7184. val^? %0.1 = LdVar depth, e0.0
  7185. val %0.2 = Force %0.1, e0.0
  7186. real$' %0.3 = LdConst [1] 1
  7187. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  7188. BB1
  7189. val %1.0 = Sub %0.2, %0.3, e0.0
  7190. void Return %1.0
  7191. BB2
  7192. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  7193. void Deopt %2.0
  7194. Prom 9:
  7195. BB0
  7196. env e0.0 = LdFunctionEnv
  7197. val^? %0.1 = LdVar random, e0.0
  7198. val %0.2 = Force %0.1, e0.0
  7199. void Return %0.2
  7200. ├────── Constant folding: == 77
  7201. buildTreeDepth[0x7f92446010b0]
  7202. BB0
  7203. val^ %0.0 = LdArg 0
  7204. val^ %0.1 = LdArg 1
  7205. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  7206. val %0.3 = Force! %0.0, e0.2
  7207. real$' %0.4 = LdConst [1] 1
  7208. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7209. BB2
  7210. lgl %2.0 = Eq %0.3, %0.4, e0.2
  7211. lgl %2.1 = AsLogical %2.0
  7212. t %2.2 = AsTest %2.1
  7213. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  7214. BB1
  7215. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  7216. void Deopt %1.0
  7217. BB17
  7218. cls %17.0 = LdFun c, e0.2
  7219. prom %17.1 = MkArg missing, Prom(4), e0.2
  7220. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  7221. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  7222. goto BB18
  7223. BB3
  7224. cls %3.0 = LdFun vector, e0.2
  7225. str$' %3.1 = LdConst [1] "list"
  7226. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  7227. real$' %3.3 = LdConst [1] 4
  7228. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  7229. cls' %3.5 = LdConst function (mode = "logical", length = ...
  7230. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  7231. BB18
  7232. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  7233. val %18.1 = Force %18.0, e0.2
  7234. void Return %18.1
  7235. BB5
  7236. t %5.0 = Identical %3.0, %3.5
  7237. void Assume %5.0, %3.6
  7238. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  7239. goto BB20
  7240. BB4
  7241. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  7242. void Deopt %4.0
  7243. BB20
  7244. env e20.0 = MkEnv mode=%3.1, length=%3.3, parent=<environment: namespace:base>
  7245. val %20.1 = CallSafeBuiltin vector(%3.1, %3.3)
  7246. goto BB19
  7247. BB19
  7248. val^ %19.0 = SetShared %20.1
  7249. val %19.1 = Force %19.0, e0.2
  7250. void StVar array, %19.1, e0.2
  7251. real$' %19.3 = LdConst [1] 1
  7252. real$' %19.4 = LdConst [1] 4
  7253. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  7254. BB7
  7255. val' %7.0 = Colon %19.3, %19.4, elided
  7256. val' %7.1 = SetShared %7.0
  7257. int$' %7.2 = ForSeqSize %7.1
  7258. int$' %7.3 = LdConst [1] 0
  7259. goto BB8
  7260. BB6
  7261. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  7262. void Deopt %6.0
  7263. BB8
  7264. val %8.0 = Phi %19.1:BB19, %21.6:BB21
  7265. int$' %8.1 = Phi %7.3:BB7, %8.3:BB21
  7266. int$' %8.2 = Inc %8.1
  7267. int$' %8.3 = EnsureNamed %8.2
  7268. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  7269. BB10
  7270. lgl' %10.0 = Lt %7.2, %8.3, elided
  7271. t %10.1 = AsTest %10.0
  7272. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  7273. BB9
  7274. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  7275. void Deopt %9.0
  7276. BB16
  7277. goto BB18
  7278. BB11
  7279. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  7280. BB13
  7281. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  7282. void StVar i, %13.0, e0.2
  7283. cls %13.2 = LdFun buildTreeDepth, e0.2
  7284. prom %13.3 = MkArg missing, Prom(2), e0.2
  7285. prom %13.4 = MkArg missing, Prom(3), e0.2
  7286. cls' %13.5 = LdConst function (depth, random) { if (d...
  7287. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  7288. BB12
  7289. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  7290. void Deopt %12.0
  7291. BB15
  7292. t %15.0 = Identical %13.2, %13.5
  7293. void Assume %15.0, %13.6
  7294. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7295. goto BB22
  7296. BB14
  7297. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  7298. void Deopt %14.0
  7299. BB22
  7300. val^? %22.0 = CastType %13.3
  7301. val^? %22.1 = CastType %13.4
  7302. env e22.2 = MkEnv depth=%22.0, random=%22.1, parent=<environment: 0x7f9246b48c88>
  7303. val %22.3 = Force %22.0, e22.2
  7304. real$' %22.4 = LdConst [1] 1
  7305. cp %22.5 = Checkpoint -> BB23 (by default) | BB28 (if coming from expect)
  7306. BB23
  7307. lgl %23.0 = Eq %22.3, %22.4, e22.2
  7308. lgl %23.1 = AsLogical %23.0
  7309. t %23.2 = AsTest %23.1
  7310. void Branch %23.2 -> BB26 (if true) | BB24 (if false)
  7311. BB28
  7312. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7313. fs %28.1 = FrameState 0x7f924457f3d0+58: [%22.3, %22.4], env=e22.2, next=%28.0
  7314. void Deopt %28.1
  7315. BB26
  7316. cls %26.0 = LdFun c, e22.2
  7317. prom %26.1 = MkArg missing, Prom(5), e22.2
  7318. fs %26.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7319. fs %26.3 = FrameState 0x7f924457f3d0+410: [], env=e22.2, next=%26.2
  7320. val^ %26.4 = Call %26.0(%26.1) %26.3, e22.2
  7321. goto BB27
  7322. BB24
  7323. cls %24.0 = LdFun vector, e22.2
  7324. str$' %24.1 = LdConst [1] "list"
  7325. prom %24.2 = MkArg %24.1, Prom(6), e22.2
  7326. real$' %24.3 = LdConst [1] 4
  7327. prom %24.4 = MkArg %24.3, Prom(7), e22.2
  7328. cls' %24.5 = LdConst function (mode = "logical", length = ...
  7329. cp %24.6 = Checkpoint -> BB29 (by default) | BB25 (if coming from expect)
  7330. BB27
  7331. val^ %27.0 = Phi %33.0:BB37, %26.4:BB26
  7332. val %27.1 = Force %27.0, e22.2
  7333. goto BB21
  7334. BB29
  7335. t %29.0 = Identical %24.0, %24.5
  7336. void Assume %29.0, %24.6
  7337. fs %29.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7338. fs %29.3 = FrameState 0x7f924457f3d0+138: [], env=e22.2, next=%29.2
  7339. goto BB30
  7340. BB25
  7341. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7342. fs %25.1 = FrameState 0x7f924457f3d0+113: [%24.0], env=e22.2, next=%25.0
  7343. void Deopt %25.1
  7344. BB21
  7345. val^? %21.0 = LdVar array, e0.2
  7346. val %21.1 = Force %21.0, e0.2
  7347. val^? %21.2 = LdVar i, e0.2
  7348. val %21.3 = Force %21.2, e0.2
  7349. val^ %21.4 = EnsureNamed %27.1
  7350. val %21.5 = Force %21.4, e0.2
  7351. val %21.6 = Subassign2_1D %21.5, %21.1, %21.3, e0.2
  7352. void StVar array, %21.6, e0.2
  7353. goto BB8
  7354. BB30
  7355. env e30.0 = MkEnv mode=%24.1, length=%24.3, parent=<environment: namespace:base>
  7356. real$' %30.1 = Force %24.3, e30.0
  7357. val %30.2 = CallSafeBuiltin vector(%24.1, %30.1)
  7358. goto BB31
  7359. BB31
  7360. val^ %31.0 = SetShared %30.2
  7361. val %31.1 = Force %31.0, e22.2
  7362. void StVar array, %31.1, e22.2
  7363. real$' %31.3 = LdConst [1] 1
  7364. real$' %31.4 = LdConst [1] 4
  7365. cp %31.5 = Checkpoint -> BB32 (by default) | BB35 (if coming from expect)
  7366. BB32
  7367. val' %32.0 = Colon %31.3, %31.4, elided
  7368. val' %32.1 = SetShared %32.0
  7369. int$' %32.2 = ForSeqSize %32.1
  7370. int$' %32.3 = LdConst [1] 0
  7371. goto BB33
  7372. BB35
  7373. fs %35.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7374. fs %35.1 = FrameState 0x7f924457f3d0+192: [%31.3, %31.4], env=e22.2, next=%35.0
  7375. void Deopt %35.1
  7376. BB33
  7377. val %33.0 = Phi %31.1:BB31, %42.7:BB42
  7378. int$' %33.1 = Phi %32.3:BB32, %33.3:BB42
  7379. int$' %33.2 = Inc %33.1
  7380. int$' %33.3 = EnsureNamed %33.2
  7381. cp %33.4 = Checkpoint -> BB34 (by default) | BB36 (if coming from expect)
  7382. BB34
  7383. lgl' %34.0 = Lt %32.2, %33.3, elided
  7384. t %34.1 = AsTest %34.0
  7385. void Branch %34.1 -> BB37 (if true) | BB38 (if false)
  7386. BB36
  7387. fs %36.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7388. fs %36.1 = FrameState 0x7f924457f3d0+203: [%32.1, %32.2, %33.3, %32.2, %33.3], env=e22.2, next=%36.0
  7389. void Deopt %36.1
  7390. BB37
  7391. goto BB27
  7392. BB38
  7393. cp %38.0 = Checkpoint -> BB39 (by default) | BB40 (if coming from expect)
  7394. BB39
  7395. val$ %39.0 = Extract2_1D %32.1, %33.3, e22.2
  7396. void StVar i, %39.0, e22.2
  7397. cls %39.2 = LdFun buildTreeDepth, e22.2
  7398. prom %39.3 = MkArg missing, Prom(8), e22.2
  7399. prom %39.4 = MkArg missing, Prom(9), e22.2
  7400. cls' %39.5 = LdConst function (depth, random) { if (d...
  7401. cp %39.6 = Checkpoint -> BB41 (by default) | BB43 (if coming from expect)
  7402. BB40
  7403. fs %40.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7404. fs %40.1 = FrameState 0x7f924457f3d0+219: [%32.1, %32.2, %33.3, %32.1, %33.3], env=e22.2, next=%40.0
  7405. void Deopt %40.1
  7406. BB41
  7407. t %41.0 = Identical %39.2, %39.5
  7408. void Assume %41.0, %39.6
  7409. fs %41.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7410. fs %41.3 = FrameState 0x7f924457f3d0+290: [%32.1, %32.2, %33.3], env=e22.2, next=%41.2
  7411. goto BB42
  7412. BB43
  7413. fs %43.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  7414. fs %43.1 = FrameState 0x7f924457f3d0+273: [%32.1, %32.2, %33.3, %39.2], env=e22.2, next=%43.0
  7415. void Deopt %43.1
  7416. BB42
  7417. val^ %42.0 = StaticCall buildTreeDepth[0x7f92446010b0](%39.3, %39.4) %41.3, e22.2
  7418. val^? %42.1 = LdVar array, e22.2
  7419. val %42.2 = Force %42.1, e22.2
  7420. val^? %42.3 = LdVar i, e22.2
  7421. val %42.4 = Force %42.3, e22.2
  7422. val^ %42.5 = EnsureNamed %42.0
  7423. val %42.6 = Force %42.5, e22.2
  7424. val %42.7 = Subassign2_1D %42.6, %42.2, %42.4, e22.2
  7425. void StVar array, %42.7, e22.2
  7426. goto BB33
  7427. Prom 0:
  7428. BB0
  7429. env e0.0 = LdFunctionEnv
  7430. str$' %0.1 = LdConst [1] "list"
  7431. void Return %0.1
  7432. Prom 1:
  7433. BB0
  7434. env e0.0 = LdFunctionEnv
  7435. real$' %0.1 = LdConst [1] 4
  7436. void Return %0.1
  7437. Prom 2:
  7438. BB0
  7439. env e0.0 = LdFunctionEnv
  7440. val^? %0.1 = LdVar depth, e0.0
  7441. val %0.2 = Force %0.1, e0.0
  7442. real$' %0.3 = LdConst [1] 1
  7443. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7444. BB2
  7445. val %2.0 = Sub %0.2, %0.3, e0.0
  7446. void Return %2.0
  7447. BB1
  7448. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  7449. void Deopt %1.0
  7450. Prom 3:
  7451. BB0
  7452. env e0.0 = LdFunctionEnv
  7453. val^? %0.1 = LdVar random, e0.0
  7454. val %0.2 = Force %0.1, e0.0
  7455. void Return %0.2
  7456. Prom 4:
  7457. BB0
  7458. env e0.0 = LdFunctionEnv
  7459. cls %0.1 = LdFun nextRandom, e0.0
  7460. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  7461. t %0.3 = Identical %0.1, %0.2
  7462. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7463. BB2
  7464. void Assume %0.3, %0.4
  7465. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  7466. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  7467. real$' %2.3 = LdConst [1] 10
  7468. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  7469. BB1
  7470. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  7471. void Deopt %1.0
  7472. BB4
  7473. val %4.0 = Force %2.2, e0.0
  7474. val %4.1 = Mod %4.0, %2.3, e0.0
  7475. real$' %4.2 = LdConst [1] 1
  7476. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  7477. BB3
  7478. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  7479. void Deopt %3.0
  7480. BB6
  7481. val %6.0 = Add %4.1, %4.2, e0.0
  7482. void Return %6.0
  7483. BB5
  7484. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  7485. void Deopt %5.0
  7486. Prom 5:
  7487. BB0
  7488. env e0.0 = LdFunctionEnv
  7489. cls %0.1 = LdFun nextRandom, e0.0
  7490. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  7491. t %0.3 = Identical %0.1, %0.2
  7492. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  7493. BB1
  7494. void Assume %0.3, %0.4
  7495. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  7496. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  7497. real$' %1.3 = LdConst [1] 10
  7498. cp %1.4 = Checkpoint -> BB3 (by default) | BB6 (if coming from expect)
  7499. BB2
  7500. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  7501. void Deopt %2.0
  7502. BB3
  7503. val %3.0 = Force %1.2, e0.0
  7504. val %3.1 = Mod %3.0, %1.3, e0.0
  7505. real$' %3.2 = LdConst [1] 1
  7506. cp %3.3 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  7507. BB6
  7508. fs %6.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  7509. void Deopt %6.0
  7510. BB5
  7511. val %5.0 = Add %3.1, %3.2, e0.0
  7512. void Return %5.0
  7513. BB4
  7514. fs %4.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  7515. void Deopt %4.0
  7516. Prom 6:
  7517. BB0
  7518. env e0.0 = LdFunctionEnv
  7519. str$' %0.1 = LdConst [1] "list"
  7520. void Return %0.1
  7521. Prom 7:
  7522. BB0
  7523. env e0.0 = LdFunctionEnv
  7524. real$' %0.1 = LdConst [1] 4
  7525. void Return %0.1
  7526. Prom 8:
  7527. BB0
  7528. env e0.0 = LdFunctionEnv
  7529. val^? %0.1 = LdVar depth, e0.0
  7530. val %0.2 = Force %0.1, e0.0
  7531. real$' %0.3 = LdConst [1] 1
  7532. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  7533. BB1
  7534. val %1.0 = Sub %0.2, %0.3, e0.0
  7535. void Return %1.0
  7536. BB2
  7537. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  7538. void Deopt %2.0
  7539. Prom 9:
  7540. BB0
  7541. env e0.0 = LdFunctionEnv
  7542. val^? %0.1 = LdVar random, e0.0
  7543. val %0.2 = Force %0.1, e0.0
  7544. void Return %0.2
  7545. ├────── Cleanup redundant operations: == 84
  7546. buildTreeDepth[0x7f92446010b0]
  7547. BB0
  7548. val^ %0.0 = LdArg 0
  7549. val^ %0.1 = LdArg 1
  7550. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  7551. val %0.3 = Force! %0.0, e0.2
  7552. real$' %0.4 = LdConst [1] 1
  7553. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7554. BB2
  7555. lgl %2.0 = Eq %0.3, %0.4, e0.2
  7556. lgl %2.1 = AsLogical %2.0
  7557. t %2.2 = AsTest %2.1
  7558. void Branch %2.2 -> BB39 (if true) | BB3 (if false)
  7559. BB1
  7560. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  7561. void Deopt %1.0
  7562. BB39
  7563. cls %39.0 = LdFun c, e0.2
  7564. prom %39.1 = MkArg missing, Prom(4), e0.2
  7565. fs %39.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  7566. val^ %39.3 = Call %39.0(%39.1) %39.2, e0.2
  7567. goto BB40
  7568. BB3
  7569. cls %3.0 = LdFun vector, e0.2
  7570. str$' %3.1 = LdConst [1] "list"
  7571. real$' %3.2 = LdConst [1] 4
  7572. cls' %3.3 = LdConst function (mode = "logical", length = ...
  7573. cp %3.4 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  7574. BB40
  7575. val^ %40.0 = Phi %9.0:BB38, %39.3:BB39
  7576. val %40.1 = Force %40.0, e0.2
  7577. void Return %40.1
  7578. BB5
  7579. t %5.0 = Identical %3.0, %3.3
  7580. void Assume %5.0, %3.4
  7581. val %5.2 = CallSafeBuiltin vector(%3.1, %3.2)
  7582. goto BB6
  7583. BB4
  7584. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  7585. void Deopt %4.0
  7586. BB6
  7587. val %6.0 = SetShared %5.2
  7588. void StVar array, %5.2, e0.2
  7589. real$' %6.2 = LdConst [1] 1
  7590. real$' %6.3 = LdConst [1] 4
  7591. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  7592. BB8
  7593. val' %8.0 = Colon %6.2, %6.3, elided
  7594. val' %8.1 = SetShared %8.0
  7595. int$' %8.2 = ForSeqSize %8.1
  7596. int$' %8.3 = LdConst [1] 0
  7597. goto BB9
  7598. BB7
  7599. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  7600. void Deopt %7.0
  7601. BB9
  7602. val %9.0 = Phi %5.2:BB6, %42.5:BB42
  7603. int$' %9.1 = Phi %8.3:BB8, %9.3:BB42
  7604. int$' %9.2 = Inc %9.1
  7605. int$' %9.3 = EnsureNamed %9.2
  7606. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  7607. BB11
  7608. lgl' %11.0 = Lt %8.2, %9.3, elided
  7609. t %11.1 = AsTest %11.0
  7610. void Branch %11.1 -> BB38 (if true) | BB12 (if false)
  7611. BB10
  7612. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  7613. void Deopt %10.0
  7614. BB38
  7615. goto BB40
  7616. BB12
  7617. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  7618. BB14
  7619. val$ %14.0 = Extract2_1D %8.1, %9.3, e0.2
  7620. void StVar i, %14.0, e0.2
  7621. cls %14.2 = LdFun buildTreeDepth, e0.2
  7622. prom %14.3 = MkArg missing, Prom(2), e0.2
  7623. prom %14.4 = MkArg missing, Prom(3), e0.2
  7624. cls' %14.5 = LdConst function (depth, random) { if (d...
  7625. cp %14.6 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  7626. BB13
  7627. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  7628. void Deopt %13.0
  7629. BB16
  7630. t %16.0 = Identical %14.2, %14.5
  7631. void Assume %16.0, %14.6
  7632. goto BB17
  7633. BB15
  7634. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  7635. void Deopt %15.0
  7636. BB17
  7637. val^? %17.0 = CastType %14.3
  7638. val^? %17.1 = CastType %14.4
  7639. env e17.2 = MkEnv depth=%17.0, random=%17.1, parent=<environment: 0x7f9246b48c88>
  7640. val %17.3 = Force %17.0, e17.2
  7641. real$' %17.4 = LdConst [1] 1
  7642. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  7643. BB19
  7644. lgl %19.0 = Eq %17.3, %17.4, e17.2
  7645. lgl %19.1 = AsLogical %19.0
  7646. t %19.2 = AsTest %19.1
  7647. void Branch %19.2 -> BB37 (if true) | BB20 (if false)
  7648. BB18
  7649. fs %18.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7650. fs %18.1 = FrameState 0x7f924457f3d0+58: [%17.3, %17.4], env=e17.2, next=%18.0
  7651. void Deopt %18.1
  7652. BB37
  7653. cls %37.0 = LdFun c, e17.2
  7654. prom %37.1 = MkArg missing, Prom(5), e17.2
  7655. fs %37.2 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7656. fs %37.3 = FrameState 0x7f924457f3d0+410: [], env=e17.2, next=%37.2
  7657. val^ %37.4 = Call %37.0(%37.1) %37.3, e17.2
  7658. goto BB41
  7659. BB20
  7660. cls %20.0 = LdFun vector, e17.2
  7661. str$' %20.1 = LdConst [1] "list"
  7662. real$' %20.2 = LdConst [1] 4
  7663. cls' %20.3 = LdConst function (mode = "logical", length = ...
  7664. cp %20.4 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  7665. BB41
  7666. val^ %41.0 = Phi %27.0:BB36, %37.4:BB37
  7667. val %41.1 = Force %41.0, e17.2
  7668. goto BB42
  7669. BB22
  7670. t %22.0 = Identical %20.0, %20.3
  7671. void Assume %22.0, %20.4
  7672. fs %22.2 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7673. goto BB23
  7674. BB21
  7675. fs %21.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7676. fs %21.1 = FrameState 0x7f924457f3d0+113: [%20.0], env=e17.2, next=%21.0
  7677. void Deopt %21.1
  7678. BB42
  7679. val^? %42.0 = LdVar array, e0.2
  7680. val %42.1 = Force %42.0, e0.2
  7681. val^? %42.2 = LdVar i, e0.2
  7682. val %42.3 = Force %42.2, e0.2
  7683. val %42.4 = EnsureNamed %41.1
  7684. val %42.5 = Subassign2_1D %42.4, %42.1, %42.3, e0.2
  7685. void StVar array, %42.5, e0.2
  7686. goto BB9
  7687. BB23
  7688. env e23.0 = MkEnv mode=%20.1, length=%20.2, parent=<environment: namespace:base>
  7689. val %23.1 = CallSafeBuiltin vector(%20.1, %20.2)
  7690. goto BB24
  7691. BB24
  7692. val %24.0 = SetShared %23.1
  7693. void StVar array, %23.1, e17.2
  7694. real$' %24.2 = LdConst [1] 1
  7695. real$' %24.3 = LdConst [1] 4
  7696. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  7697. BB26
  7698. val' %26.0 = Colon %24.2, %24.3, elided
  7699. val' %26.1 = SetShared %26.0
  7700. int$' %26.2 = ForSeqSize %26.1
  7701. int$' %26.3 = LdConst [1] 0
  7702. goto BB27
  7703. BB25
  7704. fs %25.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7705. fs %25.1 = FrameState 0x7f924457f3d0+192: [%24.2, %24.3], env=e17.2, next=%25.0
  7706. void Deopt %25.1
  7707. BB27
  7708. val %27.0 = Phi %23.1:BB24, %35.7:BB35
  7709. int$' %27.1 = Phi %26.3:BB26, %27.3:BB35
  7710. int$' %27.2 = Inc %27.1
  7711. int$' %27.3 = EnsureNamed %27.2
  7712. cp %27.4 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  7713. BB29
  7714. lgl' %29.0 = Lt %26.2, %27.3, elided
  7715. t %29.1 = AsTest %29.0
  7716. void Branch %29.1 -> BB36 (if true) | BB30 (if false)
  7717. BB28
  7718. fs %28.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7719. fs %28.1 = FrameState 0x7f924457f3d0+203: [%26.1, %26.2, %27.3, %26.2, %27.3], env=e17.2, next=%28.0
  7720. void Deopt %28.1
  7721. BB36
  7722. goto BB41
  7723. BB30
  7724. cp %30.0 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  7725. BB32
  7726. val$ %32.0 = Extract2_1D %26.1, %27.3, e17.2
  7727. void StVar i, %32.0, e17.2
  7728. cls %32.2 = LdFun buildTreeDepth, e17.2
  7729. prom %32.3 = MkArg missing, Prom(8), e17.2
  7730. prom %32.4 = MkArg missing, Prom(9), e17.2
  7731. cls' %32.5 = LdConst function (depth, random) { if (d...
  7732. cp %32.6 = Checkpoint -> BB34 (by default) | BB33 (if coming from expect)
  7733. BB31
  7734. fs %31.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7735. fs %31.1 = FrameState 0x7f924457f3d0+219: [%26.1, %26.2, %27.3, %26.1, %27.3], env=e17.2, next=%31.0
  7736. void Deopt %31.1
  7737. BB34
  7738. t %34.0 = Identical %32.2, %32.5
  7739. void Assume %34.0, %32.6
  7740. fs %34.2 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7741. fs %34.3 = FrameState 0x7f924457f3d0+290: [%26.1, %26.2, %27.3], env=e17.2, next=%34.2
  7742. goto BB35
  7743. BB33
  7744. fs %33.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7745. fs %33.1 = FrameState 0x7f924457f3d0+273: [%26.1, %26.2, %27.3, %32.2], env=e17.2, next=%33.0
  7746. void Deopt %33.1
  7747. BB35
  7748. val^ %35.0 = StaticCall buildTreeDepth[0x7f92446010b0](%32.3, %32.4) %34.3, e17.2
  7749. val^? %35.1 = LdVar array, e17.2
  7750. val %35.2 = Force %35.1, e17.2
  7751. val^? %35.3 = LdVar i, e17.2
  7752. val %35.4 = Force %35.3, e17.2
  7753. val^ %35.5 = EnsureNamed %35.0
  7754. val %35.6 = Force %35.5, e17.2
  7755. val %35.7 = Subassign2_1D %35.6, %35.2, %35.4, e17.2
  7756. void StVar array, %35.7, e17.2
  7757. goto BB27
  7758. Prom 2:
  7759. BB0
  7760. env e0.0 = LdFunctionEnv
  7761. val^? %0.1 = LdVar depth, e0.0
  7762. val %0.2 = Force %0.1, e0.0
  7763. real$' %0.3 = LdConst [1] 1
  7764. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7765. BB2
  7766. val %2.0 = Sub %0.2, %0.3, e0.0
  7767. void Return %2.0
  7768. BB1
  7769. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  7770. void Deopt %1.0
  7771. Prom 3:
  7772. BB0
  7773. env e0.0 = LdFunctionEnv
  7774. val^? %0.1 = LdVar random, e0.0
  7775. val %0.2 = Force %0.1, e0.0
  7776. void Return %0.2
  7777. Prom 4:
  7778. BB0
  7779. env e0.0 = LdFunctionEnv
  7780. cls %0.1 = LdFun nextRandom, e0.0
  7781. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  7782. t %0.3 = Identical %0.1, %0.2
  7783. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7784. BB2
  7785. void Assume %0.3, %0.4
  7786. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  7787. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  7788. real$' %2.3 = LdConst [1] 10
  7789. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  7790. BB1
  7791. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  7792. void Deopt %1.0
  7793. BB4
  7794. val %4.0 = Force %2.2, e0.0
  7795. val %4.1 = Mod %4.0, %2.3, e0.0
  7796. real$' %4.2 = LdConst [1] 1
  7797. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  7798. BB3
  7799. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  7800. void Deopt %3.0
  7801. BB6
  7802. val %6.0 = Add %4.1, %4.2, e0.0
  7803. void Return %6.0
  7804. BB5
  7805. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  7806. void Deopt %5.0
  7807. Prom 5:
  7808. BB0
  7809. env e0.0 = LdFunctionEnv
  7810. cls %0.1 = LdFun nextRandom, e0.0
  7811. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  7812. t %0.3 = Identical %0.1, %0.2
  7813. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7814. BB2
  7815. void Assume %0.3, %0.4
  7816. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  7817. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  7818. real$' %2.3 = LdConst [1] 10
  7819. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  7820. BB1
  7821. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  7822. void Deopt %1.0
  7823. BB4
  7824. val %4.0 = Force %2.2, e0.0
  7825. val %4.1 = Mod %4.0, %2.3, e0.0
  7826. real$' %4.2 = LdConst [1] 1
  7827. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  7828. BB3
  7829. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  7830. void Deopt %3.0
  7831. BB6
  7832. val %6.0 = Add %4.1, %4.2, e0.0
  7833. void Return %6.0
  7834. BB5
  7835. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  7836. void Deopt %5.0
  7837. Prom 8:
  7838. BB0
  7839. env e0.0 = LdFunctionEnv
  7840. val^? %0.1 = LdVar depth, e0.0
  7841. val %0.2 = Force %0.1, e0.0
  7842. real$' %0.3 = LdConst [1] 1
  7843. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7844. BB2
  7845. val %2.0 = Sub %0.2, %0.3, e0.0
  7846. void Return %2.0
  7847. BB1
  7848. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  7849. void Deopt %1.0
  7850. Prom 9:
  7851. BB0
  7852. env e0.0 = LdFunctionEnv
  7853. val^? %0.1 = LdVar random, e0.0
  7854. val %0.2 = Force %0.1, e0.0
  7855. void Return %0.2
  7856. ├────── Delay instructions: == 91
  7857. buildTreeDepth[0x7f92446010b0]
  7858. BB0
  7859. val^ %0.0 = LdArg 0
  7860. val^ %0.1 = LdArg 1
  7861. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  7862. val %0.3 = Force! %0.0, e0.2
  7863. real$' %0.4 = LdConst [1] 1
  7864. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  7865. BB2
  7866. lgl %2.0 = Eq %0.3, %0.4, e0.2
  7867. lgl %2.1 = AsLogical %2.0
  7868. t %2.2 = AsTest %2.1
  7869. void Branch %2.2 -> BB39 (if true) | BB3 (if false)
  7870. BB1
  7871. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  7872. void Deopt %1.0
  7873. BB39
  7874. cls %39.0 = LdFun c, e0.2
  7875. prom %39.1 = MkArg missing, Prom(4), e0.2
  7876. fs %39.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  7877. val^ %39.3 = Call %39.0(%39.1) %39.2, e0.2
  7878. goto BB40
  7879. BB3
  7880. cls %3.0 = LdFun vector, e0.2
  7881. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  7882. BB40
  7883. val^ %40.0 = Phi %9.0:BB38, %39.3:BB39
  7884. val %40.1 = Force %40.0, e0.2
  7885. void Return %40.1
  7886. BB5
  7887. real$' %5.0 = LdConst [1] 4
  7888. cls' %5.1 = LdConst function (mode = "logical", length = ...
  7889. t %5.2 = Identical %3.0, %5.1
  7890. void Assume %5.2, %3.1
  7891. str$' %5.4 = LdConst [1] "list"
  7892. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  7893. goto BB6
  7894. BB4
  7895. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  7896. void Deopt %4.0
  7897. BB6
  7898. val %6.0 = SetShared %5.5
  7899. void StVar array, %5.5, e0.2
  7900. real$' %6.2 = LdConst [1] 1
  7901. real$' %6.3 = LdConst [1] 4
  7902. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  7903. BB8
  7904. val' %8.0 = Colon %6.2, %6.3, elided
  7905. val' %8.1 = SetShared %8.0
  7906. int$' %8.2 = ForSeqSize %8.1
  7907. int$' %8.3 = LdConst [1] 0
  7908. goto BB9
  7909. BB7
  7910. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  7911. void Deopt %7.0
  7912. BB9
  7913. val %9.0 = Phi %5.5:BB6, %42.5:BB42
  7914. int$' %9.1 = Phi %8.3:BB8, %9.3:BB42
  7915. int$' %9.2 = Inc %9.1
  7916. int$' %9.3 = EnsureNamed %9.2
  7917. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  7918. BB11
  7919. lgl' %11.0 = Lt %8.2, %9.3, elided
  7920. t %11.1 = AsTest %11.0
  7921. void Branch %11.1 -> BB38 (if true) | BB12 (if false)
  7922. BB10
  7923. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  7924. void Deopt %10.0
  7925. BB38
  7926. goto BB40
  7927. BB12
  7928. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  7929. BB14
  7930. val$ %14.0 = Extract2_1D %8.1, %9.3, e0.2
  7931. void StVar i, %14.0, e0.2
  7932. cls %14.2 = LdFun buildTreeDepth, e0.2
  7933. prom %14.3 = MkArg missing, Prom(2), e0.2
  7934. prom %14.4 = MkArg missing, Prom(3), e0.2
  7935. cp %14.5 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  7936. BB13
  7937. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  7938. void Deopt %13.0
  7939. BB16
  7940. cls' %16.0 = LdConst function (depth, random) { if (d...
  7941. t %16.1 = Identical %14.2, %16.0
  7942. void Assume %16.1, %14.5
  7943. goto BB17
  7944. BB15
  7945. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  7946. void Deopt %15.0
  7947. BB17
  7948. val^? %17.0 = CastType %14.3
  7949. val^? %17.1 = CastType %14.4
  7950. env e17.2 = MkEnv depth=%17.0, random=%17.1, parent=<environment: 0x7f9246b48c88>
  7951. val %17.3 = Force %17.0, e17.2
  7952. real$' %17.4 = LdConst [1] 1
  7953. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  7954. BB19
  7955. lgl %19.0 = Eq %17.3, %17.4, e17.2
  7956. lgl %19.1 = AsLogical %19.0
  7957. t %19.2 = AsTest %19.1
  7958. void Branch %19.2 -> BB37 (if true) | BB20 (if false)
  7959. BB18
  7960. fs %18.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7961. fs %18.1 = FrameState 0x7f924457f3d0+58: [%17.3, %17.4], env=e17.2, next=%18.0
  7962. void Deopt %18.1
  7963. BB37
  7964. cls %37.0 = LdFun c, e17.2
  7965. prom %37.1 = MkArg missing, Prom(5), e17.2
  7966. fs %37.2 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7967. fs %37.3 = FrameState 0x7f924457f3d0+410: [], env=e17.2, next=%37.2
  7968. val^ %37.4 = Call %37.0(%37.1) %37.3, e17.2
  7969. goto BB41
  7970. BB20
  7971. cls %20.0 = LdFun vector, e17.2
  7972. str$' %20.1 = LdConst [1] "list"
  7973. real$' %20.2 = LdConst [1] 4
  7974. cp %20.3 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  7975. BB41
  7976. val^ %41.0 = Phi %27.0:BB36, %37.4:BB37
  7977. val %41.1 = Force %41.0, e17.2
  7978. goto BB42
  7979. BB22
  7980. cls' %22.0 = LdConst function (mode = "logical", length = ...
  7981. t %22.1 = Identical %20.0, %22.0
  7982. void Assume %22.1, %20.3
  7983. fs %22.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7984. goto BB23
  7985. BB21
  7986. fs %21.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  7987. fs %21.1 = FrameState 0x7f924457f3d0+113: [%20.0], env=e17.2, next=%21.0
  7988. void Deopt %21.1
  7989. BB42
  7990. val^? %42.0 = LdVar array, e0.2
  7991. val %42.1 = Force %42.0, e0.2
  7992. val^? %42.2 = LdVar i, e0.2
  7993. val %42.3 = Force %42.2, e0.2
  7994. val %42.4 = EnsureNamed %41.1
  7995. val %42.5 = Subassign2_1D %42.4, %42.1, %42.3, e0.2
  7996. void StVar array, %42.5, e0.2
  7997. goto BB9
  7998. BB23
  7999. env e23.0 = MkEnv mode=%20.1, length=%20.2, parent=<environment: namespace:base>
  8000. val %23.1 = CallSafeBuiltin vector(%20.1, %20.2)
  8001. goto BB24
  8002. BB24
  8003. val %24.0 = SetShared %23.1
  8004. void StVar array, %23.1, e17.2
  8005. real$' %24.2 = LdConst [1] 1
  8006. real$' %24.3 = LdConst [1] 4
  8007. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  8008. BB26
  8009. val' %26.0 = Colon %24.2, %24.3, elided
  8010. val' %26.1 = SetShared %26.0
  8011. int$' %26.2 = ForSeqSize %26.1
  8012. int$' %26.3 = LdConst [1] 0
  8013. goto BB27
  8014. BB25
  8015. fs %25.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8016. fs %25.1 = FrameState 0x7f924457f3d0+192: [%24.2, %24.3], env=e17.2, next=%25.0
  8017. void Deopt %25.1
  8018. BB27
  8019. val %27.0 = Phi %23.1:BB24, %35.7:BB35
  8020. int$' %27.1 = Phi %26.3:BB26, %27.3:BB35
  8021. int$' %27.2 = Inc %27.1
  8022. int$' %27.3 = EnsureNamed %27.2
  8023. cp %27.4 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  8024. BB29
  8025. lgl' %29.0 = Lt %26.2, %27.3, elided
  8026. t %29.1 = AsTest %29.0
  8027. void Branch %29.1 -> BB36 (if true) | BB30 (if false)
  8028. BB28
  8029. fs %28.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8030. fs %28.1 = FrameState 0x7f924457f3d0+203: [%26.1, %26.2, %27.3, %26.2, %27.3], env=e17.2, next=%28.0
  8031. void Deopt %28.1
  8032. BB36
  8033. goto BB41
  8034. BB30
  8035. cp %30.0 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  8036. BB32
  8037. val$ %32.0 = Extract2_1D %26.1, %27.3, e17.2
  8038. void StVar i, %32.0, e17.2
  8039. cls %32.2 = LdFun buildTreeDepth, e17.2
  8040. prom %32.3 = MkArg missing, Prom(8), e17.2
  8041. prom %32.4 = MkArg missing, Prom(9), e17.2
  8042. cp %32.5 = Checkpoint -> BB34 (by default) | BB33 (if coming from expect)
  8043. BB31
  8044. fs %31.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8045. fs %31.1 = FrameState 0x7f924457f3d0+219: [%26.1, %26.2, %27.3, %26.1, %27.3], env=e17.2, next=%31.0
  8046. void Deopt %31.1
  8047. BB34
  8048. cls' %34.0 = LdConst function (depth, random) { if (d...
  8049. t %34.1 = Identical %32.2, %34.0
  8050. void Assume %34.1, %32.5
  8051. fs %34.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8052. fs %34.4 = FrameState 0x7f924457f3d0+290: [%26.1, %26.2, %27.3], env=e17.2, next=%34.3
  8053. goto BB35
  8054. BB33
  8055. fs %33.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8056. fs %33.1 = FrameState 0x7f924457f3d0+273: [%26.1, %26.2, %27.3, %32.2], env=e17.2, next=%33.0
  8057. void Deopt %33.1
  8058. BB35
  8059. val^ %35.0 = StaticCall buildTreeDepth[0x7f92446010b0](%32.3, %32.4) %34.4, e17.2
  8060. val^? %35.1 = LdVar array, e17.2
  8061. val %35.2 = Force %35.1, e17.2
  8062. val^? %35.3 = LdVar i, e17.2
  8063. val %35.4 = Force %35.3, e17.2
  8064. val^ %35.5 = EnsureNamed %35.0
  8065. val %35.6 = Force %35.5, e17.2
  8066. val %35.7 = Subassign2_1D %35.6, %35.2, %35.4, e17.2
  8067. void StVar array, %35.7, e17.2
  8068. goto BB27
  8069. Prom 2:
  8070. BB0
  8071. env e0.0 = LdFunctionEnv
  8072. val^? %0.1 = LdVar depth, e0.0
  8073. val %0.2 = Force %0.1, e0.0
  8074. real$' %0.3 = LdConst [1] 1
  8075. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8076. BB2
  8077. val %2.0 = Sub %0.2, %0.3, e0.0
  8078. void Return %2.0
  8079. BB1
  8080. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  8081. void Deopt %1.0
  8082. Prom 3:
  8083. BB0
  8084. env e0.0 = LdFunctionEnv
  8085. val^? %0.1 = LdVar random, e0.0
  8086. val %0.2 = Force %0.1, e0.0
  8087. void Return %0.2
  8088. Prom 4:
  8089. BB0
  8090. env e0.0 = LdFunctionEnv
  8091. cls %0.1 = LdFun nextRandom, e0.0
  8092. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  8093. t %0.3 = Identical %0.1, %0.2
  8094. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8095. BB2
  8096. void Assume %0.3, %0.4
  8097. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  8098. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  8099. real$' %2.3 = LdConst [1] 10
  8100. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  8101. BB1
  8102. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  8103. void Deopt %1.0
  8104. BB4
  8105. val %4.0 = Force %2.2, e0.0
  8106. val %4.1 = Mod %4.0, %2.3, e0.0
  8107. real$' %4.2 = LdConst [1] 1
  8108. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  8109. BB3
  8110. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  8111. void Deopt %3.0
  8112. BB6
  8113. val %6.0 = Add %4.1, %4.2, e0.0
  8114. void Return %6.0
  8115. BB5
  8116. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  8117. void Deopt %5.0
  8118. Prom 5:
  8119. BB0
  8120. env e0.0 = LdFunctionEnv
  8121. cls %0.1 = LdFun nextRandom, e0.0
  8122. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  8123. t %0.3 = Identical %0.1, %0.2
  8124. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8125. BB2
  8126. void Assume %0.3, %0.4
  8127. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  8128. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  8129. real$' %2.3 = LdConst [1] 10
  8130. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  8131. BB1
  8132. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  8133. void Deopt %1.0
  8134. BB4
  8135. val %4.0 = Force %2.2, e0.0
  8136. val %4.1 = Mod %4.0, %2.3, e0.0
  8137. real$' %4.2 = LdConst [1] 1
  8138. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  8139. BB3
  8140. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  8141. void Deopt %3.0
  8142. BB6
  8143. val %6.0 = Add %4.1, %4.2, e0.0
  8144. void Return %6.0
  8145. BB5
  8146. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  8147. void Deopt %5.0
  8148. Prom 8:
  8149. BB0
  8150. env e0.0 = LdFunctionEnv
  8151. val^? %0.1 = LdVar depth, e0.0
  8152. val %0.2 = Force %0.1, e0.0
  8153. real$' %0.3 = LdConst [1] 1
  8154. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8155. BB2
  8156. val %2.0 = Sub %0.2, %0.3, e0.0
  8157. void Return %2.0
  8158. BB1
  8159. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  8160. void Deopt %1.0
  8161. Prom 9:
  8162. BB0
  8163. env e0.0 = LdFunctionEnv
  8164. val^? %0.1 = LdVar random, e0.0
  8165. val %0.2 = Force %0.1, e0.0
  8166. void Return %0.2
  8167. ├────── Elide environments not needed: == 98
  8168. buildTreeDepth[0x7f92446010b0]
  8169. BB0
  8170. val^ %0.0 = LdArg 0
  8171. val^ %0.1 = LdArg 1
  8172. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  8173. val %0.3 = Force! %0.0, e0.2
  8174. real$' %0.4 = LdConst [1] 1
  8175. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8176. BB2
  8177. lgl %2.0 = Eq %0.3, %0.4, e0.2
  8178. lgl %2.1 = AsLogical %2.0
  8179. t %2.2 = AsTest %2.1
  8180. void Branch %2.2 -> BB39 (if true) | BB3 (if false)
  8181. BB1
  8182. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  8183. void Deopt %1.0
  8184. BB39
  8185. cls %39.0 = LdFun c, e0.2
  8186. prom %39.1 = MkArg missing, Prom(4), e0.2
  8187. fs %39.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  8188. val^ %39.3 = Call %39.0(%39.1) %39.2, e0.2
  8189. goto BB40
  8190. BB3
  8191. cls %3.0 = LdFun vector, e0.2
  8192. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  8193. BB40
  8194. val^ %40.0 = Phi %9.0:BB38, %39.3:BB39
  8195. val %40.1 = Force %40.0, e0.2
  8196. void Return %40.1
  8197. BB5
  8198. real$' %5.0 = LdConst [1] 4
  8199. cls' %5.1 = LdConst function (mode = "logical", length = ...
  8200. t %5.2 = Identical %3.0, %5.1
  8201. void Assume %5.2, %3.1
  8202. str$' %5.4 = LdConst [1] "list"
  8203. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  8204. goto BB6
  8205. BB4
  8206. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  8207. void Deopt %4.0
  8208. BB6
  8209. val %6.0 = SetShared %5.5
  8210. void StVar array, %5.5, e0.2
  8211. real$' %6.2 = LdConst [1] 1
  8212. real$' %6.3 = LdConst [1] 4
  8213. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  8214. BB8
  8215. val' %8.0 = Colon %6.2, %6.3, elided
  8216. val' %8.1 = SetShared %8.0
  8217. int$' %8.2 = ForSeqSize %8.1
  8218. int$' %8.3 = LdConst [1] 0
  8219. goto BB9
  8220. BB7
  8221. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  8222. void Deopt %7.0
  8223. BB9
  8224. val %9.0 = Phi %5.5:BB6, %42.5:BB42
  8225. int$' %9.1 = Phi %8.3:BB8, %9.3:BB42
  8226. int$' %9.2 = Inc %9.1
  8227. int$' %9.3 = EnsureNamed %9.2
  8228. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  8229. BB11
  8230. lgl' %11.0 = Lt %8.2, %9.3, elided
  8231. t %11.1 = AsTest %11.0
  8232. void Branch %11.1 -> BB38 (if true) | BB12 (if false)
  8233. BB10
  8234. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  8235. void Deopt %10.0
  8236. BB38
  8237. goto BB40
  8238. BB12
  8239. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  8240. BB14
  8241. val$' %14.0 = Extract2_1D %8.1, %9.3, elided
  8242. void StVar i, %14.0, e0.2
  8243. cls %14.2 = LdFun buildTreeDepth, e0.2
  8244. prom %14.3 = MkArg missing, Prom(2), e0.2
  8245. prom %14.4 = MkArg missing, Prom(3), e0.2
  8246. cp %14.5 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  8247. BB13
  8248. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  8249. void Deopt %13.0
  8250. BB16
  8251. cls' %16.0 = LdConst function (depth, random) { if (d...
  8252. t %16.1 = Identical %14.2, %16.0
  8253. void Assume %16.1, %14.5
  8254. goto BB17
  8255. BB15
  8256. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  8257. void Deopt %15.0
  8258. BB17
  8259. val^? %17.0 = CastType %14.3
  8260. val^? %17.1 = CastType %14.4
  8261. env e17.2 = MkEnv depth=%17.0, random=%17.1, parent=<environment: 0x7f9246b48c88>
  8262. val %17.3 = Force %17.0, e17.2
  8263. real$' %17.4 = LdConst [1] 1
  8264. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  8265. BB19
  8266. lgl %19.0 = Eq %17.3, %17.4, e17.2
  8267. lgl %19.1 = AsLogical %19.0
  8268. t %19.2 = AsTest %19.1
  8269. void Branch %19.2 -> BB37 (if true) | BB20 (if false)
  8270. BB18
  8271. fs %18.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8272. fs %18.1 = FrameState 0x7f924457f3d0+58: [%17.3, %17.4], env=e17.2, next=%18.0
  8273. void Deopt %18.1
  8274. BB37
  8275. cls %37.0 = LdFun c, e17.2
  8276. prom %37.1 = MkArg missing, Prom(5), e17.2
  8277. fs %37.2 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8278. fs %37.3 = FrameState 0x7f924457f3d0+410: [], env=e17.2, next=%37.2
  8279. val^ %37.4 = Call %37.0(%37.1) %37.3, e17.2
  8280. goto BB41
  8281. BB20
  8282. cls %20.0 = LdFun vector, e17.2
  8283. str$' %20.1 = LdConst [1] "list"
  8284. real$' %20.2 = LdConst [1] 4
  8285. cp %20.3 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  8286. BB41
  8287. val^ %41.0 = Phi %27.0:BB36, %37.4:BB37
  8288. val %41.1 = Force %41.0, e17.2
  8289. goto BB42
  8290. BB22
  8291. cls' %22.0 = LdConst function (mode = "logical", length = ...
  8292. t %22.1 = Identical %20.0, %22.0
  8293. void Assume %22.1, %20.3
  8294. fs %22.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8295. goto BB23
  8296. BB21
  8297. fs %21.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8298. fs %21.1 = FrameState 0x7f924457f3d0+113: [%20.0], env=e17.2, next=%21.0
  8299. void Deopt %21.1
  8300. BB42
  8301. val^? %42.0 = LdVar array, e0.2
  8302. val %42.1 = Force %42.0, e0.2
  8303. val^? %42.2 = LdVar i, e0.2
  8304. val %42.3 = Force %42.2, e0.2
  8305. val %42.4 = EnsureNamed %41.1
  8306. val %42.5 = Subassign2_1D %42.4, %42.1, %42.3, e0.2
  8307. void StVar array, %42.5, e0.2
  8308. goto BB9
  8309. BB23
  8310. val %23.0 = CallSafeBuiltin vector(%20.1, %20.2)
  8311. goto BB24
  8312. BB24
  8313. val %24.0 = SetShared %23.0
  8314. void StVar array, %23.0, e17.2
  8315. real$' %24.2 = LdConst [1] 1
  8316. real$' %24.3 = LdConst [1] 4
  8317. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  8318. BB26
  8319. val' %26.0 = Colon %24.2, %24.3, elided
  8320. val' %26.1 = SetShared %26.0
  8321. int$' %26.2 = ForSeqSize %26.1
  8322. int$' %26.3 = LdConst [1] 0
  8323. goto BB27
  8324. BB25
  8325. fs %25.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8326. fs %25.1 = FrameState 0x7f924457f3d0+192: [%24.2, %24.3], env=e17.2, next=%25.0
  8327. void Deopt %25.1
  8328. BB27
  8329. val %27.0 = Phi %23.0:BB24, %35.7:BB35
  8330. int$' %27.1 = Phi %26.3:BB26, %27.3:BB35
  8331. int$' %27.2 = Inc %27.1
  8332. int$' %27.3 = EnsureNamed %27.2
  8333. cp %27.4 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  8334. BB29
  8335. lgl' %29.0 = Lt %26.2, %27.3, elided
  8336. t %29.1 = AsTest %29.0
  8337. void Branch %29.1 -> BB36 (if true) | BB30 (if false)
  8338. BB28
  8339. fs %28.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8340. fs %28.1 = FrameState 0x7f924457f3d0+203: [%26.1, %26.2, %27.3, %26.2, %27.3], env=e17.2, next=%28.0
  8341. void Deopt %28.1
  8342. BB36
  8343. goto BB41
  8344. BB30
  8345. cp %30.0 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  8346. BB32
  8347. val$' %32.0 = Extract2_1D %26.1, %27.3, elided
  8348. void StVar i, %32.0, e17.2
  8349. cls %32.2 = LdFun buildTreeDepth, e17.2
  8350. prom %32.3 = MkArg missing, Prom(8), e17.2
  8351. prom %32.4 = MkArg missing, Prom(9), e17.2
  8352. cp %32.5 = Checkpoint -> BB34 (by default) | BB33 (if coming from expect)
  8353. BB31
  8354. fs %31.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8355. fs %31.1 = FrameState 0x7f924457f3d0+219: [%26.1, %26.2, %27.3, %26.1, %27.3], env=e17.2, next=%31.0
  8356. void Deopt %31.1
  8357. BB34
  8358. cls' %34.0 = LdConst function (depth, random) { if (d...
  8359. t %34.1 = Identical %32.2, %34.0
  8360. void Assume %34.1, %32.5
  8361. fs %34.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8362. fs %34.4 = FrameState 0x7f924457f3d0+290: [%26.1, %26.2, %27.3], env=e17.2, next=%34.3
  8363. goto BB35
  8364. BB33
  8365. fs %33.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8366. fs %33.1 = FrameState 0x7f924457f3d0+273: [%26.1, %26.2, %27.3, %32.2], env=e17.2, next=%33.0
  8367. void Deopt %33.1
  8368. BB35
  8369. val^ %35.0 = StaticCall buildTreeDepth[0x7f92446010b0](%32.3, %32.4) %34.4, e17.2
  8370. val^? %35.1 = LdVar array, e17.2
  8371. val %35.2 = Force %35.1, e17.2
  8372. val^? %35.3 = LdVar i, e17.2
  8373. val %35.4 = Force %35.3, e17.2
  8374. val^ %35.5 = EnsureNamed %35.0
  8375. val %35.6 = Force %35.5, e17.2
  8376. val %35.7 = Subassign2_1D %35.6, %35.2, %35.4, e17.2
  8377. void StVar array, %35.7, e17.2
  8378. goto BB27
  8379. Prom 2:
  8380. BB0
  8381. env e0.0 = LdFunctionEnv
  8382. val^? %0.1 = LdVar depth, e0.0
  8383. val %0.2 = Force %0.1, e0.0
  8384. real$' %0.3 = LdConst [1] 1
  8385. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8386. BB2
  8387. val %2.0 = Sub %0.2, %0.3, e0.0
  8388. void Return %2.0
  8389. BB1
  8390. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  8391. void Deopt %1.0
  8392. Prom 3:
  8393. BB0
  8394. env e0.0 = LdFunctionEnv
  8395. val^? %0.1 = LdVar random, e0.0
  8396. val %0.2 = Force %0.1, e0.0
  8397. void Return %0.2
  8398. Prom 4:
  8399. BB0
  8400. env e0.0 = LdFunctionEnv
  8401. cls %0.1 = LdFun nextRandom, e0.0
  8402. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  8403. t %0.3 = Identical %0.1, %0.2
  8404. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8405. BB2
  8406. void Assume %0.3, %0.4
  8407. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  8408. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  8409. real$' %2.3 = LdConst [1] 10
  8410. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  8411. BB1
  8412. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  8413. void Deopt %1.0
  8414. BB4
  8415. val %4.0 = Force %2.2, e0.0
  8416. val %4.1 = Mod %4.0, %2.3, e0.0
  8417. real$' %4.2 = LdConst [1] 1
  8418. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  8419. BB3
  8420. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  8421. void Deopt %3.0
  8422. BB6
  8423. val %6.0 = Add %4.1, %4.2, e0.0
  8424. void Return %6.0
  8425. BB5
  8426. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  8427. void Deopt %5.0
  8428. Prom 5:
  8429. BB0
  8430. env e0.0 = LdFunctionEnv
  8431. cls %0.1 = LdFun nextRandom, e0.0
  8432. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  8433. t %0.3 = Identical %0.1, %0.2
  8434. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8435. BB2
  8436. void Assume %0.3, %0.4
  8437. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  8438. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  8439. real$' %2.3 = LdConst [1] 10
  8440. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  8441. BB1
  8442. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  8443. void Deopt %1.0
  8444. BB4
  8445. val %4.0 = Force %2.2, e0.0
  8446. val %4.1 = Mod %4.0, %2.3, e0.0
  8447. real$' %4.2 = LdConst [1] 1
  8448. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  8449. BB3
  8450. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  8451. void Deopt %3.0
  8452. BB6
  8453. val %6.0 = Add %4.1, %4.2, e0.0
  8454. void Return %6.0
  8455. BB5
  8456. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  8457. void Deopt %5.0
  8458. Prom 8:
  8459. BB0
  8460. env e0.0 = LdFunctionEnv
  8461. val^? %0.1 = LdVar depth, e0.0
  8462. val %0.2 = Force %0.1, e0.0
  8463. real$' %0.3 = LdConst [1] 1
  8464. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8465. BB2
  8466. val %2.0 = Sub %0.2, %0.3, e0.0
  8467. void Return %2.0
  8468. BB1
  8469. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  8470. void Deopt %1.0
  8471. Prom 9:
  8472. BB0
  8473. env e0.0 = LdFunctionEnv
  8474. val^? %0.1 = LdVar random, e0.0
  8475. val %0.2 = Force %0.1, e0.0
  8476. void Return %0.2
  8477. ├────── Move environment creation as far as possible: == 105
  8478. buildTreeDepth[0x7f92446010b0]
  8479. BB0
  8480. val^ %0.0 = LdArg 0
  8481. val^ %0.1 = LdArg 1
  8482. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  8483. val %0.3 = Force! %0.0, e0.2
  8484. real$' %0.4 = LdConst [1] 1
  8485. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8486. BB2
  8487. lgl %2.0 = Eq %0.3, %0.4, e0.2
  8488. lgl %2.1 = AsLogical %2.0
  8489. t %2.2 = AsTest %2.1
  8490. void Branch %2.2 -> BB39 (if true) | BB3 (if false)
  8491. BB1
  8492. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  8493. void Deopt %1.0
  8494. BB39
  8495. cls %39.0 = LdFun c, e0.2
  8496. prom %39.1 = MkArg missing, Prom(4), e0.2
  8497. fs %39.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  8498. val^ %39.3 = Call %39.0(%39.1) %39.2, e0.2
  8499. goto BB40
  8500. BB3
  8501. cls %3.0 = LdFun vector, e0.2
  8502. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  8503. BB40
  8504. val^ %40.0 = Phi %9.0:BB38, %39.3:BB39
  8505. val %40.1 = Force %40.0, e0.2
  8506. void Return %40.1
  8507. BB5
  8508. real$' %5.0 = LdConst [1] 4
  8509. cls' %5.1 = LdConst function (mode = "logical", length = ...
  8510. t %5.2 = Identical %3.0, %5.1
  8511. void Assume %5.2, %3.1
  8512. str$' %5.4 = LdConst [1] "list"
  8513. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  8514. goto BB6
  8515. BB4
  8516. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  8517. void Deopt %4.0
  8518. BB6
  8519. val %6.0 = SetShared %5.5
  8520. void StVar array, %5.5, e0.2
  8521. real$' %6.2 = LdConst [1] 1
  8522. real$' %6.3 = LdConst [1] 4
  8523. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  8524. BB8
  8525. val' %8.0 = Colon %6.2, %6.3, elided
  8526. val' %8.1 = SetShared %8.0
  8527. int$' %8.2 = ForSeqSize %8.1
  8528. int$' %8.3 = LdConst [1] 0
  8529. goto BB9
  8530. BB7
  8531. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  8532. void Deopt %7.0
  8533. BB9
  8534. val %9.0 = Phi %5.5:BB6, %42.5:BB42
  8535. int$' %9.1 = Phi %8.3:BB8, %9.3:BB42
  8536. int$' %9.2 = Inc %9.1
  8537. int$' %9.3 = EnsureNamed %9.2
  8538. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  8539. BB11
  8540. lgl' %11.0 = Lt %8.2, %9.3, elided
  8541. t %11.1 = AsTest %11.0
  8542. void Branch %11.1 -> BB38 (if true) | BB12 (if false)
  8543. BB10
  8544. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  8545. void Deopt %10.0
  8546. BB38
  8547. goto BB40
  8548. BB12
  8549. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  8550. BB14
  8551. val$' %14.0 = Extract2_1D %8.1, %9.3, elided
  8552. void StVar i, %14.0, e0.2
  8553. cls %14.2 = LdFun buildTreeDepth, e0.2
  8554. prom %14.3 = MkArg missing, Prom(2), e0.2
  8555. prom %14.4 = MkArg missing, Prom(3), e0.2
  8556. cp %14.5 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  8557. BB13
  8558. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  8559. void Deopt %13.0
  8560. BB16
  8561. cls' %16.0 = LdConst function (depth, random) { if (d...
  8562. t %16.1 = Identical %14.2, %16.0
  8563. void Assume %16.1, %14.5
  8564. goto BB17
  8565. BB15
  8566. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  8567. void Deopt %15.0
  8568. BB17
  8569. val^? %17.0 = CastType %14.3
  8570. val^? %17.1 = CastType %14.4
  8571. env e17.2 = MkEnv depth=%17.0, random=%17.1, parent=<environment: 0x7f9246b48c88>
  8572. val %17.3 = Force %17.0, e17.2
  8573. real$' %17.4 = LdConst [1] 1
  8574. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  8575. BB19
  8576. lgl %19.0 = Eq %17.3, %17.4, e17.2
  8577. lgl %19.1 = AsLogical %19.0
  8578. t %19.2 = AsTest %19.1
  8579. void Branch %19.2 -> BB37 (if true) | BB20 (if false)
  8580. BB18
  8581. fs %18.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8582. fs %18.1 = FrameState 0x7f924457f3d0+58: [%17.3, %17.4], env=e17.2, next=%18.0
  8583. void Deopt %18.1
  8584. BB37
  8585. cls %37.0 = LdFun c, e17.2
  8586. prom %37.1 = MkArg missing, Prom(5), e17.2
  8587. fs %37.2 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8588. fs %37.3 = FrameState 0x7f924457f3d0+410: [], env=e17.2, next=%37.2
  8589. val^ %37.4 = Call %37.0(%37.1) %37.3, e17.2
  8590. goto BB41
  8591. BB20
  8592. cls %20.0 = LdFun vector, e17.2
  8593. str$' %20.1 = LdConst [1] "list"
  8594. real$' %20.2 = LdConst [1] 4
  8595. cp %20.3 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  8596. BB41
  8597. val^ %41.0 = Phi %27.0:BB36, %37.4:BB37
  8598. val %41.1 = Force %41.0, e17.2
  8599. goto BB42
  8600. BB22
  8601. cls' %22.0 = LdConst function (mode = "logical", length = ...
  8602. t %22.1 = Identical %20.0, %22.0
  8603. void Assume %22.1, %20.3
  8604. fs %22.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8605. goto BB23
  8606. BB21
  8607. fs %21.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8608. fs %21.1 = FrameState 0x7f924457f3d0+113: [%20.0], env=e17.2, next=%21.0
  8609. void Deopt %21.1
  8610. BB42
  8611. val^? %42.0 = LdVar array, e0.2
  8612. val %42.1 = Force %42.0, e0.2
  8613. val^? %42.2 = LdVar i, e0.2
  8614. val %42.3 = Force %42.2, e0.2
  8615. val %42.4 = EnsureNamed %41.1
  8616. val %42.5 = Subassign2_1D %42.4, %42.1, %42.3, e0.2
  8617. void StVar array, %42.5, e0.2
  8618. goto BB9
  8619. BB23
  8620. val %23.0 = CallSafeBuiltin vector(%20.1, %20.2)
  8621. goto BB24
  8622. BB24
  8623. val %24.0 = SetShared %23.0
  8624. void StVar array, %23.0, e17.2
  8625. real$' %24.2 = LdConst [1] 1
  8626. real$' %24.3 = LdConst [1] 4
  8627. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  8628. BB26
  8629. val' %26.0 = Colon %24.2, %24.3, elided
  8630. val' %26.1 = SetShared %26.0
  8631. int$' %26.2 = ForSeqSize %26.1
  8632. int$' %26.3 = LdConst [1] 0
  8633. goto BB27
  8634. BB25
  8635. fs %25.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8636. fs %25.1 = FrameState 0x7f924457f3d0+192: [%24.2, %24.3], env=e17.2, next=%25.0
  8637. void Deopt %25.1
  8638. BB27
  8639. val %27.0 = Phi %23.0:BB24, %35.7:BB35
  8640. int$' %27.1 = Phi %26.3:BB26, %27.3:BB35
  8641. int$' %27.2 = Inc %27.1
  8642. int$' %27.3 = EnsureNamed %27.2
  8643. cp %27.4 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  8644. BB29
  8645. lgl' %29.0 = Lt %26.2, %27.3, elided
  8646. t %29.1 = AsTest %29.0
  8647. void Branch %29.1 -> BB36 (if true) | BB30 (if false)
  8648. BB28
  8649. fs %28.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8650. fs %28.1 = FrameState 0x7f924457f3d0+203: [%26.1, %26.2, %27.3, %26.2, %27.3], env=e17.2, next=%28.0
  8651. void Deopt %28.1
  8652. BB36
  8653. goto BB41
  8654. BB30
  8655. cp %30.0 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  8656. BB32
  8657. val$' %32.0 = Extract2_1D %26.1, %27.3, elided
  8658. void StVar i, %32.0, e17.2
  8659. cls %32.2 = LdFun buildTreeDepth, e17.2
  8660. prom %32.3 = MkArg missing, Prom(8), e17.2
  8661. prom %32.4 = MkArg missing, Prom(9), e17.2
  8662. cp %32.5 = Checkpoint -> BB34 (by default) | BB33 (if coming from expect)
  8663. BB31
  8664. fs %31.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8665. fs %31.1 = FrameState 0x7f924457f3d0+219: [%26.1, %26.2, %27.3, %26.1, %27.3], env=e17.2, next=%31.0
  8666. void Deopt %31.1
  8667. BB34
  8668. cls' %34.0 = LdConst function (depth, random) { if (d...
  8669. t %34.1 = Identical %32.2, %34.0
  8670. void Assume %34.1, %32.5
  8671. fs %34.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8672. fs %34.4 = FrameState 0x7f924457f3d0+290: [%26.1, %26.2, %27.3], env=e17.2, next=%34.3
  8673. goto BB35
  8674. BB33
  8675. fs %33.0 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  8676. fs %33.1 = FrameState 0x7f924457f3d0+273: [%26.1, %26.2, %27.3, %32.2], env=e17.2, next=%33.0
  8677. void Deopt %33.1
  8678. BB35
  8679. val^ %35.0 = StaticCall buildTreeDepth[0x7f92446010b0](%32.3, %32.4) %34.4, e17.2
  8680. val^? %35.1 = LdVar array, e17.2
  8681. val %35.2 = Force %35.1, e17.2
  8682. val^? %35.3 = LdVar i, e17.2
  8683. val %35.4 = Force %35.3, e17.2
  8684. val^ %35.5 = EnsureNamed %35.0
  8685. val %35.6 = Force %35.5, e17.2
  8686. val %35.7 = Subassign2_1D %35.6, %35.2, %35.4, e17.2
  8687. void StVar array, %35.7, e17.2
  8688. goto BB27
  8689. Prom 2:
  8690. BB0
  8691. env e0.0 = LdFunctionEnv
  8692. val^? %0.1 = LdVar depth, e0.0
  8693. val %0.2 = Force %0.1, e0.0
  8694. real$' %0.3 = LdConst [1] 1
  8695. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8696. BB2
  8697. val %2.0 = Sub %0.2, %0.3, e0.0
  8698. void Return %2.0
  8699. BB1
  8700. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  8701. void Deopt %1.0
  8702. Prom 3:
  8703. BB0
  8704. env e0.0 = LdFunctionEnv
  8705. val^? %0.1 = LdVar random, e0.0
  8706. val %0.2 = Force %0.1, e0.0
  8707. void Return %0.2
  8708. Prom 4:
  8709. BB0
  8710. env e0.0 = LdFunctionEnv
  8711. cls %0.1 = LdFun nextRandom, e0.0
  8712. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  8713. t %0.3 = Identical %0.1, %0.2
  8714. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8715. BB2
  8716. void Assume %0.3, %0.4
  8717. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  8718. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  8719. real$' %2.3 = LdConst [1] 10
  8720. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  8721. BB1
  8722. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  8723. void Deopt %1.0
  8724. BB4
  8725. val %4.0 = Force %2.2, e0.0
  8726. val %4.1 = Mod %4.0, %2.3, e0.0
  8727. real$' %4.2 = LdConst [1] 1
  8728. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  8729. BB3
  8730. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  8731. void Deopt %3.0
  8732. BB6
  8733. val %6.0 = Add %4.1, %4.2, e0.0
  8734. void Return %6.0
  8735. BB5
  8736. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  8737. void Deopt %5.0
  8738. Prom 5:
  8739. BB0
  8740. env e0.0 = LdFunctionEnv
  8741. cls %0.1 = LdFun nextRandom, e0.0
  8742. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  8743. t %0.3 = Identical %0.1, %0.2
  8744. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8745. BB2
  8746. void Assume %0.3, %0.4
  8747. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  8748. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  8749. real$' %2.3 = LdConst [1] 10
  8750. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  8751. BB1
  8752. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  8753. void Deopt %1.0
  8754. BB4
  8755. val %4.0 = Force %2.2, e0.0
  8756. val %4.1 = Mod %4.0, %2.3, e0.0
  8757. real$' %4.2 = LdConst [1] 1
  8758. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  8759. BB3
  8760. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  8761. void Deopt %3.0
  8762. BB6
  8763. val %6.0 = Add %4.1, %4.2, e0.0
  8764. void Return %6.0
  8765. BB5
  8766. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  8767. void Deopt %5.0
  8768. Prom 8:
  8769. BB0
  8770. env e0.0 = LdFunctionEnv
  8771. val^? %0.1 = LdVar depth, e0.0
  8772. val %0.2 = Force %0.1, e0.0
  8773. real$' %0.3 = LdConst [1] 1
  8774. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8775. BB2
  8776. val %2.0 = Sub %0.2, %0.3, e0.0
  8777. void Return %2.0
  8778. BB1
  8779. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  8780. void Deopt %1.0
  8781. Prom 9:
  8782. BB0
  8783. env e0.0 = LdFunctionEnv
  8784. val^? %0.1 = LdVar random, e0.0
  8785. val %0.2 = Force %0.1, e0.0
  8786. void Return %0.2
  8787. ├────── Cleanup redundant operations: == 112
  8788. buildTreeDepth[0x7f92446010b0]
  8789. BB0
  8790. val^ %0.0 = LdArg 0
  8791. val^ %0.1 = LdArg 1
  8792. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  8793. val %0.3 = Force! %0.0, e0.2
  8794. real$' %0.4 = LdConst [1] 1
  8795. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  8796. BB2
  8797. lgl %2.0 = Eq %0.3, %0.4, e0.2
  8798. lgl %2.1 = AsLogical %2.0
  8799. t %2.2 = AsTest %2.1
  8800. void Branch %2.2 -> BB38 (if true) | BB3 (if false)
  8801. BB1
  8802. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  8803. void Deopt %1.0
  8804. BB38
  8805. cls %38.0 = LdFun c, e0.2
  8806. prom %38.1 = MkArg missing, Prom(4), e0.2
  8807. fs %38.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  8808. val^ %38.3 = Call %38.0(%38.1) %38.2, e0.2
  8809. goto BB39
  8810. BB3
  8811. cls %3.0 = LdFun vector, e0.2
  8812. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  8813. BB39
  8814. val^ %39.0 = Phi %8.0:BB37, %38.3:BB38
  8815. val %39.1 = Force %39.0, e0.2
  8816. void Return %39.1
  8817. BB5
  8818. real$' %5.0 = LdConst [1] 4
  8819. cls' %5.1 = LdConst function (mode = "logical", length = ...
  8820. t %5.2 = Identical %3.0, %5.1
  8821. void Assume %5.2, %3.1
  8822. str$' %5.4 = LdConst [1] "list"
  8823. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  8824. void StVar array, %5.5, e0.2
  8825. real$' %5.7 = LdConst [1] 1
  8826. real$' %5.8 = LdConst [1] 4
  8827. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  8828. BB4
  8829. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  8830. void Deopt %4.0
  8831. BB7
  8832. val' %7.0 = Colon %5.7, %5.8, elided
  8833. val' %7.1 = SetShared %7.0
  8834. int$' %7.2 = ForSeqSize %7.1
  8835. int$' %7.3 = LdConst [1] 0
  8836. goto BB8
  8837. BB6
  8838. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  8839. void Deopt %6.0
  8840. BB8
  8841. val %8.0 = Phi %5.5:BB5, %41.5:BB41
  8842. int$' %8.1 = Phi %7.3:BB7, %8.3:BB41
  8843. int$' %8.2 = Inc %8.1
  8844. int$' %8.3 = EnsureNamed %8.2
  8845. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  8846. BB10
  8847. lgl' %10.0 = Lt %7.2, %8.3, elided
  8848. t %10.1 = AsTest %10.0
  8849. void Branch %10.1 -> BB37 (if true) | BB11 (if false)
  8850. BB9
  8851. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  8852. void Deopt %9.0
  8853. BB37
  8854. goto BB39
  8855. BB11
  8856. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  8857. BB13
  8858. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  8859. void StVar i, %13.0, e0.2
  8860. cls %13.2 = LdFun buildTreeDepth, e0.2
  8861. prom %13.3 = MkArg missing, Prom(2), e0.2
  8862. prom %13.4 = MkArg missing, Prom(3), e0.2
  8863. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  8864. BB12
  8865. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  8866. void Deopt %12.0
  8867. BB15
  8868. cls' %15.0 = LdConst function (depth, random) { if (d...
  8869. t %15.1 = Identical %13.2, %15.0
  8870. void Assume %15.1, %13.5
  8871. goto BB16
  8872. BB14
  8873. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  8874. void Deopt %14.0
  8875. BB16
  8876. val^? %16.0 = CastType %13.3
  8877. val^? %16.1 = CastType %13.4
  8878. env e16.2 = MkEnv depth=%16.0, random=%16.1, parent=<environment: 0x7f9246b48c88>
  8879. val %16.3 = Force %16.0, e16.2
  8880. real$' %16.4 = LdConst [1] 1
  8881. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  8882. BB18
  8883. lgl %18.0 = Eq %16.3, %16.4, e16.2
  8884. lgl %18.1 = AsLogical %18.0
  8885. t %18.2 = AsTest %18.1
  8886. void Branch %18.2 -> BB36 (if true) | BB19 (if false)
  8887. BB17
  8888. fs %17.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8889. fs %17.1 = FrameState 0x7f924457f3d0+58: [%16.3, %16.4], env=e16.2, next=%17.0
  8890. void Deopt %17.1
  8891. BB36
  8892. cls %36.0 = LdFun c, e16.2
  8893. prom %36.1 = MkArg missing, Prom(5), e16.2
  8894. fs %36.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8895. fs %36.3 = FrameState 0x7f924457f3d0+410: [], env=e16.2, next=%36.2
  8896. val^ %36.4 = Call %36.0(%36.1) %36.3, e16.2
  8897. goto BB40
  8898. BB19
  8899. cls %19.0 = LdFun vector, e16.2
  8900. str$' %19.1 = LdConst [1] "list"
  8901. real$' %19.2 = LdConst [1] 4
  8902. cp %19.3 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  8903. BB40
  8904. val^ %40.0 = Phi %26.0:BB35, %36.4:BB36
  8905. val %40.1 = Force %40.0, e16.2
  8906. goto BB41
  8907. BB21
  8908. cls' %21.0 = LdConst function (mode = "logical", length = ...
  8909. t %21.1 = Identical %19.0, %21.0
  8910. void Assume %21.1, %19.3
  8911. goto BB22
  8912. BB20
  8913. fs %20.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8914. fs %20.1 = FrameState 0x7f924457f3d0+113: [%19.0], env=e16.2, next=%20.0
  8915. void Deopt %20.1
  8916. BB41
  8917. val^? %41.0 = LdVar array, e0.2
  8918. val %41.1 = Force %41.0, e0.2
  8919. val^? %41.2 = LdVar i, e0.2
  8920. val %41.3 = Force %41.2, e0.2
  8921. val %41.4 = EnsureNamed %40.1
  8922. val %41.5 = Subassign2_1D %41.4, %41.1, %41.3, e0.2
  8923. void StVar array, %41.5, e0.2
  8924. goto BB8
  8925. BB22
  8926. val %22.0 = CallSafeBuiltin vector(%19.1, %19.2)
  8927. goto BB23
  8928. BB23
  8929. void StVar array, %22.0, e16.2
  8930. real$' %23.1 = LdConst [1] 1
  8931. real$' %23.2 = LdConst [1] 4
  8932. cp %23.3 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  8933. BB25
  8934. val' %25.0 = Colon %23.1, %23.2, elided
  8935. val' %25.1 = SetShared %25.0
  8936. int$' %25.2 = ForSeqSize %25.1
  8937. int$' %25.3 = LdConst [1] 0
  8938. goto BB26
  8939. BB24
  8940. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8941. fs %24.1 = FrameState 0x7f924457f3d0+192: [%23.1, %23.2], env=e16.2, next=%24.0
  8942. void Deopt %24.1
  8943. BB26
  8944. val %26.0 = Phi %22.0:BB23, %34.7:BB34
  8945. int$' %26.1 = Phi %25.3:BB25, %26.3:BB34
  8946. int$' %26.2 = Inc %26.1
  8947. int$' %26.3 = EnsureNamed %26.2
  8948. cp %26.4 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  8949. BB28
  8950. lgl' %28.0 = Lt %25.2, %26.3, elided
  8951. t %28.1 = AsTest %28.0
  8952. void Branch %28.1 -> BB35 (if true) | BB29 (if false)
  8953. BB27
  8954. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8955. fs %27.1 = FrameState 0x7f924457f3d0+203: [%25.1, %25.2, %26.3, %25.2, %26.3], env=e16.2, next=%27.0
  8956. void Deopt %27.1
  8957. BB35
  8958. goto BB40
  8959. BB29
  8960. cp %29.0 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  8961. BB31
  8962. val$' %31.0 = Extract2_1D %25.1, %26.3, elided
  8963. void StVar i, %31.0, e16.2
  8964. cls %31.2 = LdFun buildTreeDepth, e16.2
  8965. prom %31.3 = MkArg missing, Prom(8), e16.2
  8966. prom %31.4 = MkArg missing, Prom(9), e16.2
  8967. cp %31.5 = Checkpoint -> BB33 (by default) | BB32 (if coming from expect)
  8968. BB30
  8969. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8970. fs %30.1 = FrameState 0x7f924457f3d0+219: [%25.1, %25.2, %26.3, %25.1, %26.3], env=e16.2, next=%30.0
  8971. void Deopt %30.1
  8972. BB33
  8973. cls' %33.0 = LdConst function (depth, random) { if (d...
  8974. t %33.1 = Identical %31.2, %33.0
  8975. void Assume %33.1, %31.5
  8976. fs %33.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8977. fs %33.4 = FrameState 0x7f924457f3d0+290: [%25.1, %25.2, %26.3], env=e16.2, next=%33.3
  8978. goto BB34
  8979. BB32
  8980. fs %32.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  8981. fs %32.1 = FrameState 0x7f924457f3d0+273: [%25.1, %25.2, %26.3, %31.2], env=e16.2, next=%32.0
  8982. void Deopt %32.1
  8983. BB34
  8984. val^ %34.0 = StaticCall buildTreeDepth[0x7f92446010b0](%31.3, %31.4) %33.4, e16.2
  8985. val^? %34.1 = LdVar array, e16.2
  8986. val %34.2 = Force %34.1, e16.2
  8987. val^? %34.3 = LdVar i, e16.2
  8988. val %34.4 = Force %34.3, e16.2
  8989. val^ %34.5 = EnsureNamed %34.0
  8990. val %34.6 = Force %34.5, e16.2
  8991. val %34.7 = Subassign2_1D %34.6, %34.2, %34.4, e16.2
  8992. void StVar array, %34.7, e16.2
  8993. goto BB26
  8994. Prom 2:
  8995. BB0
  8996. env e0.0 = LdFunctionEnv
  8997. val^? %0.1 = LdVar depth, e0.0
  8998. val %0.2 = Force %0.1, e0.0
  8999. real$' %0.3 = LdConst [1] 1
  9000. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9001. BB2
  9002. val %2.0 = Sub %0.2, %0.3, e0.0
  9003. void Return %2.0
  9004. BB1
  9005. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  9006. void Deopt %1.0
  9007. Prom 3:
  9008. BB0
  9009. env e0.0 = LdFunctionEnv
  9010. val^? %0.1 = LdVar random, e0.0
  9011. val %0.2 = Force %0.1, e0.0
  9012. void Return %0.2
  9013. Prom 4:
  9014. BB0
  9015. env e0.0 = LdFunctionEnv
  9016. cls %0.1 = LdFun nextRandom, e0.0
  9017. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9018. t %0.3 = Identical %0.1, %0.2
  9019. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9020. BB2
  9021. void Assume %0.3, %0.4
  9022. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9023. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9024. real$' %2.3 = LdConst [1] 10
  9025. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9026. BB1
  9027. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9028. void Deopt %1.0
  9029. BB4
  9030. val %4.0 = Force %2.2, e0.0
  9031. val %4.1 = Mod %4.0, %2.3, e0.0
  9032. real$' %4.2 = LdConst [1] 1
  9033. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9034. BB3
  9035. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9036. void Deopt %3.0
  9037. BB6
  9038. val %6.0 = Add %4.1, %4.2, e0.0
  9039. void Return %6.0
  9040. BB5
  9041. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9042. void Deopt %5.0
  9043. Prom 5:
  9044. BB0
  9045. env e0.0 = LdFunctionEnv
  9046. cls %0.1 = LdFun nextRandom, e0.0
  9047. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9048. t %0.3 = Identical %0.1, %0.2
  9049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9050. BB2
  9051. void Assume %0.3, %0.4
  9052. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9053. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9054. real$' %2.3 = LdConst [1] 10
  9055. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9056. BB1
  9057. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9058. void Deopt %1.0
  9059. BB4
  9060. val %4.0 = Force %2.2, e0.0
  9061. val %4.1 = Mod %4.0, %2.3, e0.0
  9062. real$' %4.2 = LdConst [1] 1
  9063. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9064. BB3
  9065. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9066. void Deopt %3.0
  9067. BB6
  9068. val %6.0 = Add %4.1, %4.2, e0.0
  9069. void Return %6.0
  9070. BB5
  9071. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9072. void Deopt %5.0
  9073. Prom 8:
  9074. BB0
  9075. env e0.0 = LdFunctionEnv
  9076. val^? %0.1 = LdVar depth, e0.0
  9077. val %0.2 = Force %0.1, e0.0
  9078. real$' %0.3 = LdConst [1] 1
  9079. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9080. BB2
  9081. val %2.0 = Sub %0.2, %0.3, e0.0
  9082. void Return %2.0
  9083. BB1
  9084. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  9085. void Deopt %1.0
  9086. Prom 9:
  9087. BB0
  9088. env e0.0 = LdFunctionEnv
  9089. val^? %0.1 = LdVar random, e0.0
  9090. val %0.2 = Force %0.1, e0.0
  9091. void Return %0.2
  9092. ├────── Inline closures: == 119
  9093. buildTreeDepth[0x7f92446010b0]
  9094. BB0
  9095. val^ %0.0 = LdArg 0
  9096. val^ %0.1 = LdArg 1
  9097. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  9098. val %0.3 = Force! %0.0, e0.2
  9099. real$' %0.4 = LdConst [1] 1
  9100. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9101. BB2
  9102. lgl %2.0 = Eq %0.3, %0.4, e0.2
  9103. lgl %2.1 = AsLogical %2.0
  9104. t %2.2 = AsTest %2.1
  9105. void Branch %2.2 -> BB38 (if true) | BB3 (if false)
  9106. BB1
  9107. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  9108. void Deopt %1.0
  9109. BB38
  9110. cls %38.0 = LdFun c, e0.2
  9111. prom %38.1 = MkArg missing, Prom(4), e0.2
  9112. fs %38.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  9113. val^ %38.3 = Call %38.0(%38.1) %38.2, e0.2
  9114. goto BB39
  9115. BB3
  9116. cls %3.0 = LdFun vector, e0.2
  9117. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  9118. BB39
  9119. val^ %39.0 = Phi %8.0:BB37, %38.3:BB38
  9120. val %39.1 = Force %39.0, e0.2
  9121. void Return %39.1
  9122. BB5
  9123. real$' %5.0 = LdConst [1] 4
  9124. cls' %5.1 = LdConst function (mode = "logical", length = ...
  9125. t %5.2 = Identical %3.0, %5.1
  9126. void Assume %5.2, %3.1
  9127. str$' %5.4 = LdConst [1] "list"
  9128. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  9129. void StVar array, %5.5, e0.2
  9130. real$' %5.7 = LdConst [1] 1
  9131. real$' %5.8 = LdConst [1] 4
  9132. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  9133. BB4
  9134. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  9135. void Deopt %4.0
  9136. BB7
  9137. val' %7.0 = Colon %5.7, %5.8, elided
  9138. val' %7.1 = SetShared %7.0
  9139. int$' %7.2 = ForSeqSize %7.1
  9140. int$' %7.3 = LdConst [1] 0
  9141. goto BB8
  9142. BB6
  9143. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  9144. void Deopt %6.0
  9145. BB8
  9146. val %8.0 = Phi %5.5:BB5, %41.5:BB41
  9147. int$' %8.1 = Phi %7.3:BB7, %8.3:BB41
  9148. int$' %8.2 = Inc %8.1
  9149. int$' %8.3 = EnsureNamed %8.2
  9150. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  9151. BB10
  9152. lgl' %10.0 = Lt %7.2, %8.3, elided
  9153. t %10.1 = AsTest %10.0
  9154. void Branch %10.1 -> BB37 (if true) | BB11 (if false)
  9155. BB9
  9156. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  9157. void Deopt %9.0
  9158. BB37
  9159. goto BB39
  9160. BB11
  9161. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  9162. BB13
  9163. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  9164. void StVar i, %13.0, e0.2
  9165. cls %13.2 = LdFun buildTreeDepth, e0.2
  9166. prom %13.3 = MkArg missing, Prom(2), e0.2
  9167. prom %13.4 = MkArg missing, Prom(3), e0.2
  9168. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  9169. BB12
  9170. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  9171. void Deopt %12.0
  9172. BB15
  9173. cls' %15.0 = LdConst function (depth, random) { if (d...
  9174. t %15.1 = Identical %13.2, %15.0
  9175. void Assume %15.1, %13.5
  9176. goto BB16
  9177. BB14
  9178. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  9179. void Deopt %14.0
  9180. BB16
  9181. val^? %16.0 = CastType %13.3
  9182. val^? %16.1 = CastType %13.4
  9183. env e16.2 = MkEnv depth=%16.0, random=%16.1, parent=<environment: 0x7f9246b48c88>
  9184. val %16.3 = Force %16.0, e16.2
  9185. real$' %16.4 = LdConst [1] 1
  9186. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  9187. BB18
  9188. lgl %18.0 = Eq %16.3, %16.4, e16.2
  9189. lgl %18.1 = AsLogical %18.0
  9190. t %18.2 = AsTest %18.1
  9191. void Branch %18.2 -> BB36 (if true) | BB19 (if false)
  9192. BB17
  9193. fs %17.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9194. fs %17.1 = FrameState 0x7f924457f3d0+58: [%16.3, %16.4], env=e16.2, next=%17.0
  9195. void Deopt %17.1
  9196. BB36
  9197. cls %36.0 = LdFun c, e16.2
  9198. prom %36.1 = MkArg missing, Prom(5), e16.2
  9199. fs %36.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9200. fs %36.3 = FrameState 0x7f924457f3d0+410: [], env=e16.2, next=%36.2
  9201. val^ %36.4 = Call %36.0(%36.1) %36.3, e16.2
  9202. goto BB40
  9203. BB19
  9204. cls %19.0 = LdFun vector, e16.2
  9205. str$' %19.1 = LdConst [1] "list"
  9206. real$' %19.2 = LdConst [1] 4
  9207. cp %19.3 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  9208. BB40
  9209. val^ %40.0 = Phi %26.0:BB35, %36.4:BB36
  9210. val %40.1 = Force %40.0, e16.2
  9211. goto BB41
  9212. BB21
  9213. cls' %21.0 = LdConst function (mode = "logical", length = ...
  9214. t %21.1 = Identical %19.0, %21.0
  9215. void Assume %21.1, %19.3
  9216. goto BB22
  9217. BB20
  9218. fs %20.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9219. fs %20.1 = FrameState 0x7f924457f3d0+113: [%19.0], env=e16.2, next=%20.0
  9220. void Deopt %20.1
  9221. BB41
  9222. val^? %41.0 = LdVar array, e0.2
  9223. val %41.1 = Force %41.0, e0.2
  9224. val^? %41.2 = LdVar i, e0.2
  9225. val %41.3 = Force %41.2, e0.2
  9226. val %41.4 = EnsureNamed %40.1
  9227. val %41.5 = Subassign2_1D %41.4, %41.1, %41.3, e0.2
  9228. void StVar array, %41.5, e0.2
  9229. goto BB8
  9230. BB22
  9231. val %22.0 = CallSafeBuiltin vector(%19.1, %19.2)
  9232. goto BB23
  9233. BB23
  9234. void StVar array, %22.0, e16.2
  9235. real$' %23.1 = LdConst [1] 1
  9236. real$' %23.2 = LdConst [1] 4
  9237. cp %23.3 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  9238. BB25
  9239. val' %25.0 = Colon %23.1, %23.2, elided
  9240. val' %25.1 = SetShared %25.0
  9241. int$' %25.2 = ForSeqSize %25.1
  9242. int$' %25.3 = LdConst [1] 0
  9243. goto BB26
  9244. BB24
  9245. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9246. fs %24.1 = FrameState 0x7f924457f3d0+192: [%23.1, %23.2], env=e16.2, next=%24.0
  9247. void Deopt %24.1
  9248. BB26
  9249. val %26.0 = Phi %22.0:BB23, %34.7:BB34
  9250. int$' %26.1 = Phi %25.3:BB25, %26.3:BB34
  9251. int$' %26.2 = Inc %26.1
  9252. int$' %26.3 = EnsureNamed %26.2
  9253. cp %26.4 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  9254. BB28
  9255. lgl' %28.0 = Lt %25.2, %26.3, elided
  9256. t %28.1 = AsTest %28.0
  9257. void Branch %28.1 -> BB35 (if true) | BB29 (if false)
  9258. BB27
  9259. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9260. fs %27.1 = FrameState 0x7f924457f3d0+203: [%25.1, %25.2, %26.3, %25.2, %26.3], env=e16.2, next=%27.0
  9261. void Deopt %27.1
  9262. BB35
  9263. goto BB40
  9264. BB29
  9265. cp %29.0 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  9266. BB31
  9267. val$' %31.0 = Extract2_1D %25.1, %26.3, elided
  9268. void StVar i, %31.0, e16.2
  9269. cls %31.2 = LdFun buildTreeDepth, e16.2
  9270. prom %31.3 = MkArg missing, Prom(8), e16.2
  9271. prom %31.4 = MkArg missing, Prom(9), e16.2
  9272. cp %31.5 = Checkpoint -> BB33 (by default) | BB32 (if coming from expect)
  9273. BB30
  9274. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9275. fs %30.1 = FrameState 0x7f924457f3d0+219: [%25.1, %25.2, %26.3, %25.1, %26.3], env=e16.2, next=%30.0
  9276. void Deopt %30.1
  9277. BB33
  9278. cls' %33.0 = LdConst function (depth, random) { if (d...
  9279. t %33.1 = Identical %31.2, %33.0
  9280. void Assume %33.1, %31.5
  9281. fs %33.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9282. fs %33.4 = FrameState 0x7f924457f3d0+290: [%25.1, %25.2, %26.3], env=e16.2, next=%33.3
  9283. goto BB34
  9284. BB32
  9285. fs %32.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9286. fs %32.1 = FrameState 0x7f924457f3d0+273: [%25.1, %25.2, %26.3, %31.2], env=e16.2, next=%32.0
  9287. void Deopt %32.1
  9288. BB34
  9289. val^ %34.0 = StaticCall buildTreeDepth[0x7f92446010b0](%31.3, %31.4) %33.4, e16.2
  9290. val^? %34.1 = LdVar array, e16.2
  9291. val %34.2 = Force %34.1, e16.2
  9292. val^? %34.3 = LdVar i, e16.2
  9293. val %34.4 = Force %34.3, e16.2
  9294. val^ %34.5 = EnsureNamed %34.0
  9295. val %34.6 = Force %34.5, e16.2
  9296. val %34.7 = Subassign2_1D %34.6, %34.2, %34.4, e16.2
  9297. void StVar array, %34.7, e16.2
  9298. goto BB26
  9299. Prom 2:
  9300. BB0
  9301. env e0.0 = LdFunctionEnv
  9302. val^? %0.1 = LdVar depth, e0.0
  9303. val %0.2 = Force %0.1, e0.0
  9304. real$' %0.3 = LdConst [1] 1
  9305. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9306. BB2
  9307. val %2.0 = Sub %0.2, %0.3, e0.0
  9308. void Return %2.0
  9309. BB1
  9310. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  9311. void Deopt %1.0
  9312. Prom 3:
  9313. BB0
  9314. env e0.0 = LdFunctionEnv
  9315. val^? %0.1 = LdVar random, e0.0
  9316. val %0.2 = Force %0.1, e0.0
  9317. void Return %0.2
  9318. Prom 4:
  9319. BB0
  9320. env e0.0 = LdFunctionEnv
  9321. cls %0.1 = LdFun nextRandom, e0.0
  9322. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9323. t %0.3 = Identical %0.1, %0.2
  9324. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9325. BB2
  9326. void Assume %0.3, %0.4
  9327. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9328. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9329. real$' %2.3 = LdConst [1] 10
  9330. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9331. BB1
  9332. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9333. void Deopt %1.0
  9334. BB4
  9335. val %4.0 = Force %2.2, e0.0
  9336. val %4.1 = Mod %4.0, %2.3, e0.0
  9337. real$' %4.2 = LdConst [1] 1
  9338. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9339. BB3
  9340. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9341. void Deopt %3.0
  9342. BB6
  9343. val %6.0 = Add %4.1, %4.2, e0.0
  9344. void Return %6.0
  9345. BB5
  9346. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9347. void Deopt %5.0
  9348. Prom 5:
  9349. BB0
  9350. env e0.0 = LdFunctionEnv
  9351. cls %0.1 = LdFun nextRandom, e0.0
  9352. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9353. t %0.3 = Identical %0.1, %0.2
  9354. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9355. BB2
  9356. void Assume %0.3, %0.4
  9357. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9358. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9359. real$' %2.3 = LdConst [1] 10
  9360. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9361. BB1
  9362. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9363. void Deopt %1.0
  9364. BB4
  9365. val %4.0 = Force %2.2, e0.0
  9366. val %4.1 = Mod %4.0, %2.3, e0.0
  9367. real$' %4.2 = LdConst [1] 1
  9368. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9369. BB3
  9370. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9371. void Deopt %3.0
  9372. BB6
  9373. val %6.0 = Add %4.1, %4.2, e0.0
  9374. void Return %6.0
  9375. BB5
  9376. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9377. void Deopt %5.0
  9378. Prom 8:
  9379. BB0
  9380. env e0.0 = LdFunctionEnv
  9381. val^? %0.1 = LdVar depth, e0.0
  9382. val %0.2 = Force %0.1, e0.0
  9383. real$' %0.3 = LdConst [1] 1
  9384. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9385. BB2
  9386. val %2.0 = Sub %0.2, %0.3, e0.0
  9387. void Return %2.0
  9388. BB1
  9389. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  9390. void Deopt %1.0
  9391. Prom 9:
  9392. BB0
  9393. env e0.0 = LdFunctionEnv
  9394. val^? %0.1 = LdVar random, e0.0
  9395. val %0.2 = Force %0.1, e0.0
  9396. void Return %0.2
  9397. ├────── Inline Promises: == 126
  9398. buildTreeDepth[0x7f92446010b0]
  9399. BB0
  9400. val^ %0.0 = LdArg 0
  9401. val^ %0.1 = LdArg 1
  9402. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  9403. val %0.3 = Force! %0.0, e0.2
  9404. real$' %0.4 = LdConst [1] 1
  9405. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9406. BB2
  9407. lgl %2.0 = Eq %0.3, %0.4, e0.2
  9408. lgl %2.1 = AsLogical %2.0
  9409. t %2.2 = AsTest %2.1
  9410. void Branch %2.2 -> BB38 (if true) | BB3 (if false)
  9411. BB1
  9412. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  9413. void Deopt %1.0
  9414. BB38
  9415. cls %38.0 = LdFun c, e0.2
  9416. prom %38.1 = MkArg missing, Prom(4), e0.2
  9417. fs %38.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  9418. val^ %38.3 = Call %38.0(%38.1) %38.2, e0.2
  9419. goto BB39
  9420. BB3
  9421. cls %3.0 = LdFun vector, e0.2
  9422. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  9423. BB39
  9424. val^ %39.0 = Phi %8.0:BB37, %38.3:BB38
  9425. val %39.1 = Force %39.0, e0.2
  9426. void Return %39.1
  9427. BB5
  9428. real$' %5.0 = LdConst [1] 4
  9429. cls' %5.1 = LdConst function (mode = "logical", length = ...
  9430. t %5.2 = Identical %3.0, %5.1
  9431. void Assume %5.2, %3.1
  9432. str$' %5.4 = LdConst [1] "list"
  9433. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  9434. void StVar array, %5.5, e0.2
  9435. real$' %5.7 = LdConst [1] 1
  9436. real$' %5.8 = LdConst [1] 4
  9437. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  9438. BB4
  9439. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  9440. void Deopt %4.0
  9441. BB7
  9442. val' %7.0 = Colon %5.7, %5.8, elided
  9443. val' %7.1 = SetShared %7.0
  9444. int$' %7.2 = ForSeqSize %7.1
  9445. int$' %7.3 = LdConst [1] 0
  9446. goto BB8
  9447. BB6
  9448. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  9449. void Deopt %6.0
  9450. BB8
  9451. val %8.0 = Phi %5.5:BB5, %41.5:BB41
  9452. int$' %8.1 = Phi %7.3:BB7, %8.3:BB41
  9453. int$' %8.2 = Inc %8.1
  9454. int$' %8.3 = EnsureNamed %8.2
  9455. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  9456. BB10
  9457. lgl' %10.0 = Lt %7.2, %8.3, elided
  9458. t %10.1 = AsTest %10.0
  9459. void Branch %10.1 -> BB37 (if true) | BB11 (if false)
  9460. BB9
  9461. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  9462. void Deopt %9.0
  9463. BB37
  9464. goto BB39
  9465. BB11
  9466. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  9467. BB13
  9468. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  9469. void StVar i, %13.0, e0.2
  9470. cls %13.2 = LdFun buildTreeDepth, e0.2
  9471. prom %13.3 = MkArg missing, Prom(2), e0.2
  9472. prom %13.4 = MkArg missing, Prom(3), e0.2
  9473. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  9474. BB12
  9475. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  9476. void Deopt %12.0
  9477. BB15
  9478. cls' %15.0 = LdConst function (depth, random) { if (d...
  9479. t %15.1 = Identical %13.2, %15.0
  9480. void Assume %15.1, %13.5
  9481. goto BB16
  9482. BB14
  9483. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  9484. void Deopt %14.0
  9485. BB16
  9486. val^? %16.0 = CastType %13.3
  9487. val^? %16.1 = CastType %13.4
  9488. env e16.2 = MkEnv depth=%16.0, random=%16.1, parent=<environment: 0x7f9246b48c88>
  9489. val %16.3 = Force %16.0, e16.2
  9490. real$' %16.4 = LdConst [1] 1
  9491. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  9492. BB18
  9493. lgl %18.0 = Eq %16.3, %16.4, e16.2
  9494. lgl %18.1 = AsLogical %18.0
  9495. t %18.2 = AsTest %18.1
  9496. void Branch %18.2 -> BB36 (if true) | BB19 (if false)
  9497. BB17
  9498. fs %17.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9499. fs %17.1 = FrameState 0x7f924457f3d0+58: [%16.3, %16.4], env=e16.2, next=%17.0
  9500. void Deopt %17.1
  9501. BB36
  9502. cls %36.0 = LdFun c, e16.2
  9503. prom %36.1 = MkArg missing, Prom(5), e16.2
  9504. fs %36.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9505. fs %36.3 = FrameState 0x7f924457f3d0+410: [], env=e16.2, next=%36.2
  9506. val^ %36.4 = Call %36.0(%36.1) %36.3, e16.2
  9507. goto BB40
  9508. BB19
  9509. cls %19.0 = LdFun vector, e16.2
  9510. str$' %19.1 = LdConst [1] "list"
  9511. real$' %19.2 = LdConst [1] 4
  9512. cp %19.3 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  9513. BB40
  9514. val^ %40.0 = Phi %26.0:BB35, %36.4:BB36
  9515. val %40.1 = Force %40.0, e16.2
  9516. goto BB41
  9517. BB21
  9518. cls' %21.0 = LdConst function (mode = "logical", length = ...
  9519. t %21.1 = Identical %19.0, %21.0
  9520. void Assume %21.1, %19.3
  9521. goto BB22
  9522. BB20
  9523. fs %20.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9524. fs %20.1 = FrameState 0x7f924457f3d0+113: [%19.0], env=e16.2, next=%20.0
  9525. void Deopt %20.1
  9526. BB41
  9527. val^? %41.0 = LdVar array, e0.2
  9528. val %41.1 = Force %41.0, e0.2
  9529. val^? %41.2 = LdVar i, e0.2
  9530. val %41.3 = Force %41.2, e0.2
  9531. val %41.4 = EnsureNamed %40.1
  9532. val %41.5 = Subassign2_1D %41.4, %41.1, %41.3, e0.2
  9533. void StVar array, %41.5, e0.2
  9534. goto BB8
  9535. BB22
  9536. val %22.0 = CallSafeBuiltin vector(%19.1, %19.2)
  9537. goto BB23
  9538. BB23
  9539. void StVar array, %22.0, e16.2
  9540. real$' %23.1 = LdConst [1] 1
  9541. real$' %23.2 = LdConst [1] 4
  9542. cp %23.3 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  9543. BB25
  9544. val' %25.0 = Colon %23.1, %23.2, elided
  9545. val' %25.1 = SetShared %25.0
  9546. int$' %25.2 = ForSeqSize %25.1
  9547. int$' %25.3 = LdConst [1] 0
  9548. goto BB26
  9549. BB24
  9550. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9551. fs %24.1 = FrameState 0x7f924457f3d0+192: [%23.1, %23.2], env=e16.2, next=%24.0
  9552. void Deopt %24.1
  9553. BB26
  9554. val %26.0 = Phi %22.0:BB23, %34.7:BB34
  9555. int$' %26.1 = Phi %25.3:BB25, %26.3:BB34
  9556. int$' %26.2 = Inc %26.1
  9557. int$' %26.3 = EnsureNamed %26.2
  9558. cp %26.4 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  9559. BB28
  9560. lgl' %28.0 = Lt %25.2, %26.3, elided
  9561. t %28.1 = AsTest %28.0
  9562. void Branch %28.1 -> BB35 (if true) | BB29 (if false)
  9563. BB27
  9564. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9565. fs %27.1 = FrameState 0x7f924457f3d0+203: [%25.1, %25.2, %26.3, %25.2, %26.3], env=e16.2, next=%27.0
  9566. void Deopt %27.1
  9567. BB35
  9568. goto BB40
  9569. BB29
  9570. cp %29.0 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  9571. BB31
  9572. val$' %31.0 = Extract2_1D %25.1, %26.3, elided
  9573. void StVar i, %31.0, e16.2
  9574. cls %31.2 = LdFun buildTreeDepth, e16.2
  9575. prom %31.3 = MkArg missing, Prom(8), e16.2
  9576. prom %31.4 = MkArg missing, Prom(9), e16.2
  9577. cp %31.5 = Checkpoint -> BB33 (by default) | BB32 (if coming from expect)
  9578. BB30
  9579. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9580. fs %30.1 = FrameState 0x7f924457f3d0+219: [%25.1, %25.2, %26.3, %25.1, %26.3], env=e16.2, next=%30.0
  9581. void Deopt %30.1
  9582. BB33
  9583. cls' %33.0 = LdConst function (depth, random) { if (d...
  9584. t %33.1 = Identical %31.2, %33.0
  9585. void Assume %33.1, %31.5
  9586. fs %33.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9587. fs %33.4 = FrameState 0x7f924457f3d0+290: [%25.1, %25.2, %26.3], env=e16.2, next=%33.3
  9588. goto BB34
  9589. BB32
  9590. fs %32.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9591. fs %32.1 = FrameState 0x7f924457f3d0+273: [%25.1, %25.2, %26.3, %31.2], env=e16.2, next=%32.0
  9592. void Deopt %32.1
  9593. BB34
  9594. val^ %34.0 = StaticCall buildTreeDepth[0x7f92446010b0](%31.3, %31.4) %33.4, e16.2
  9595. val^? %34.1 = LdVar array, e16.2
  9596. val %34.2 = Force %34.1, e16.2
  9597. val^? %34.3 = LdVar i, e16.2
  9598. val %34.4 = Force %34.3, e16.2
  9599. val^ %34.5 = EnsureNamed %34.0
  9600. val %34.6 = Force %34.5, e16.2
  9601. val %34.7 = Subassign2_1D %34.6, %34.2, %34.4, e16.2
  9602. void StVar array, %34.7, e16.2
  9603. goto BB26
  9604. Prom 2:
  9605. BB0
  9606. env e0.0 = LdFunctionEnv
  9607. val^? %0.1 = LdVar depth, e0.0
  9608. val %0.2 = Force %0.1, e0.0
  9609. real$' %0.3 = LdConst [1] 1
  9610. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9611. BB2
  9612. val %2.0 = Sub %0.2, %0.3, e0.0
  9613. void Return %2.0
  9614. BB1
  9615. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  9616. void Deopt %1.0
  9617. Prom 3:
  9618. BB0
  9619. env e0.0 = LdFunctionEnv
  9620. val^? %0.1 = LdVar random, e0.0
  9621. val %0.2 = Force %0.1, e0.0
  9622. void Return %0.2
  9623. Prom 4:
  9624. BB0
  9625. env e0.0 = LdFunctionEnv
  9626. cls %0.1 = LdFun nextRandom, e0.0
  9627. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9628. t %0.3 = Identical %0.1, %0.2
  9629. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9630. BB2
  9631. void Assume %0.3, %0.4
  9632. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9633. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9634. real$' %2.3 = LdConst [1] 10
  9635. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9636. BB1
  9637. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9638. void Deopt %1.0
  9639. BB4
  9640. val %4.0 = Force %2.2, e0.0
  9641. val %4.1 = Mod %4.0, %2.3, e0.0
  9642. real$' %4.2 = LdConst [1] 1
  9643. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9644. BB3
  9645. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9646. void Deopt %3.0
  9647. BB6
  9648. val %6.0 = Add %4.1, %4.2, e0.0
  9649. void Return %6.0
  9650. BB5
  9651. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9652. void Deopt %5.0
  9653. Prom 5:
  9654. BB0
  9655. env e0.0 = LdFunctionEnv
  9656. cls %0.1 = LdFun nextRandom, e0.0
  9657. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9658. t %0.3 = Identical %0.1, %0.2
  9659. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9660. BB2
  9661. void Assume %0.3, %0.4
  9662. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9663. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9664. real$' %2.3 = LdConst [1] 10
  9665. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9666. BB1
  9667. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9668. void Deopt %1.0
  9669. BB4
  9670. val %4.0 = Force %2.2, e0.0
  9671. val %4.1 = Mod %4.0, %2.3, e0.0
  9672. real$' %4.2 = LdConst [1] 1
  9673. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9674. BB3
  9675. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9676. void Deopt %3.0
  9677. BB6
  9678. val %6.0 = Add %4.1, %4.2, e0.0
  9679. void Return %6.0
  9680. BB5
  9681. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9682. void Deopt %5.0
  9683. Prom 8:
  9684. BB0
  9685. env e0.0 = LdFunctionEnv
  9686. val^? %0.1 = LdVar depth, e0.0
  9687. val %0.2 = Force %0.1, e0.0
  9688. real$' %0.3 = LdConst [1] 1
  9689. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9690. BB2
  9691. val %2.0 = Sub %0.2, %0.3, e0.0
  9692. void Return %2.0
  9693. BB1
  9694. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  9695. void Deopt %1.0
  9696. Prom 9:
  9697. BB0
  9698. env e0.0 = LdFunctionEnv
  9699. val^? %0.1 = LdVar random, e0.0
  9700. val %0.2 = Force %0.1, e0.0
  9701. void Return %0.2
  9702. ├────── Scope resolution: == 133
  9703. buildTreeDepth[0x7f92446010b0]
  9704. BB0
  9705. val^ %0.0 = LdArg 0
  9706. val^ %0.1 = LdArg 1
  9707. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  9708. val %0.3 = Force! %0.0, e0.2
  9709. real$' %0.4 = LdConst [1] 1
  9710. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9711. BB2
  9712. lgl %2.0 = Eq %0.3, %0.4, e0.2
  9713. lgl %2.1 = AsLogical %2.0
  9714. t %2.2 = AsTest %2.1
  9715. void Branch %2.2 -> BB38 (if true) | BB3 (if false)
  9716. BB1
  9717. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  9718. void Deopt %1.0
  9719. BB38
  9720. cls %38.0 = LdFun c, e0.2
  9721. prom %38.1 = MkArg missing, Prom(4), e0.2
  9722. fs %38.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  9723. val^ %38.3 = Call %38.0(%38.1) %38.2, e0.2
  9724. goto BB39
  9725. BB3
  9726. cls %3.0 = LdFun vector, e0.2
  9727. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  9728. BB39
  9729. val^ %39.0 = Phi %8.0:BB37, %38.3:BB38
  9730. val %39.1 = Force %39.0, e0.2
  9731. void Return %39.1
  9732. BB5
  9733. real$' %5.0 = LdConst [1] 4
  9734. cls' %5.1 = LdConst function (mode = "logical", length = ...
  9735. t %5.2 = Identical %3.0, %5.1
  9736. void Assume %5.2, %3.1
  9737. str$' %5.4 = LdConst [1] "list"
  9738. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  9739. void StVar array, %5.5, e0.2
  9740. real$' %5.7 = LdConst [1] 1
  9741. real$' %5.8 = LdConst [1] 4
  9742. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  9743. BB4
  9744. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  9745. void Deopt %4.0
  9746. BB7
  9747. val' %7.0 = Colon %5.7, %5.8, elided
  9748. val' %7.1 = SetShared %7.0
  9749. int$' %7.2 = ForSeqSize %7.1
  9750. int$' %7.3 = LdConst [1] 0
  9751. goto BB8
  9752. BB6
  9753. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  9754. void Deopt %6.0
  9755. BB8
  9756. val %8.0 = Phi %5.5:BB5, %41.5:BB41
  9757. int$' %8.1 = Phi %7.3:BB7, %8.3:BB41
  9758. int$' %8.2 = Inc %8.1
  9759. int$' %8.3 = EnsureNamed %8.2
  9760. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  9761. BB10
  9762. lgl' %10.0 = Lt %7.2, %8.3, elided
  9763. t %10.1 = AsTest %10.0
  9764. void Branch %10.1 -> BB37 (if true) | BB11 (if false)
  9765. BB9
  9766. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  9767. void Deopt %9.0
  9768. BB37
  9769. goto BB39
  9770. BB11
  9771. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  9772. BB13
  9773. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  9774. void StVar i, %13.0, e0.2
  9775. cls %13.2 = LdFun buildTreeDepth, e0.2
  9776. prom %13.3 = MkArg missing, Prom(2), e0.2
  9777. prom %13.4 = MkArg missing, Prom(3), e0.2
  9778. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  9779. BB12
  9780. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  9781. void Deopt %12.0
  9782. BB15
  9783. cls' %15.0 = LdConst function (depth, random) { if (d...
  9784. t %15.1 = Identical %13.2, %15.0
  9785. void Assume %15.1, %13.5
  9786. goto BB16
  9787. BB14
  9788. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  9789. void Deopt %14.0
  9790. BB16
  9791. val^? %16.0 = CastType %13.3
  9792. val^? %16.1 = CastType %13.4
  9793. env e16.2 = MkEnv depth=%16.0, random=%16.1, parent=<environment: 0x7f9246b48c88>
  9794. val %16.3 = Force %16.0, e16.2
  9795. real$' %16.4 = LdConst [1] 1
  9796. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  9797. BB18
  9798. lgl %18.0 = Eq %16.3, %16.4, e16.2
  9799. lgl %18.1 = AsLogical %18.0
  9800. t %18.2 = AsTest %18.1
  9801. void Branch %18.2 -> BB36 (if true) | BB19 (if false)
  9802. BB17
  9803. fs %17.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9804. fs %17.1 = FrameState 0x7f924457f3d0+58: [%16.3, %16.4], env=e16.2, next=%17.0
  9805. void Deopt %17.1
  9806. BB36
  9807. cls %36.0 = LdFun c, e16.2
  9808. prom %36.1 = MkArg missing, Prom(5), e16.2
  9809. fs %36.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9810. fs %36.3 = FrameState 0x7f924457f3d0+410: [], env=e16.2, next=%36.2
  9811. val^ %36.4 = Call %36.0(%36.1) %36.3, e16.2
  9812. goto BB40
  9813. BB19
  9814. cls %19.0 = LdFun vector, e16.2
  9815. str$' %19.1 = LdConst [1] "list"
  9816. real$' %19.2 = LdConst [1] 4
  9817. cp %19.3 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  9818. BB40
  9819. val^ %40.0 = Phi %26.0:BB35, %36.4:BB36
  9820. val %40.1 = Force %40.0, e16.2
  9821. goto BB41
  9822. BB21
  9823. cls' %21.0 = LdConst function (mode = "logical", length = ...
  9824. t %21.1 = Identical %19.0, %21.0
  9825. void Assume %21.1, %19.3
  9826. goto BB22
  9827. BB20
  9828. fs %20.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9829. fs %20.1 = FrameState 0x7f924457f3d0+113: [%19.0], env=e16.2, next=%20.0
  9830. void Deopt %20.1
  9831. BB41
  9832. val^? %41.0 = LdVar array, e0.2
  9833. val %41.1 = Force %41.0, e0.2
  9834. val^? %41.2 = LdVar i, e0.2
  9835. val %41.3 = Force %41.2, e0.2
  9836. val %41.4 = EnsureNamed %40.1
  9837. val %41.5 = Subassign2_1D %41.4, %41.1, %41.3, e0.2
  9838. void StVar array, %41.5, e0.2
  9839. goto BB8
  9840. BB22
  9841. val %22.0 = CallSafeBuiltin vector(%19.1, %19.2)
  9842. goto BB23
  9843. BB23
  9844. void StVar array, %22.0, e16.2
  9845. real$' %23.1 = LdConst [1] 1
  9846. real$' %23.2 = LdConst [1] 4
  9847. cp %23.3 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  9848. BB25
  9849. val' %25.0 = Colon %23.1, %23.2, elided
  9850. val' %25.1 = SetShared %25.0
  9851. int$' %25.2 = ForSeqSize %25.1
  9852. int$' %25.3 = LdConst [1] 0
  9853. goto BB26
  9854. BB24
  9855. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9856. fs %24.1 = FrameState 0x7f924457f3d0+192: [%23.1, %23.2], env=e16.2, next=%24.0
  9857. void Deopt %24.1
  9858. BB26
  9859. val %26.0 = Phi %22.0:BB23, %34.7:BB34
  9860. int$' %26.1 = Phi %25.3:BB25, %26.3:BB34
  9861. int$' %26.2 = Inc %26.1
  9862. int$' %26.3 = EnsureNamed %26.2
  9863. cp %26.4 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  9864. BB28
  9865. lgl' %28.0 = Lt %25.2, %26.3, elided
  9866. t %28.1 = AsTest %28.0
  9867. void Branch %28.1 -> BB35 (if true) | BB29 (if false)
  9868. BB27
  9869. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9870. fs %27.1 = FrameState 0x7f924457f3d0+203: [%25.1, %25.2, %26.3, %25.2, %26.3], env=e16.2, next=%27.0
  9871. void Deopt %27.1
  9872. BB35
  9873. goto BB40
  9874. BB29
  9875. cp %29.0 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  9876. BB31
  9877. val$' %31.0 = Extract2_1D %25.1, %26.3, elided
  9878. void StVar i, %31.0, e16.2
  9879. cls %31.2 = LdFun buildTreeDepth, e16.2
  9880. prom %31.3 = MkArg missing, Prom(8), e16.2
  9881. prom %31.4 = MkArg missing, Prom(9), e16.2
  9882. cp %31.5 = Checkpoint -> BB33 (by default) | BB32 (if coming from expect)
  9883. BB30
  9884. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9885. fs %30.1 = FrameState 0x7f924457f3d0+219: [%25.1, %25.2, %26.3, %25.1, %26.3], env=e16.2, next=%30.0
  9886. void Deopt %30.1
  9887. BB33
  9888. cls' %33.0 = LdConst function (depth, random) { if (d...
  9889. t %33.1 = Identical %31.2, %33.0
  9890. void Assume %33.1, %31.5
  9891. fs %33.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9892. fs %33.4 = FrameState 0x7f924457f3d0+290: [%25.1, %25.2, %26.3], env=e16.2, next=%33.3
  9893. goto BB34
  9894. BB32
  9895. fs %32.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  9896. fs %32.1 = FrameState 0x7f924457f3d0+273: [%25.1, %25.2, %26.3, %31.2], env=e16.2, next=%32.0
  9897. void Deopt %32.1
  9898. BB34
  9899. val^ %34.0 = StaticCall buildTreeDepth[0x7f92446010b0](%31.3, %31.4) %33.4, e16.2
  9900. val^? %34.1 = LdVar array, e16.2
  9901. val %34.2 = Force %34.1, e16.2
  9902. val^? %34.3 = LdVar i, e16.2
  9903. val %34.4 = Force %34.3, e16.2
  9904. val^ %34.5 = EnsureNamed %34.0
  9905. val %34.6 = Force %34.5, e16.2
  9906. val %34.7 = Subassign2_1D %34.6, %34.2, %34.4, e16.2
  9907. void StVar array, %34.7, e16.2
  9908. goto BB26
  9909. Prom 2:
  9910. BB0
  9911. env e0.0 = LdFunctionEnv
  9912. val^? %0.1 = LdVar depth, e0.0
  9913. val %0.2 = Force %0.1, e0.0
  9914. real$' %0.3 = LdConst [1] 1
  9915. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9916. BB2
  9917. val %2.0 = Sub %0.2, %0.3, e0.0
  9918. void Return %2.0
  9919. BB1
  9920. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  9921. void Deopt %1.0
  9922. Prom 3:
  9923. BB0
  9924. env e0.0 = LdFunctionEnv
  9925. val^? %0.1 = LdVar random, e0.0
  9926. val %0.2 = Force %0.1, e0.0
  9927. void Return %0.2
  9928. Prom 4:
  9929. BB0
  9930. env e0.0 = LdFunctionEnv
  9931. cls %0.1 = LdFun nextRandom, e0.0
  9932. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9933. t %0.3 = Identical %0.1, %0.2
  9934. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9935. BB2
  9936. void Assume %0.3, %0.4
  9937. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9938. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9939. real$' %2.3 = LdConst [1] 10
  9940. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9941. BB1
  9942. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9943. void Deopt %1.0
  9944. BB4
  9945. val %4.0 = Force %2.2, e0.0
  9946. val %4.1 = Mod %4.0, %2.3, e0.0
  9947. real$' %4.2 = LdConst [1] 1
  9948. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9949. BB3
  9950. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9951. void Deopt %3.0
  9952. BB6
  9953. val %6.0 = Add %4.1, %4.2, e0.0
  9954. void Return %6.0
  9955. BB5
  9956. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9957. void Deopt %5.0
  9958. Prom 5:
  9959. BB0
  9960. env e0.0 = LdFunctionEnv
  9961. cls %0.1 = LdFun nextRandom, e0.0
  9962. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  9963. t %0.3 = Identical %0.1, %0.2
  9964. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9965. BB2
  9966. void Assume %0.3, %0.4
  9967. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  9968. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  9969. real$' %2.3 = LdConst [1] 10
  9970. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  9971. BB1
  9972. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  9973. void Deopt %1.0
  9974. BB4
  9975. val %4.0 = Force %2.2, e0.0
  9976. val %4.1 = Mod %4.0, %2.3, e0.0
  9977. real$' %4.2 = LdConst [1] 1
  9978. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  9979. BB3
  9980. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  9981. void Deopt %3.0
  9982. BB6
  9983. val %6.0 = Add %4.1, %4.2, e0.0
  9984. void Return %6.0
  9985. BB5
  9986. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  9987. void Deopt %5.0
  9988. Prom 8:
  9989. BB0
  9990. env e0.0 = LdFunctionEnv
  9991. val^? %0.1 = LdVar depth, e0.0
  9992. val %0.2 = Force %0.1, e0.0
  9993. real$' %0.3 = LdConst [1] 1
  9994. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  9995. BB2
  9996. val %2.0 = Sub %0.2, %0.3, e0.0
  9997. void Return %2.0
  9998. BB1
  9999. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  10000. void Deopt %1.0
  10001. Prom 9:
  10002. BB0
  10003. env e0.0 = LdFunctionEnv
  10004. val^? %0.1 = LdVar random, e0.0
  10005. val %0.2 = Force %0.1, e0.0
  10006. void Return %0.2
  10007. ├────── Constant folding: == 140
  10008. buildTreeDepth[0x7f92446010b0]
  10009. BB0
  10010. val^ %0.0 = LdArg 0
  10011. val^ %0.1 = LdArg 1
  10012. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  10013. val %0.3 = Force! %0.0, e0.2
  10014. real$' %0.4 = LdConst [1] 1
  10015. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10016. BB2
  10017. lgl %2.0 = Eq %0.3, %0.4, e0.2
  10018. lgl %2.1 = AsLogical %2.0
  10019. t %2.2 = AsTest %2.1
  10020. void Branch %2.2 -> BB38 (if true) | BB3 (if false)
  10021. BB1
  10022. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  10023. void Deopt %1.0
  10024. BB38
  10025. cls %38.0 = LdFun c, e0.2
  10026. prom %38.1 = MkArg missing, Prom(4), e0.2
  10027. fs %38.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  10028. val^ %38.3 = Call %38.0(%38.1) %38.2, e0.2
  10029. goto BB39
  10030. BB3
  10031. cls %3.0 = LdFun vector, e0.2
  10032. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  10033. BB39
  10034. val^ %39.0 = Phi %8.0:BB37, %38.3:BB38
  10035. val %39.1 = Force %39.0, e0.2
  10036. void Return %39.1
  10037. BB5
  10038. real$' %5.0 = LdConst [1] 4
  10039. cls' %5.1 = LdConst function (mode = "logical", length = ...
  10040. t %5.2 = Identical %3.0, %5.1
  10041. void Assume %5.2, %3.1
  10042. str$' %5.4 = LdConst [1] "list"
  10043. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  10044. void StVar array, %5.5, e0.2
  10045. real$' %5.7 = LdConst [1] 1
  10046. real$' %5.8 = LdConst [1] 4
  10047. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  10048. BB4
  10049. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  10050. void Deopt %4.0
  10051. BB7
  10052. val' %7.0 = Colon %5.7, %5.8, elided
  10053. val' %7.1 = SetShared %7.0
  10054. int$' %7.2 = ForSeqSize %7.1
  10055. int$' %7.3 = LdConst [1] 0
  10056. goto BB8
  10057. BB6
  10058. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  10059. void Deopt %6.0
  10060. BB8
  10061. val %8.0 = Phi %5.5:BB5, %41.5:BB41
  10062. int$' %8.1 = Phi %7.3:BB7, %8.3:BB41
  10063. int$' %8.2 = Inc %8.1
  10064. int$' %8.3 = EnsureNamed %8.2
  10065. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  10066. BB10
  10067. lgl' %10.0 = Lt %7.2, %8.3, elided
  10068. t %10.1 = AsTest %10.0
  10069. void Branch %10.1 -> BB37 (if true) | BB11 (if false)
  10070. BB9
  10071. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  10072. void Deopt %9.0
  10073. BB37
  10074. goto BB39
  10075. BB11
  10076. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  10077. BB13
  10078. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  10079. void StVar i, %13.0, e0.2
  10080. cls %13.2 = LdFun buildTreeDepth, e0.2
  10081. prom %13.3 = MkArg missing, Prom(2), e0.2
  10082. prom %13.4 = MkArg missing, Prom(3), e0.2
  10083. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  10084. BB12
  10085. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  10086. void Deopt %12.0
  10087. BB15
  10088. cls' %15.0 = LdConst function (depth, random) { if (d...
  10089. t %15.1 = Identical %13.2, %15.0
  10090. void Assume %15.1, %13.5
  10091. goto BB16
  10092. BB14
  10093. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  10094. void Deopt %14.0
  10095. BB16
  10096. val^? %16.0 = CastType %13.3
  10097. val^? %16.1 = CastType %13.4
  10098. env e16.2 = MkEnv depth=%16.0, random=%16.1, parent=<environment: 0x7f9246b48c88>
  10099. val %16.3 = Force %16.0, e16.2
  10100. real$' %16.4 = LdConst [1] 1
  10101. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  10102. BB18
  10103. lgl %18.0 = Eq %16.3, %16.4, e16.2
  10104. lgl %18.1 = AsLogical %18.0
  10105. t %18.2 = AsTest %18.1
  10106. void Branch %18.2 -> BB36 (if true) | BB19 (if false)
  10107. BB17
  10108. fs %17.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10109. fs %17.1 = FrameState 0x7f924457f3d0+58: [%16.3, %16.4], env=e16.2, next=%17.0
  10110. void Deopt %17.1
  10111. BB36
  10112. cls %36.0 = LdFun c, e16.2
  10113. prom %36.1 = MkArg missing, Prom(5), e16.2
  10114. fs %36.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10115. fs %36.3 = FrameState 0x7f924457f3d0+410: [], env=e16.2, next=%36.2
  10116. val^ %36.4 = Call %36.0(%36.1) %36.3, e16.2
  10117. goto BB40
  10118. BB19
  10119. cls %19.0 = LdFun vector, e16.2
  10120. str$' %19.1 = LdConst [1] "list"
  10121. real$' %19.2 = LdConst [1] 4
  10122. cp %19.3 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  10123. BB40
  10124. val^ %40.0 = Phi %26.0:BB35, %36.4:BB36
  10125. val %40.1 = Force %40.0, e16.2
  10126. goto BB41
  10127. BB21
  10128. cls' %21.0 = LdConst function (mode = "logical", length = ...
  10129. t %21.1 = Identical %19.0, %21.0
  10130. void Assume %21.1, %19.3
  10131. goto BB22
  10132. BB20
  10133. fs %20.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10134. fs %20.1 = FrameState 0x7f924457f3d0+113: [%19.0], env=e16.2, next=%20.0
  10135. void Deopt %20.1
  10136. BB41
  10137. val^? %41.0 = LdVar array, e0.2
  10138. val %41.1 = Force %41.0, e0.2
  10139. val^? %41.2 = LdVar i, e0.2
  10140. val %41.3 = Force %41.2, e0.2
  10141. val %41.4 = EnsureNamed %40.1
  10142. val %41.5 = Subassign2_1D %41.4, %41.1, %41.3, e0.2
  10143. void StVar array, %41.5, e0.2
  10144. goto BB8
  10145. BB22
  10146. val %22.0 = CallSafeBuiltin vector(%19.1, %19.2)
  10147. goto BB23
  10148. BB23
  10149. void StVar array, %22.0, e16.2
  10150. real$' %23.1 = LdConst [1] 1
  10151. real$' %23.2 = LdConst [1] 4
  10152. cp %23.3 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  10153. BB25
  10154. val' %25.0 = Colon %23.1, %23.2, elided
  10155. val' %25.1 = SetShared %25.0
  10156. int$' %25.2 = ForSeqSize %25.1
  10157. int$' %25.3 = LdConst [1] 0
  10158. goto BB26
  10159. BB24
  10160. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10161. fs %24.1 = FrameState 0x7f924457f3d0+192: [%23.1, %23.2], env=e16.2, next=%24.0
  10162. void Deopt %24.1
  10163. BB26
  10164. val %26.0 = Phi %22.0:BB23, %34.7:BB34
  10165. int$' %26.1 = Phi %25.3:BB25, %26.3:BB34
  10166. int$' %26.2 = Inc %26.1
  10167. int$' %26.3 = EnsureNamed %26.2
  10168. cp %26.4 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  10169. BB28
  10170. lgl' %28.0 = Lt %25.2, %26.3, elided
  10171. t %28.1 = AsTest %28.0
  10172. void Branch %28.1 -> BB35 (if true) | BB29 (if false)
  10173. BB27
  10174. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10175. fs %27.1 = FrameState 0x7f924457f3d0+203: [%25.1, %25.2, %26.3, %25.2, %26.3], env=e16.2, next=%27.0
  10176. void Deopt %27.1
  10177. BB35
  10178. goto BB40
  10179. BB29
  10180. cp %29.0 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  10181. BB31
  10182. val$' %31.0 = Extract2_1D %25.1, %26.3, elided
  10183. void StVar i, %31.0, e16.2
  10184. cls %31.2 = LdFun buildTreeDepth, e16.2
  10185. prom %31.3 = MkArg missing, Prom(8), e16.2
  10186. prom %31.4 = MkArg missing, Prom(9), e16.2
  10187. cp %31.5 = Checkpoint -> BB33 (by default) | BB32 (if coming from expect)
  10188. BB30
  10189. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10190. fs %30.1 = FrameState 0x7f924457f3d0+219: [%25.1, %25.2, %26.3, %25.1, %26.3], env=e16.2, next=%30.0
  10191. void Deopt %30.1
  10192. BB33
  10193. cls' %33.0 = LdConst function (depth, random) { if (d...
  10194. t %33.1 = Identical %31.2, %33.0
  10195. void Assume %33.1, %31.5
  10196. fs %33.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10197. fs %33.4 = FrameState 0x7f924457f3d0+290: [%25.1, %25.2, %26.3], env=e16.2, next=%33.3
  10198. goto BB34
  10199. BB32
  10200. fs %32.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10201. fs %32.1 = FrameState 0x7f924457f3d0+273: [%25.1, %25.2, %26.3, %31.2], env=e16.2, next=%32.0
  10202. void Deopt %32.1
  10203. BB34
  10204. val^ %34.0 = StaticCall buildTreeDepth[0x7f92446010b0](%31.3, %31.4) %33.4, e16.2
  10205. val^? %34.1 = LdVar array, e16.2
  10206. val %34.2 = Force %34.1, e16.2
  10207. val^? %34.3 = LdVar i, e16.2
  10208. val %34.4 = Force %34.3, e16.2
  10209. val^ %34.5 = EnsureNamed %34.0
  10210. val %34.6 = Force %34.5, e16.2
  10211. val %34.7 = Subassign2_1D %34.6, %34.2, %34.4, e16.2
  10212. void StVar array, %34.7, e16.2
  10213. goto BB26
  10214. Prom 2:
  10215. BB0
  10216. env e0.0 = LdFunctionEnv
  10217. val^? %0.1 = LdVar depth, e0.0
  10218. val %0.2 = Force %0.1, e0.0
  10219. real$' %0.3 = LdConst [1] 1
  10220. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10221. BB2
  10222. val %2.0 = Sub %0.2, %0.3, e0.0
  10223. void Return %2.0
  10224. BB1
  10225. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  10226. void Deopt %1.0
  10227. Prom 3:
  10228. BB0
  10229. env e0.0 = LdFunctionEnv
  10230. val^? %0.1 = LdVar random, e0.0
  10231. val %0.2 = Force %0.1, e0.0
  10232. void Return %0.2
  10233. Prom 4:
  10234. BB0
  10235. env e0.0 = LdFunctionEnv
  10236. cls %0.1 = LdFun nextRandom, e0.0
  10237. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  10238. t %0.3 = Identical %0.1, %0.2
  10239. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10240. BB2
  10241. void Assume %0.3, %0.4
  10242. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  10243. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  10244. real$' %2.3 = LdConst [1] 10
  10245. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  10246. BB1
  10247. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  10248. void Deopt %1.0
  10249. BB4
  10250. val %4.0 = Force %2.2, e0.0
  10251. val %4.1 = Mod %4.0, %2.3, e0.0
  10252. real$' %4.2 = LdConst [1] 1
  10253. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  10254. BB3
  10255. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  10256. void Deopt %3.0
  10257. BB6
  10258. val %6.0 = Add %4.1, %4.2, e0.0
  10259. void Return %6.0
  10260. BB5
  10261. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  10262. void Deopt %5.0
  10263. Prom 5:
  10264. BB0
  10265. env e0.0 = LdFunctionEnv
  10266. cls %0.1 = LdFun nextRandom, e0.0
  10267. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  10268. t %0.3 = Identical %0.1, %0.2
  10269. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10270. BB2
  10271. void Assume %0.3, %0.4
  10272. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  10273. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  10274. real$' %2.3 = LdConst [1] 10
  10275. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  10276. BB1
  10277. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  10278. void Deopt %1.0
  10279. BB4
  10280. val %4.0 = Force %2.2, e0.0
  10281. val %4.1 = Mod %4.0, %2.3, e0.0
  10282. real$' %4.2 = LdConst [1] 1
  10283. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  10284. BB3
  10285. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  10286. void Deopt %3.0
  10287. BB6
  10288. val %6.0 = Add %4.1, %4.2, e0.0
  10289. void Return %6.0
  10290. BB5
  10291. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  10292. void Deopt %5.0
  10293. Prom 8:
  10294. BB0
  10295. env e0.0 = LdFunctionEnv
  10296. val^? %0.1 = LdVar depth, e0.0
  10297. val %0.2 = Force %0.1, e0.0
  10298. real$' %0.3 = LdConst [1] 1
  10299. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10300. BB2
  10301. val %2.0 = Sub %0.2, %0.3, e0.0
  10302. void Return %2.0
  10303. BB1
  10304. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  10305. void Deopt %1.0
  10306. Prom 9:
  10307. BB0
  10308. env e0.0 = LdFunctionEnv
  10309. val^? %0.1 = LdVar random, e0.0
  10310. val %0.2 = Force %0.1, e0.0
  10311. void Return %0.2
  10312. ├────── Cleanup redundant operations: == 147
  10313. buildTreeDepth[0x7f92446010b0]
  10314. BB0
  10315. val^ %0.0 = LdArg 0
  10316. val^ %0.1 = LdArg 1
  10317. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  10318. val %0.3 = Force! %0.0, e0.2
  10319. real$' %0.4 = LdConst [1] 1
  10320. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10321. BB2
  10322. lgl %2.0 = Eq %0.3, %0.4, e0.2
  10323. lgl %2.1 = AsLogical %2.0
  10324. t %2.2 = AsTest %2.1
  10325. void Branch %2.2 -> BB37 (if true) | BB3 (if false)
  10326. BB1
  10327. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  10328. void Deopt %1.0
  10329. BB37
  10330. cls %37.0 = LdFun c, e0.2
  10331. prom %37.1 = MkArg missing, Prom(4), e0.2
  10332. fs %37.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  10333. val^ %37.3 = Call %37.0(%37.1) %37.2, e0.2
  10334. goto BB38
  10335. BB3
  10336. cls %3.0 = LdFun vector, e0.2
  10337. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  10338. BB38
  10339. val^ %38.0 = Phi %8.0:BB36, %37.3:BB37
  10340. val %38.1 = Force %38.0, e0.2
  10341. void Return %38.1
  10342. BB5
  10343. real$' %5.0 = LdConst [1] 4
  10344. cls' %5.1 = LdConst function (mode = "logical", length = ...
  10345. t %5.2 = Identical %3.0, %5.1
  10346. void Assume %5.2, %3.1
  10347. str$' %5.4 = LdConst [1] "list"
  10348. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  10349. void StVar array, %5.5, e0.2
  10350. real$' %5.7 = LdConst [1] 1
  10351. real$' %5.8 = LdConst [1] 4
  10352. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  10353. BB4
  10354. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  10355. void Deopt %4.0
  10356. BB7
  10357. val' %7.0 = Colon %5.7, %5.8, elided
  10358. val' %7.1 = SetShared %7.0
  10359. int$' %7.2 = ForSeqSize %7.1
  10360. int$' %7.3 = LdConst [1] 0
  10361. goto BB8
  10362. BB6
  10363. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  10364. void Deopt %6.0
  10365. BB8
  10366. val %8.0 = Phi %5.5:BB5, %40.5:BB40
  10367. int$' %8.1 = Phi %7.3:BB7, %8.3:BB40
  10368. int$' %8.2 = Inc %8.1
  10369. int$' %8.3 = EnsureNamed %8.2
  10370. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  10371. BB10
  10372. lgl' %10.0 = Lt %7.2, %8.3, elided
  10373. t %10.1 = AsTest %10.0
  10374. void Branch %10.1 -> BB36 (if true) | BB11 (if false)
  10375. BB9
  10376. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  10377. void Deopt %9.0
  10378. BB36
  10379. goto BB38
  10380. BB11
  10381. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  10382. BB13
  10383. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  10384. void StVar i, %13.0, e0.2
  10385. cls %13.2 = LdFun buildTreeDepth, e0.2
  10386. prom %13.3 = MkArg missing, Prom(2), e0.2
  10387. prom %13.4 = MkArg missing, Prom(3), e0.2
  10388. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  10389. BB12
  10390. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  10391. void Deopt %12.0
  10392. BB15
  10393. cls' %15.0 = LdConst function (depth, random) { if (d...
  10394. t %15.1 = Identical %13.2, %15.0
  10395. void Assume %15.1, %13.5
  10396. val^? %15.3 = CastType %13.3
  10397. val^? %15.4 = CastType %13.4
  10398. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  10399. val %15.6 = Force %15.3, e15.5
  10400. real$' %15.7 = LdConst [1] 1
  10401. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  10402. BB14
  10403. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  10404. void Deopt %14.0
  10405. BB17
  10406. lgl %17.0 = Eq %15.6, %15.7, e15.5
  10407. lgl %17.1 = AsLogical %17.0
  10408. t %17.2 = AsTest %17.1
  10409. void Branch %17.2 -> BB35 (if true) | BB18 (if false)
  10410. BB16
  10411. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10412. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  10413. void Deopt %16.1
  10414. BB35
  10415. cls %35.0 = LdFun c, e15.5
  10416. prom %35.1 = MkArg missing, Prom(5), e15.5
  10417. fs %35.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10418. fs %35.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%35.2
  10419. val^ %35.4 = Call %35.0(%35.1) %35.3, e15.5
  10420. goto BB39
  10421. BB18
  10422. cls %18.0 = LdFun vector, e15.5
  10423. str$' %18.1 = LdConst [1] "list"
  10424. real$' %18.2 = LdConst [1] 4
  10425. cp %18.3 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  10426. BB39
  10427. val^ %39.0 = Phi %25.0:BB34, %35.4:BB35
  10428. val %39.1 = Force %39.0, e15.5
  10429. goto BB40
  10430. BB20
  10431. cls' %20.0 = LdConst function (mode = "logical", length = ...
  10432. t %20.1 = Identical %18.0, %20.0
  10433. void Assume %20.1, %18.3
  10434. goto BB21
  10435. BB19
  10436. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10437. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  10438. void Deopt %19.1
  10439. BB40
  10440. val^? %40.0 = LdVar array, e0.2
  10441. val %40.1 = Force %40.0, e0.2
  10442. val^? %40.2 = LdVar i, e0.2
  10443. val %40.3 = Force %40.2, e0.2
  10444. val %40.4 = EnsureNamed %39.1
  10445. val %40.5 = Subassign2_1D %40.4, %40.1, %40.3, e0.2
  10446. void StVar array, %40.5, e0.2
  10447. goto BB8
  10448. BB21
  10449. val %21.0 = CallSafeBuiltin vector(%18.1, %18.2)
  10450. goto BB22
  10451. BB22
  10452. void StVar array, %21.0, e15.5
  10453. real$' %22.1 = LdConst [1] 1
  10454. real$' %22.2 = LdConst [1] 4
  10455. cp %22.3 = Checkpoint -> BB24 (by default) | BB23 (if coming from expect)
  10456. BB24
  10457. val' %24.0 = Colon %22.1, %22.2, elided
  10458. val' %24.1 = SetShared %24.0
  10459. int$' %24.2 = ForSeqSize %24.1
  10460. int$' %24.3 = LdConst [1] 0
  10461. goto BB25
  10462. BB23
  10463. fs %23.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10464. fs %23.1 = FrameState 0x7f924457f3d0+192: [%22.1, %22.2], env=e15.5, next=%23.0
  10465. void Deopt %23.1
  10466. BB25
  10467. val %25.0 = Phi %21.0:BB22, %33.7:BB33
  10468. int$' %25.1 = Phi %24.3:BB24, %25.3:BB33
  10469. int$' %25.2 = Inc %25.1
  10470. int$' %25.3 = EnsureNamed %25.2
  10471. cp %25.4 = Checkpoint -> BB27 (by default) | BB26 (if coming from expect)
  10472. BB27
  10473. lgl' %27.0 = Lt %24.2, %25.3, elided
  10474. t %27.1 = AsTest %27.0
  10475. void Branch %27.1 -> BB34 (if true) | BB28 (if false)
  10476. BB26
  10477. fs %26.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10478. fs %26.1 = FrameState 0x7f924457f3d0+203: [%24.1, %24.2, %25.3, %24.2, %25.3], env=e15.5, next=%26.0
  10479. void Deopt %26.1
  10480. BB34
  10481. goto BB39
  10482. BB28
  10483. cp %28.0 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  10484. BB30
  10485. val$' %30.0 = Extract2_1D %24.1, %25.3, elided
  10486. void StVar i, %30.0, e15.5
  10487. cls %30.2 = LdFun buildTreeDepth, e15.5
  10488. prom %30.3 = MkArg missing, Prom(8), e15.5
  10489. prom %30.4 = MkArg missing, Prom(9), e15.5
  10490. cp %30.5 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  10491. BB29
  10492. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10493. fs %29.1 = FrameState 0x7f924457f3d0+219: [%24.1, %24.2, %25.3, %24.1, %25.3], env=e15.5, next=%29.0
  10494. void Deopt %29.1
  10495. BB32
  10496. cls' %32.0 = LdConst function (depth, random) { if (d...
  10497. t %32.1 = Identical %30.2, %32.0
  10498. void Assume %32.1, %30.5
  10499. fs %32.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10500. fs %32.4 = FrameState 0x7f924457f3d0+290: [%24.1, %24.2, %25.3], env=e15.5, next=%32.3
  10501. goto BB33
  10502. BB31
  10503. fs %31.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10504. fs %31.1 = FrameState 0x7f924457f3d0+273: [%24.1, %24.2, %25.3, %30.2], env=e15.5, next=%31.0
  10505. void Deopt %31.1
  10506. BB33
  10507. val^ %33.0 = StaticCall buildTreeDepth[0x7f92446010b0](%30.3, %30.4) %32.4, e15.5
  10508. val^? %33.1 = LdVar array, e15.5
  10509. val %33.2 = Force %33.1, e15.5
  10510. val^? %33.3 = LdVar i, e15.5
  10511. val %33.4 = Force %33.3, e15.5
  10512. val^ %33.5 = EnsureNamed %33.0
  10513. val %33.6 = Force %33.5, e15.5
  10514. val %33.7 = Subassign2_1D %33.6, %33.2, %33.4, e15.5
  10515. void StVar array, %33.7, e15.5
  10516. goto BB25
  10517. Prom 2:
  10518. BB0
  10519. env e0.0 = LdFunctionEnv
  10520. val^? %0.1 = LdVar depth, e0.0
  10521. val %0.2 = Force %0.1, e0.0
  10522. real$' %0.3 = LdConst [1] 1
  10523. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10524. BB2
  10525. val %2.0 = Sub %0.2, %0.3, e0.0
  10526. void Return %2.0
  10527. BB1
  10528. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  10529. void Deopt %1.0
  10530. Prom 3:
  10531. BB0
  10532. env e0.0 = LdFunctionEnv
  10533. val^? %0.1 = LdVar random, e0.0
  10534. val %0.2 = Force %0.1, e0.0
  10535. void Return %0.2
  10536. Prom 4:
  10537. BB0
  10538. env e0.0 = LdFunctionEnv
  10539. cls %0.1 = LdFun nextRandom, e0.0
  10540. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  10541. t %0.3 = Identical %0.1, %0.2
  10542. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10543. BB2
  10544. void Assume %0.3, %0.4
  10545. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  10546. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  10547. real$' %2.3 = LdConst [1] 10
  10548. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  10549. BB1
  10550. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  10551. void Deopt %1.0
  10552. BB4
  10553. val %4.0 = Force %2.2, e0.0
  10554. val %4.1 = Mod %4.0, %2.3, e0.0
  10555. real$' %4.2 = LdConst [1] 1
  10556. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  10557. BB3
  10558. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  10559. void Deopt %3.0
  10560. BB6
  10561. val %6.0 = Add %4.1, %4.2, e0.0
  10562. void Return %6.0
  10563. BB5
  10564. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  10565. void Deopt %5.0
  10566. Prom 5:
  10567. BB0
  10568. env e0.0 = LdFunctionEnv
  10569. cls %0.1 = LdFun nextRandom, e0.0
  10570. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  10571. t %0.3 = Identical %0.1, %0.2
  10572. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10573. BB2
  10574. void Assume %0.3, %0.4
  10575. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  10576. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  10577. real$' %2.3 = LdConst [1] 10
  10578. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  10579. BB1
  10580. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  10581. void Deopt %1.0
  10582. BB4
  10583. val %4.0 = Force %2.2, e0.0
  10584. val %4.1 = Mod %4.0, %2.3, e0.0
  10585. real$' %4.2 = LdConst [1] 1
  10586. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  10587. BB3
  10588. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  10589. void Deopt %3.0
  10590. BB6
  10591. val %6.0 = Add %4.1, %4.2, e0.0
  10592. void Return %6.0
  10593. BB5
  10594. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  10595. void Deopt %5.0
  10596. Prom 8:
  10597. BB0
  10598. env e0.0 = LdFunctionEnv
  10599. val^? %0.1 = LdVar depth, e0.0
  10600. val %0.2 = Force %0.1, e0.0
  10601. real$' %0.3 = LdConst [1] 1
  10602. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10603. BB2
  10604. val %2.0 = Sub %0.2, %0.3, e0.0
  10605. void Return %2.0
  10606. BB1
  10607. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  10608. void Deopt %1.0
  10609. Prom 9:
  10610. BB0
  10611. env e0.0 = LdFunctionEnv
  10612. val^? %0.1 = LdVar random, e0.0
  10613. val %0.2 = Force %0.1, e0.0
  10614. void Return %0.2
  10615. ├────── Delay instructions: == 154
  10616. buildTreeDepth[0x7f92446010b0]
  10617. BB0
  10618. val^ %0.0 = LdArg 0
  10619. val^ %0.1 = LdArg 1
  10620. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  10621. val %0.3 = Force! %0.0, e0.2
  10622. real$' %0.4 = LdConst [1] 1
  10623. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10624. BB2
  10625. lgl %2.0 = Eq %0.3, %0.4, e0.2
  10626. lgl %2.1 = AsLogical %2.0
  10627. t %2.2 = AsTest %2.1
  10628. void Branch %2.2 -> BB37 (if true) | BB3 (if false)
  10629. BB1
  10630. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  10631. void Deopt %1.0
  10632. BB37
  10633. cls %37.0 = LdFun c, e0.2
  10634. prom %37.1 = MkArg missing, Prom(4), e0.2
  10635. fs %37.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  10636. val^ %37.3 = Call %37.0(%37.1) %37.2, e0.2
  10637. goto BB38
  10638. BB3
  10639. cls %3.0 = LdFun vector, e0.2
  10640. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  10641. BB38
  10642. val^ %38.0 = Phi %8.0:BB36, %37.3:BB37
  10643. val %38.1 = Force %38.0, e0.2
  10644. void Return %38.1
  10645. BB5
  10646. cls' %5.0 = LdConst function (mode = "logical", length = ...
  10647. t %5.1 = Identical %3.0, %5.0
  10648. void Assume %5.1, %3.1
  10649. real$' %5.3 = LdConst [1] 4
  10650. str$' %5.4 = LdConst [1] "list"
  10651. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  10652. void StVar array, %5.5, e0.2
  10653. real$' %5.7 = LdConst [1] 1
  10654. real$' %5.8 = LdConst [1] 4
  10655. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  10656. BB4
  10657. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  10658. void Deopt %4.0
  10659. BB7
  10660. val' %7.0 = Colon %5.7, %5.8, elided
  10661. val' %7.1 = SetShared %7.0
  10662. int$' %7.2 = ForSeqSize %7.1
  10663. int$' %7.3 = LdConst [1] 0
  10664. goto BB8
  10665. BB6
  10666. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  10667. void Deopt %6.0
  10668. BB8
  10669. val %8.0 = Phi %5.5:BB5, %40.5:BB40
  10670. int$' %8.1 = Phi %7.3:BB7, %8.3:BB40
  10671. int$' %8.2 = Inc %8.1
  10672. int$' %8.3 = EnsureNamed %8.2
  10673. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  10674. BB10
  10675. lgl' %10.0 = Lt %7.2, %8.3, elided
  10676. t %10.1 = AsTest %10.0
  10677. void Branch %10.1 -> BB36 (if true) | BB11 (if false)
  10678. BB9
  10679. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  10680. void Deopt %9.0
  10681. BB36
  10682. goto BB38
  10683. BB11
  10684. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  10685. BB13
  10686. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  10687. void StVar i, %13.0, e0.2
  10688. cls %13.2 = LdFun buildTreeDepth, e0.2
  10689. prom %13.3 = MkArg missing, Prom(2), e0.2
  10690. prom %13.4 = MkArg missing, Prom(3), e0.2
  10691. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  10692. BB12
  10693. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  10694. void Deopt %12.0
  10695. BB15
  10696. cls' %15.0 = LdConst function (depth, random) { if (d...
  10697. t %15.1 = Identical %13.2, %15.0
  10698. void Assume %15.1, %13.5
  10699. val^? %15.3 = CastType %13.3
  10700. val^? %15.4 = CastType %13.4
  10701. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  10702. val %15.6 = Force %15.3, e15.5
  10703. real$' %15.7 = LdConst [1] 1
  10704. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  10705. BB14
  10706. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  10707. void Deopt %14.0
  10708. BB17
  10709. lgl %17.0 = Eq %15.6, %15.7, e15.5
  10710. lgl %17.1 = AsLogical %17.0
  10711. t %17.2 = AsTest %17.1
  10712. void Branch %17.2 -> BB35 (if true) | BB18 (if false)
  10713. BB16
  10714. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10715. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  10716. void Deopt %16.1
  10717. BB35
  10718. cls %35.0 = LdFun c, e15.5
  10719. prom %35.1 = MkArg missing, Prom(5), e15.5
  10720. fs %35.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10721. fs %35.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%35.2
  10722. val^ %35.4 = Call %35.0(%35.1) %35.3, e15.5
  10723. goto BB39
  10724. BB18
  10725. cls %18.0 = LdFun vector, e15.5
  10726. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  10727. BB39
  10728. val^ %39.0 = Phi %25.0:BB34, %35.4:BB35
  10729. val %39.1 = Force %39.0, e15.5
  10730. goto BB40
  10731. BB20
  10732. cls' %20.0 = LdConst function (mode = "logical", length = ...
  10733. t %20.1 = Identical %18.0, %20.0
  10734. void Assume %20.1, %18.1
  10735. goto BB21
  10736. BB19
  10737. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10738. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  10739. void Deopt %19.1
  10740. BB40
  10741. val^? %40.0 = LdVar array, e0.2
  10742. val %40.1 = Force %40.0, e0.2
  10743. val^? %40.2 = LdVar i, e0.2
  10744. val %40.3 = Force %40.2, e0.2
  10745. val %40.4 = EnsureNamed %39.1
  10746. val %40.5 = Subassign2_1D %40.4, %40.1, %40.3, e0.2
  10747. void StVar array, %40.5, e0.2
  10748. goto BB8
  10749. BB21
  10750. str$' %21.0 = LdConst [1] "list"
  10751. real$' %21.1 = LdConst [1] 4
  10752. val %21.2 = CallSafeBuiltin vector(%21.0, %21.1)
  10753. goto BB22
  10754. BB22
  10755. void StVar array, %21.2, e15.5
  10756. real$' %22.1 = LdConst [1] 1
  10757. real$' %22.2 = LdConst [1] 4
  10758. cp %22.3 = Checkpoint -> BB24 (by default) | BB23 (if coming from expect)
  10759. BB24
  10760. val' %24.0 = Colon %22.1, %22.2, elided
  10761. val' %24.1 = SetShared %24.0
  10762. int$' %24.2 = ForSeqSize %24.1
  10763. int$' %24.3 = LdConst [1] 0
  10764. goto BB25
  10765. BB23
  10766. fs %23.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10767. fs %23.1 = FrameState 0x7f924457f3d0+192: [%22.1, %22.2], env=e15.5, next=%23.0
  10768. void Deopt %23.1
  10769. BB25
  10770. val %25.0 = Phi %21.2:BB22, %33.7:BB33
  10771. int$' %25.1 = Phi %24.3:BB24, %25.3:BB33
  10772. int$' %25.2 = Inc %25.1
  10773. int$' %25.3 = EnsureNamed %25.2
  10774. cp %25.4 = Checkpoint -> BB27 (by default) | BB26 (if coming from expect)
  10775. BB27
  10776. lgl' %27.0 = Lt %24.2, %25.3, elided
  10777. t %27.1 = AsTest %27.0
  10778. void Branch %27.1 -> BB34 (if true) | BB28 (if false)
  10779. BB26
  10780. fs %26.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10781. fs %26.1 = FrameState 0x7f924457f3d0+203: [%24.1, %24.2, %25.3, %24.2, %25.3], env=e15.5, next=%26.0
  10782. void Deopt %26.1
  10783. BB34
  10784. goto BB39
  10785. BB28
  10786. cp %28.0 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  10787. BB30
  10788. val$' %30.0 = Extract2_1D %24.1, %25.3, elided
  10789. void StVar i, %30.0, e15.5
  10790. cls %30.2 = LdFun buildTreeDepth, e15.5
  10791. prom %30.3 = MkArg missing, Prom(8), e15.5
  10792. prom %30.4 = MkArg missing, Prom(9), e15.5
  10793. cp %30.5 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  10794. BB29
  10795. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10796. fs %29.1 = FrameState 0x7f924457f3d0+219: [%24.1, %24.2, %25.3, %24.1, %25.3], env=e15.5, next=%29.0
  10797. void Deopt %29.1
  10798. BB32
  10799. cls' %32.0 = LdConst function (depth, random) { if (d...
  10800. t %32.1 = Identical %30.2, %32.0
  10801. void Assume %32.1, %30.5
  10802. fs %32.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10803. fs %32.4 = FrameState 0x7f924457f3d0+290: [%24.1, %24.2, %25.3], env=e15.5, next=%32.3
  10804. goto BB33
  10805. BB31
  10806. fs %31.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  10807. fs %31.1 = FrameState 0x7f924457f3d0+273: [%24.1, %24.2, %25.3, %30.2], env=e15.5, next=%31.0
  10808. void Deopt %31.1
  10809. BB33
  10810. val^ %33.0 = StaticCall buildTreeDepth[0x7f92446010b0](%30.3, %30.4) %32.4, e15.5
  10811. val^? %33.1 = LdVar array, e15.5
  10812. val %33.2 = Force %33.1, e15.5
  10813. val^? %33.3 = LdVar i, e15.5
  10814. val %33.4 = Force %33.3, e15.5
  10815. val^ %33.5 = EnsureNamed %33.0
  10816. val %33.6 = Force %33.5, e15.5
  10817. val %33.7 = Subassign2_1D %33.6, %33.2, %33.4, e15.5
  10818. void StVar array, %33.7, e15.5
  10819. goto BB25
  10820. Prom 2:
  10821. BB0
  10822. env e0.0 = LdFunctionEnv
  10823. val^? %0.1 = LdVar depth, e0.0
  10824. val %0.2 = Force %0.1, e0.0
  10825. real$' %0.3 = LdConst [1] 1
  10826. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10827. BB2
  10828. val %2.0 = Sub %0.2, %0.3, e0.0
  10829. void Return %2.0
  10830. BB1
  10831. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  10832. void Deopt %1.0
  10833. Prom 3:
  10834. BB0
  10835. env e0.0 = LdFunctionEnv
  10836. val^? %0.1 = LdVar random, e0.0
  10837. val %0.2 = Force %0.1, e0.0
  10838. void Return %0.2
  10839. Prom 4:
  10840. BB0
  10841. env e0.0 = LdFunctionEnv
  10842. cls %0.1 = LdFun nextRandom, e0.0
  10843. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  10844. t %0.3 = Identical %0.1, %0.2
  10845. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10846. BB2
  10847. void Assume %0.3, %0.4
  10848. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  10849. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  10850. real$' %2.3 = LdConst [1] 10
  10851. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  10852. BB1
  10853. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  10854. void Deopt %1.0
  10855. BB4
  10856. val %4.0 = Force %2.2, e0.0
  10857. val %4.1 = Mod %4.0, %2.3, e0.0
  10858. real$' %4.2 = LdConst [1] 1
  10859. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  10860. BB3
  10861. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  10862. void Deopt %3.0
  10863. BB6
  10864. val %6.0 = Add %4.1, %4.2, e0.0
  10865. void Return %6.0
  10866. BB5
  10867. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  10868. void Deopt %5.0
  10869. Prom 5:
  10870. BB0
  10871. env e0.0 = LdFunctionEnv
  10872. cls %0.1 = LdFun nextRandom, e0.0
  10873. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  10874. t %0.3 = Identical %0.1, %0.2
  10875. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10876. BB2
  10877. void Assume %0.3, %0.4
  10878. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  10879. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  10880. real$' %2.3 = LdConst [1] 10
  10881. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  10882. BB1
  10883. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  10884. void Deopt %1.0
  10885. BB4
  10886. val %4.0 = Force %2.2, e0.0
  10887. val %4.1 = Mod %4.0, %2.3, e0.0
  10888. real$' %4.2 = LdConst [1] 1
  10889. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  10890. BB3
  10891. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  10892. void Deopt %3.0
  10893. BB6
  10894. val %6.0 = Add %4.1, %4.2, e0.0
  10895. void Return %6.0
  10896. BB5
  10897. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  10898. void Deopt %5.0
  10899. Prom 8:
  10900. BB0
  10901. env e0.0 = LdFunctionEnv
  10902. val^? %0.1 = LdVar depth, e0.0
  10903. val %0.2 = Force %0.1, e0.0
  10904. real$' %0.3 = LdConst [1] 1
  10905. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10906. BB2
  10907. val %2.0 = Sub %0.2, %0.3, e0.0
  10908. void Return %2.0
  10909. BB1
  10910. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  10911. void Deopt %1.0
  10912. Prom 9:
  10913. BB0
  10914. env e0.0 = LdFunctionEnv
  10915. val^? %0.1 = LdVar random, e0.0
  10916. val %0.2 = Force %0.1, e0.0
  10917. void Return %0.2
  10918. ├────── Elide environments not needed: == 161
  10919. buildTreeDepth[0x7f92446010b0]
  10920. BB0
  10921. val^ %0.0 = LdArg 0
  10922. val^ %0.1 = LdArg 1
  10923. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  10924. val %0.3 = Force! %0.0, e0.2
  10925. real$' %0.4 = LdConst [1] 1
  10926. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  10927. BB2
  10928. lgl %2.0 = Eq %0.3, %0.4, e0.2
  10929. lgl %2.1 = AsLogical %2.0
  10930. t %2.2 = AsTest %2.1
  10931. void Branch %2.2 -> BB37 (if true) | BB3 (if false)
  10932. BB1
  10933. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  10934. void Deopt %1.0
  10935. BB37
  10936. cls %37.0 = LdFun c, e0.2
  10937. prom %37.1 = MkArg missing, Prom(4), e0.2
  10938. fs %37.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  10939. val^ %37.3 = Call %37.0(%37.1) %37.2, e0.2
  10940. goto BB38
  10941. BB3
  10942. cls %3.0 = LdFun vector, e0.2
  10943. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  10944. BB38
  10945. val^ %38.0 = Phi %8.0:BB36, %37.3:BB37
  10946. val %38.1 = Force %38.0, e0.2
  10947. void Return %38.1
  10948. BB5
  10949. cls' %5.0 = LdConst function (mode = "logical", length = ...
  10950. t %5.1 = Identical %3.0, %5.0
  10951. void Assume %5.1, %3.1
  10952. real$' %5.3 = LdConst [1] 4
  10953. str$' %5.4 = LdConst [1] "list"
  10954. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  10955. void StVar array, %5.5, e0.2
  10956. real$' %5.7 = LdConst [1] 1
  10957. real$' %5.8 = LdConst [1] 4
  10958. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  10959. BB4
  10960. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  10961. void Deopt %4.0
  10962. BB7
  10963. val' %7.0 = Colon %5.7, %5.8, elided
  10964. val' %7.1 = SetShared %7.0
  10965. int$' %7.2 = ForSeqSize %7.1
  10966. int$' %7.3 = LdConst [1] 0
  10967. goto BB8
  10968. BB6
  10969. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  10970. void Deopt %6.0
  10971. BB8
  10972. val %8.0 = Phi %5.5:BB5, %40.5:BB40
  10973. int$' %8.1 = Phi %7.3:BB7, %8.3:BB40
  10974. int$' %8.2 = Inc %8.1
  10975. int$' %8.3 = EnsureNamed %8.2
  10976. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  10977. BB10
  10978. lgl' %10.0 = Lt %7.2, %8.3, elided
  10979. t %10.1 = AsTest %10.0
  10980. void Branch %10.1 -> BB36 (if true) | BB11 (if false)
  10981. BB9
  10982. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  10983. void Deopt %9.0
  10984. BB36
  10985. goto BB38
  10986. BB11
  10987. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  10988. BB13
  10989. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  10990. void StVar i, %13.0, e0.2
  10991. cls %13.2 = LdFun buildTreeDepth, e0.2
  10992. prom %13.3 = MkArg missing, Prom(2), e0.2
  10993. prom %13.4 = MkArg missing, Prom(3), e0.2
  10994. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  10995. BB12
  10996. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  10997. void Deopt %12.0
  10998. BB15
  10999. cls' %15.0 = LdConst function (depth, random) { if (d...
  11000. t %15.1 = Identical %13.2, %15.0
  11001. void Assume %15.1, %13.5
  11002. val^? %15.3 = CastType %13.3
  11003. val^? %15.4 = CastType %13.4
  11004. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  11005. val %15.6 = Force %15.3, e15.5
  11006. real$' %15.7 = LdConst [1] 1
  11007. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  11008. BB14
  11009. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  11010. void Deopt %14.0
  11011. BB17
  11012. lgl %17.0 = Eq %15.6, %15.7, e15.5
  11013. lgl %17.1 = AsLogical %17.0
  11014. t %17.2 = AsTest %17.1
  11015. void Branch %17.2 -> BB35 (if true) | BB18 (if false)
  11016. BB16
  11017. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11018. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  11019. void Deopt %16.1
  11020. BB35
  11021. cls %35.0 = LdFun c, e15.5
  11022. prom %35.1 = MkArg missing, Prom(5), e15.5
  11023. fs %35.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11024. fs %35.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%35.2
  11025. val^ %35.4 = Call %35.0(%35.1) %35.3, e15.5
  11026. goto BB39
  11027. BB18
  11028. cls %18.0 = LdFun vector, e15.5
  11029. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  11030. BB39
  11031. val^ %39.0 = Phi %25.0:BB34, %35.4:BB35
  11032. val %39.1 = Force %39.0, e15.5
  11033. goto BB40
  11034. BB20
  11035. cls' %20.0 = LdConst function (mode = "logical", length = ...
  11036. t %20.1 = Identical %18.0, %20.0
  11037. void Assume %20.1, %18.1
  11038. goto BB21
  11039. BB19
  11040. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11041. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  11042. void Deopt %19.1
  11043. BB40
  11044. val^? %40.0 = LdVar array, e0.2
  11045. val %40.1 = Force %40.0, e0.2
  11046. val^? %40.2 = LdVar i, e0.2
  11047. val %40.3 = Force %40.2, e0.2
  11048. val %40.4 = EnsureNamed %39.1
  11049. val %40.5 = Subassign2_1D %40.4, %40.1, %40.3, e0.2
  11050. void StVar array, %40.5, e0.2
  11051. goto BB8
  11052. BB21
  11053. str$' %21.0 = LdConst [1] "list"
  11054. real$' %21.1 = LdConst [1] 4
  11055. val %21.2 = CallSafeBuiltin vector(%21.0, %21.1)
  11056. goto BB22
  11057. BB22
  11058. void StVar array, %21.2, e15.5
  11059. real$' %22.1 = LdConst [1] 1
  11060. real$' %22.2 = LdConst [1] 4
  11061. cp %22.3 = Checkpoint -> BB24 (by default) | BB23 (if coming from expect)
  11062. BB24
  11063. val' %24.0 = Colon %22.1, %22.2, elided
  11064. val' %24.1 = SetShared %24.0
  11065. int$' %24.2 = ForSeqSize %24.1
  11066. int$' %24.3 = LdConst [1] 0
  11067. goto BB25
  11068. BB23
  11069. fs %23.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11070. fs %23.1 = FrameState 0x7f924457f3d0+192: [%22.1, %22.2], env=e15.5, next=%23.0
  11071. void Deopt %23.1
  11072. BB25
  11073. val %25.0 = Phi %21.2:BB22, %33.7:BB33
  11074. int$' %25.1 = Phi %24.3:BB24, %25.3:BB33
  11075. int$' %25.2 = Inc %25.1
  11076. int$' %25.3 = EnsureNamed %25.2
  11077. cp %25.4 = Checkpoint -> BB27 (by default) | BB26 (if coming from expect)
  11078. BB27
  11079. lgl' %27.0 = Lt %24.2, %25.3, elided
  11080. t %27.1 = AsTest %27.0
  11081. void Branch %27.1 -> BB34 (if true) | BB28 (if false)
  11082. BB26
  11083. fs %26.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11084. fs %26.1 = FrameState 0x7f924457f3d0+203: [%24.1, %24.2, %25.3, %24.2, %25.3], env=e15.5, next=%26.0
  11085. void Deopt %26.1
  11086. BB34
  11087. goto BB39
  11088. BB28
  11089. cp %28.0 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  11090. BB30
  11091. val$' %30.0 = Extract2_1D %24.1, %25.3, elided
  11092. void StVar i, %30.0, e15.5
  11093. cls %30.2 = LdFun buildTreeDepth, e15.5
  11094. prom %30.3 = MkArg missing, Prom(8), e15.5
  11095. prom %30.4 = MkArg missing, Prom(9), e15.5
  11096. cp %30.5 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  11097. BB29
  11098. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11099. fs %29.1 = FrameState 0x7f924457f3d0+219: [%24.1, %24.2, %25.3, %24.1, %25.3], env=e15.5, next=%29.0
  11100. void Deopt %29.1
  11101. BB32
  11102. cls' %32.0 = LdConst function (depth, random) { if (d...
  11103. t %32.1 = Identical %30.2, %32.0
  11104. void Assume %32.1, %30.5
  11105. fs %32.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11106. fs %32.4 = FrameState 0x7f924457f3d0+290: [%24.1, %24.2, %25.3], env=e15.5, next=%32.3
  11107. goto BB33
  11108. BB31
  11109. fs %31.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11110. fs %31.1 = FrameState 0x7f924457f3d0+273: [%24.1, %24.2, %25.3, %30.2], env=e15.5, next=%31.0
  11111. void Deopt %31.1
  11112. BB33
  11113. val^ %33.0 = StaticCall buildTreeDepth[0x7f92446010b0](%30.3, %30.4) %32.4, e15.5
  11114. val^? %33.1 = LdVar array, e15.5
  11115. val %33.2 = Force %33.1, e15.5
  11116. val^? %33.3 = LdVar i, e15.5
  11117. val %33.4 = Force %33.3, e15.5
  11118. val^ %33.5 = EnsureNamed %33.0
  11119. val %33.6 = Force %33.5, e15.5
  11120. val %33.7 = Subassign2_1D %33.6, %33.2, %33.4, e15.5
  11121. void StVar array, %33.7, e15.5
  11122. goto BB25
  11123. Prom 2:
  11124. BB0
  11125. env e0.0 = LdFunctionEnv
  11126. val^? %0.1 = LdVar depth, e0.0
  11127. val %0.2 = Force %0.1, e0.0
  11128. real$' %0.3 = LdConst [1] 1
  11129. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11130. BB2
  11131. val %2.0 = Sub %0.2, %0.3, e0.0
  11132. void Return %2.0
  11133. BB1
  11134. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  11135. void Deopt %1.0
  11136. Prom 3:
  11137. BB0
  11138. env e0.0 = LdFunctionEnv
  11139. val^? %0.1 = LdVar random, e0.0
  11140. val %0.2 = Force %0.1, e0.0
  11141. void Return %0.2
  11142. Prom 4:
  11143. BB0
  11144. env e0.0 = LdFunctionEnv
  11145. cls %0.1 = LdFun nextRandom, e0.0
  11146. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  11147. t %0.3 = Identical %0.1, %0.2
  11148. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11149. BB2
  11150. void Assume %0.3, %0.4
  11151. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  11152. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  11153. real$' %2.3 = LdConst [1] 10
  11154. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  11155. BB1
  11156. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  11157. void Deopt %1.0
  11158. BB4
  11159. val %4.0 = Force %2.2, e0.0
  11160. val %4.1 = Mod %4.0, %2.3, e0.0
  11161. real$' %4.2 = LdConst [1] 1
  11162. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  11163. BB3
  11164. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  11165. void Deopt %3.0
  11166. BB6
  11167. val %6.0 = Add %4.1, %4.2, e0.0
  11168. void Return %6.0
  11169. BB5
  11170. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  11171. void Deopt %5.0
  11172. Prom 5:
  11173. BB0
  11174. env e0.0 = LdFunctionEnv
  11175. cls %0.1 = LdFun nextRandom, e0.0
  11176. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  11177. t %0.3 = Identical %0.1, %0.2
  11178. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11179. BB2
  11180. void Assume %0.3, %0.4
  11181. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  11182. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  11183. real$' %2.3 = LdConst [1] 10
  11184. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  11185. BB1
  11186. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  11187. void Deopt %1.0
  11188. BB4
  11189. val %4.0 = Force %2.2, e0.0
  11190. val %4.1 = Mod %4.0, %2.3, e0.0
  11191. real$' %4.2 = LdConst [1] 1
  11192. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  11193. BB3
  11194. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  11195. void Deopt %3.0
  11196. BB6
  11197. val %6.0 = Add %4.1, %4.2, e0.0
  11198. void Return %6.0
  11199. BB5
  11200. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  11201. void Deopt %5.0
  11202. Prom 8:
  11203. BB0
  11204. env e0.0 = LdFunctionEnv
  11205. val^? %0.1 = LdVar depth, e0.0
  11206. val %0.2 = Force %0.1, e0.0
  11207. real$' %0.3 = LdConst [1] 1
  11208. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11209. BB2
  11210. val %2.0 = Sub %0.2, %0.3, e0.0
  11211. void Return %2.0
  11212. BB1
  11213. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  11214. void Deopt %1.0
  11215. Prom 9:
  11216. BB0
  11217. env e0.0 = LdFunctionEnv
  11218. val^? %0.1 = LdVar random, e0.0
  11219. val %0.2 = Force %0.1, e0.0
  11220. void Return %0.2
  11221. ├────── Move environment creation as far as possible: == 168
  11222. buildTreeDepth[0x7f92446010b0]
  11223. BB0
  11224. val^ %0.0 = LdArg 0
  11225. val^ %0.1 = LdArg 1
  11226. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  11227. val %0.3 = Force! %0.0, e0.2
  11228. real$' %0.4 = LdConst [1] 1
  11229. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11230. BB2
  11231. lgl %2.0 = Eq %0.3, %0.4, e0.2
  11232. lgl %2.1 = AsLogical %2.0
  11233. t %2.2 = AsTest %2.1
  11234. void Branch %2.2 -> BB37 (if true) | BB3 (if false)
  11235. BB1
  11236. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  11237. void Deopt %1.0
  11238. BB37
  11239. cls %37.0 = LdFun c, e0.2
  11240. prom %37.1 = MkArg missing, Prom(4), e0.2
  11241. fs %37.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  11242. val^ %37.3 = Call %37.0(%37.1) %37.2, e0.2
  11243. goto BB38
  11244. BB3
  11245. cls %3.0 = LdFun vector, e0.2
  11246. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  11247. BB38
  11248. val^ %38.0 = Phi %8.0:BB36, %37.3:BB37
  11249. val %38.1 = Force %38.0, e0.2
  11250. void Return %38.1
  11251. BB5
  11252. cls' %5.0 = LdConst function (mode = "logical", length = ...
  11253. t %5.1 = Identical %3.0, %5.0
  11254. void Assume %5.1, %3.1
  11255. real$' %5.3 = LdConst [1] 4
  11256. str$' %5.4 = LdConst [1] "list"
  11257. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  11258. void StVar array, %5.5, e0.2
  11259. real$' %5.7 = LdConst [1] 1
  11260. real$' %5.8 = LdConst [1] 4
  11261. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  11262. BB4
  11263. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  11264. void Deopt %4.0
  11265. BB7
  11266. val' %7.0 = Colon %5.7, %5.8, elided
  11267. val' %7.1 = SetShared %7.0
  11268. int$' %7.2 = ForSeqSize %7.1
  11269. int$' %7.3 = LdConst [1] 0
  11270. goto BB8
  11271. BB6
  11272. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  11273. void Deopt %6.0
  11274. BB8
  11275. val %8.0 = Phi %5.5:BB5, %40.5:BB40
  11276. int$' %8.1 = Phi %7.3:BB7, %8.3:BB40
  11277. int$' %8.2 = Inc %8.1
  11278. int$' %8.3 = EnsureNamed %8.2
  11279. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  11280. BB10
  11281. lgl' %10.0 = Lt %7.2, %8.3, elided
  11282. t %10.1 = AsTest %10.0
  11283. void Branch %10.1 -> BB36 (if true) | BB11 (if false)
  11284. BB9
  11285. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  11286. void Deopt %9.0
  11287. BB36
  11288. goto BB38
  11289. BB11
  11290. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  11291. BB13
  11292. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  11293. void StVar i, %13.0, e0.2
  11294. cls %13.2 = LdFun buildTreeDepth, e0.2
  11295. prom %13.3 = MkArg missing, Prom(2), e0.2
  11296. prom %13.4 = MkArg missing, Prom(3), e0.2
  11297. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  11298. BB12
  11299. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  11300. void Deopt %12.0
  11301. BB15
  11302. cls' %15.0 = LdConst function (depth, random) { if (d...
  11303. t %15.1 = Identical %13.2, %15.0
  11304. void Assume %15.1, %13.5
  11305. val^? %15.3 = CastType %13.3
  11306. val^? %15.4 = CastType %13.4
  11307. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  11308. val %15.6 = Force %15.3, e15.5
  11309. real$' %15.7 = LdConst [1] 1
  11310. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  11311. BB14
  11312. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  11313. void Deopt %14.0
  11314. BB17
  11315. lgl %17.0 = Eq %15.6, %15.7, e15.5
  11316. lgl %17.1 = AsLogical %17.0
  11317. t %17.2 = AsTest %17.1
  11318. void Branch %17.2 -> BB35 (if true) | BB18 (if false)
  11319. BB16
  11320. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11321. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  11322. void Deopt %16.1
  11323. BB35
  11324. cls %35.0 = LdFun c, e15.5
  11325. prom %35.1 = MkArg missing, Prom(5), e15.5
  11326. fs %35.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11327. fs %35.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%35.2
  11328. val^ %35.4 = Call %35.0(%35.1) %35.3, e15.5
  11329. goto BB39
  11330. BB18
  11331. cls %18.0 = LdFun vector, e15.5
  11332. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  11333. BB39
  11334. val^ %39.0 = Phi %25.0:BB34, %35.4:BB35
  11335. val %39.1 = Force %39.0, e15.5
  11336. goto BB40
  11337. BB20
  11338. cls' %20.0 = LdConst function (mode = "logical", length = ...
  11339. t %20.1 = Identical %18.0, %20.0
  11340. void Assume %20.1, %18.1
  11341. goto BB21
  11342. BB19
  11343. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11344. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  11345. void Deopt %19.1
  11346. BB40
  11347. val^? %40.0 = LdVar array, e0.2
  11348. val %40.1 = Force %40.0, e0.2
  11349. val^? %40.2 = LdVar i, e0.2
  11350. val %40.3 = Force %40.2, e0.2
  11351. val %40.4 = EnsureNamed %39.1
  11352. val %40.5 = Subassign2_1D %40.4, %40.1, %40.3, e0.2
  11353. void StVar array, %40.5, e0.2
  11354. goto BB8
  11355. BB21
  11356. str$' %21.0 = LdConst [1] "list"
  11357. real$' %21.1 = LdConst [1] 4
  11358. val %21.2 = CallSafeBuiltin vector(%21.0, %21.1)
  11359. goto BB22
  11360. BB22
  11361. void StVar array, %21.2, e15.5
  11362. real$' %22.1 = LdConst [1] 1
  11363. real$' %22.2 = LdConst [1] 4
  11364. cp %22.3 = Checkpoint -> BB24 (by default) | BB23 (if coming from expect)
  11365. BB24
  11366. val' %24.0 = Colon %22.1, %22.2, elided
  11367. val' %24.1 = SetShared %24.0
  11368. int$' %24.2 = ForSeqSize %24.1
  11369. int$' %24.3 = LdConst [1] 0
  11370. goto BB25
  11371. BB23
  11372. fs %23.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11373. fs %23.1 = FrameState 0x7f924457f3d0+192: [%22.1, %22.2], env=e15.5, next=%23.0
  11374. void Deopt %23.1
  11375. BB25
  11376. val %25.0 = Phi %21.2:BB22, %33.7:BB33
  11377. int$' %25.1 = Phi %24.3:BB24, %25.3:BB33
  11378. int$' %25.2 = Inc %25.1
  11379. int$' %25.3 = EnsureNamed %25.2
  11380. cp %25.4 = Checkpoint -> BB27 (by default) | BB26 (if coming from expect)
  11381. BB27
  11382. lgl' %27.0 = Lt %24.2, %25.3, elided
  11383. t %27.1 = AsTest %27.0
  11384. void Branch %27.1 -> BB34 (if true) | BB28 (if false)
  11385. BB26
  11386. fs %26.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11387. fs %26.1 = FrameState 0x7f924457f3d0+203: [%24.1, %24.2, %25.3, %24.2, %25.3], env=e15.5, next=%26.0
  11388. void Deopt %26.1
  11389. BB34
  11390. goto BB39
  11391. BB28
  11392. cp %28.0 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  11393. BB30
  11394. val$' %30.0 = Extract2_1D %24.1, %25.3, elided
  11395. void StVar i, %30.0, e15.5
  11396. cls %30.2 = LdFun buildTreeDepth, e15.5
  11397. prom %30.3 = MkArg missing, Prom(8), e15.5
  11398. prom %30.4 = MkArg missing, Prom(9), e15.5
  11399. cp %30.5 = Checkpoint -> BB32 (by default) | BB31 (if coming from expect)
  11400. BB29
  11401. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11402. fs %29.1 = FrameState 0x7f924457f3d0+219: [%24.1, %24.2, %25.3, %24.1, %25.3], env=e15.5, next=%29.0
  11403. void Deopt %29.1
  11404. BB32
  11405. cls' %32.0 = LdConst function (depth, random) { if (d...
  11406. t %32.1 = Identical %30.2, %32.0
  11407. void Assume %32.1, %30.5
  11408. fs %32.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11409. fs %32.4 = FrameState 0x7f924457f3d0+290: [%24.1, %24.2, %25.3], env=e15.5, next=%32.3
  11410. goto BB33
  11411. BB31
  11412. fs %31.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11413. fs %31.1 = FrameState 0x7f924457f3d0+273: [%24.1, %24.2, %25.3, %30.2], env=e15.5, next=%31.0
  11414. void Deopt %31.1
  11415. BB33
  11416. val^ %33.0 = StaticCall buildTreeDepth[0x7f92446010b0](%30.3, %30.4) %32.4, e15.5
  11417. val^? %33.1 = LdVar array, e15.5
  11418. val %33.2 = Force %33.1, e15.5
  11419. val^? %33.3 = LdVar i, e15.5
  11420. val %33.4 = Force %33.3, e15.5
  11421. val^ %33.5 = EnsureNamed %33.0
  11422. val %33.6 = Force %33.5, e15.5
  11423. val %33.7 = Subassign2_1D %33.6, %33.2, %33.4, e15.5
  11424. void StVar array, %33.7, e15.5
  11425. goto BB25
  11426. Prom 2:
  11427. BB0
  11428. env e0.0 = LdFunctionEnv
  11429. val^? %0.1 = LdVar depth, e0.0
  11430. val %0.2 = Force %0.1, e0.0
  11431. real$' %0.3 = LdConst [1] 1
  11432. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11433. BB2
  11434. val %2.0 = Sub %0.2, %0.3, e0.0
  11435. void Return %2.0
  11436. BB1
  11437. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  11438. void Deopt %1.0
  11439. Prom 3:
  11440. BB0
  11441. env e0.0 = LdFunctionEnv
  11442. val^? %0.1 = LdVar random, e0.0
  11443. val %0.2 = Force %0.1, e0.0
  11444. void Return %0.2
  11445. Prom 4:
  11446. BB0
  11447. env e0.0 = LdFunctionEnv
  11448. cls %0.1 = LdFun nextRandom, e0.0
  11449. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  11450. t %0.3 = Identical %0.1, %0.2
  11451. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11452. BB2
  11453. void Assume %0.3, %0.4
  11454. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  11455. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  11456. real$' %2.3 = LdConst [1] 10
  11457. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  11458. BB1
  11459. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  11460. void Deopt %1.0
  11461. BB4
  11462. val %4.0 = Force %2.2, e0.0
  11463. val %4.1 = Mod %4.0, %2.3, e0.0
  11464. real$' %4.2 = LdConst [1] 1
  11465. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  11466. BB3
  11467. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  11468. void Deopt %3.0
  11469. BB6
  11470. val %6.0 = Add %4.1, %4.2, e0.0
  11471. void Return %6.0
  11472. BB5
  11473. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  11474. void Deopt %5.0
  11475. Prom 5:
  11476. BB0
  11477. env e0.0 = LdFunctionEnv
  11478. cls %0.1 = LdFun nextRandom, e0.0
  11479. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  11480. t %0.3 = Identical %0.1, %0.2
  11481. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11482. BB2
  11483. void Assume %0.3, %0.4
  11484. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  11485. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  11486. real$' %2.3 = LdConst [1] 10
  11487. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  11488. BB1
  11489. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  11490. void Deopt %1.0
  11491. BB4
  11492. val %4.0 = Force %2.2, e0.0
  11493. val %4.1 = Mod %4.0, %2.3, e0.0
  11494. real$' %4.2 = LdConst [1] 1
  11495. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  11496. BB3
  11497. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  11498. void Deopt %3.0
  11499. BB6
  11500. val %6.0 = Add %4.1, %4.2, e0.0
  11501. void Return %6.0
  11502. BB5
  11503. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  11504. void Deopt %5.0
  11505. Prom 8:
  11506. BB0
  11507. env e0.0 = LdFunctionEnv
  11508. val^? %0.1 = LdVar depth, e0.0
  11509. val %0.2 = Force %0.1, e0.0
  11510. real$' %0.3 = LdConst [1] 1
  11511. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11512. BB2
  11513. val %2.0 = Sub %0.2, %0.3, e0.0
  11514. void Return %2.0
  11515. BB1
  11516. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  11517. void Deopt %1.0
  11518. Prom 9:
  11519. BB0
  11520. env e0.0 = LdFunctionEnv
  11521. val^? %0.1 = LdVar random, e0.0
  11522. val %0.2 = Force %0.1, e0.0
  11523. void Return %0.2
  11524. ├────── Cleanup redundant operations: == 175
  11525. buildTreeDepth[0x7f92446010b0]
  11526. BB0
  11527. val^ %0.0 = LdArg 0
  11528. val^ %0.1 = LdArg 1
  11529. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  11530. val %0.3 = Force! %0.0, e0.2
  11531. real$' %0.4 = LdConst [1] 1
  11532. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11533. BB2
  11534. lgl %2.0 = Eq %0.3, %0.4, e0.2
  11535. lgl %2.1 = AsLogical %2.0
  11536. t %2.2 = AsTest %2.1
  11537. void Branch %2.2 -> BB36 (if true) | BB3 (if false)
  11538. BB1
  11539. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  11540. void Deopt %1.0
  11541. BB36
  11542. cls %36.0 = LdFun c, e0.2
  11543. prom %36.1 = MkArg missing, Prom(4), e0.2
  11544. fs %36.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  11545. val^ %36.3 = Call %36.0(%36.1) %36.2, e0.2
  11546. goto BB37
  11547. BB3
  11548. cls %3.0 = LdFun vector, e0.2
  11549. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  11550. BB37
  11551. val^ %37.0 = Phi %8.0:BB35, %36.3:BB36
  11552. val %37.1 = Force %37.0, e0.2
  11553. void Return %37.1
  11554. BB5
  11555. cls' %5.0 = LdConst function (mode = "logical", length = ...
  11556. t %5.1 = Identical %3.0, %5.0
  11557. void Assume %5.1, %3.1
  11558. real$' %5.3 = LdConst [1] 4
  11559. str$' %5.4 = LdConst [1] "list"
  11560. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  11561. void StVar array, %5.5, e0.2
  11562. real$' %5.7 = LdConst [1] 1
  11563. real$' %5.8 = LdConst [1] 4
  11564. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  11565. BB4
  11566. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  11567. void Deopt %4.0
  11568. BB7
  11569. val' %7.0 = Colon %5.7, %5.8, elided
  11570. val' %7.1 = SetShared %7.0
  11571. int$' %7.2 = ForSeqSize %7.1
  11572. int$' %7.3 = LdConst [1] 0
  11573. goto BB8
  11574. BB6
  11575. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  11576. void Deopt %6.0
  11577. BB8
  11578. val %8.0 = Phi %5.5:BB5, %38.7:BB38
  11579. int$' %8.1 = Phi %7.3:BB7, %8.3:BB38
  11580. int$' %8.2 = Inc %8.1
  11581. int$' %8.3 = EnsureNamed %8.2
  11582. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  11583. BB10
  11584. lgl' %10.0 = Lt %7.2, %8.3, elided
  11585. t %10.1 = AsTest %10.0
  11586. void Branch %10.1 -> BB35 (if true) | BB11 (if false)
  11587. BB9
  11588. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  11589. void Deopt %9.0
  11590. BB35
  11591. goto BB37
  11592. BB11
  11593. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  11594. BB13
  11595. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  11596. void StVar i, %13.0, e0.2
  11597. cls %13.2 = LdFun buildTreeDepth, e0.2
  11598. prom %13.3 = MkArg missing, Prom(2), e0.2
  11599. prom %13.4 = MkArg missing, Prom(3), e0.2
  11600. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  11601. BB12
  11602. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  11603. void Deopt %12.0
  11604. BB15
  11605. cls' %15.0 = LdConst function (depth, random) { if (d...
  11606. t %15.1 = Identical %13.2, %15.0
  11607. void Assume %15.1, %13.5
  11608. val^? %15.3 = CastType %13.3
  11609. val^? %15.4 = CastType %13.4
  11610. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  11611. val %15.6 = Force %15.3, e15.5
  11612. real$' %15.7 = LdConst [1] 1
  11613. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  11614. BB14
  11615. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  11616. void Deopt %14.0
  11617. BB17
  11618. lgl %17.0 = Eq %15.6, %15.7, e15.5
  11619. lgl %17.1 = AsLogical %17.0
  11620. t %17.2 = AsTest %17.1
  11621. void Branch %17.2 -> BB34 (if true) | BB18 (if false)
  11622. BB16
  11623. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11624. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  11625. void Deopt %16.1
  11626. BB34
  11627. cls %34.0 = LdFun c, e15.5
  11628. prom %34.1 = MkArg missing, Prom(5), e15.5
  11629. fs %34.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11630. fs %34.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%34.2
  11631. val^ %34.4 = Call %34.0(%34.1) %34.3, e15.5
  11632. goto BB38
  11633. BB18
  11634. cls %18.0 = LdFun vector, e15.5
  11635. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  11636. BB38
  11637. val^ %38.0 = Phi %24.0:BB33, %34.4:BB34
  11638. val %38.1 = Force %38.0, e15.5
  11639. val^? %38.2 = LdVar array, e0.2
  11640. val %38.3 = Force %38.2, e0.2
  11641. val^? %38.4 = LdVar i, e0.2
  11642. val %38.5 = Force %38.4, e0.2
  11643. val %38.6 = EnsureNamed %38.1
  11644. val %38.7 = Subassign2_1D %38.6, %38.3, %38.5, e0.2
  11645. void StVar array, %38.7, e0.2
  11646. goto BB8
  11647. BB20
  11648. cls' %20.0 = LdConst function (mode = "logical", length = ...
  11649. t %20.1 = Identical %18.0, %20.0
  11650. void Assume %20.1, %18.1
  11651. str$' %20.3 = LdConst [1] "list"
  11652. real$' %20.4 = LdConst [1] 4
  11653. val %20.5 = CallSafeBuiltin vector(%20.3, %20.4)
  11654. goto BB21
  11655. BB19
  11656. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11657. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  11658. void Deopt %19.1
  11659. BB21
  11660. void StVar array, %20.5, e15.5
  11661. real$' %21.1 = LdConst [1] 1
  11662. real$' %21.2 = LdConst [1] 4
  11663. cp %21.3 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  11664. BB23
  11665. val' %23.0 = Colon %21.1, %21.2, elided
  11666. val' %23.1 = SetShared %23.0
  11667. int$' %23.2 = ForSeqSize %23.1
  11668. int$' %23.3 = LdConst [1] 0
  11669. goto BB24
  11670. BB22
  11671. fs %22.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11672. fs %22.1 = FrameState 0x7f924457f3d0+192: [%21.1, %21.2], env=e15.5, next=%22.0
  11673. void Deopt %22.1
  11674. BB24
  11675. val %24.0 = Phi %20.5:BB21, %32.7:BB32
  11676. int$' %24.1 = Phi %23.3:BB23, %24.3:BB32
  11677. int$' %24.2 = Inc %24.1
  11678. int$' %24.3 = EnsureNamed %24.2
  11679. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  11680. BB26
  11681. lgl' %26.0 = Lt %23.2, %24.3, elided
  11682. t %26.1 = AsTest %26.0
  11683. void Branch %26.1 -> BB33 (if true) | BB27 (if false)
  11684. BB25
  11685. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11686. fs %25.1 = FrameState 0x7f924457f3d0+203: [%23.1, %23.2, %24.3, %23.2, %24.3], env=e15.5, next=%25.0
  11687. void Deopt %25.1
  11688. BB33
  11689. goto BB38
  11690. BB27
  11691. cp %27.0 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  11692. BB29
  11693. val$' %29.0 = Extract2_1D %23.1, %24.3, elided
  11694. void StVar i, %29.0, e15.5
  11695. cls %29.2 = LdFun buildTreeDepth, e15.5
  11696. prom %29.3 = MkArg missing, Prom(8), e15.5
  11697. prom %29.4 = MkArg missing, Prom(9), e15.5
  11698. cp %29.5 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  11699. BB28
  11700. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11701. fs %28.1 = FrameState 0x7f924457f3d0+219: [%23.1, %23.2, %24.3, %23.1, %24.3], env=e15.5, next=%28.0
  11702. void Deopt %28.1
  11703. BB31
  11704. cls' %31.0 = LdConst function (depth, random) { if (d...
  11705. t %31.1 = Identical %29.2, %31.0
  11706. void Assume %31.1, %29.5
  11707. fs %31.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11708. fs %31.4 = FrameState 0x7f924457f3d0+290: [%23.1, %23.2, %24.3], env=e15.5, next=%31.3
  11709. goto BB32
  11710. BB30
  11711. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11712. fs %30.1 = FrameState 0x7f924457f3d0+273: [%23.1, %23.2, %24.3, %29.2], env=e15.5, next=%30.0
  11713. void Deopt %30.1
  11714. BB32
  11715. val^ %32.0 = StaticCall buildTreeDepth[0x7f92446010b0](%29.3, %29.4) %31.4, e15.5
  11716. val^? %32.1 = LdVar array, e15.5
  11717. val %32.2 = Force %32.1, e15.5
  11718. val^? %32.3 = LdVar i, e15.5
  11719. val %32.4 = Force %32.3, e15.5
  11720. val^ %32.5 = EnsureNamed %32.0
  11721. val %32.6 = Force %32.5, e15.5
  11722. val %32.7 = Subassign2_1D %32.6, %32.2, %32.4, e15.5
  11723. void StVar array, %32.7, e15.5
  11724. goto BB24
  11725. Prom 2:
  11726. BB0
  11727. env e0.0 = LdFunctionEnv
  11728. val^? %0.1 = LdVar depth, e0.0
  11729. val %0.2 = Force %0.1, e0.0
  11730. real$' %0.3 = LdConst [1] 1
  11731. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11732. BB2
  11733. val %2.0 = Sub %0.2, %0.3, e0.0
  11734. void Return %2.0
  11735. BB1
  11736. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  11737. void Deopt %1.0
  11738. Prom 3:
  11739. BB0
  11740. env e0.0 = LdFunctionEnv
  11741. val^? %0.1 = LdVar random, e0.0
  11742. val %0.2 = Force %0.1, e0.0
  11743. void Return %0.2
  11744. Prom 4:
  11745. BB0
  11746. env e0.0 = LdFunctionEnv
  11747. cls %0.1 = LdFun nextRandom, e0.0
  11748. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  11749. t %0.3 = Identical %0.1, %0.2
  11750. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11751. BB2
  11752. void Assume %0.3, %0.4
  11753. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  11754. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  11755. real$' %2.3 = LdConst [1] 10
  11756. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  11757. BB1
  11758. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  11759. void Deopt %1.0
  11760. BB4
  11761. val %4.0 = Force %2.2, e0.0
  11762. val %4.1 = Mod %4.0, %2.3, e0.0
  11763. real$' %4.2 = LdConst [1] 1
  11764. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  11765. BB3
  11766. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  11767. void Deopt %3.0
  11768. BB6
  11769. val %6.0 = Add %4.1, %4.2, e0.0
  11770. void Return %6.0
  11771. BB5
  11772. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  11773. void Deopt %5.0
  11774. Prom 5:
  11775. BB0
  11776. env e0.0 = LdFunctionEnv
  11777. cls %0.1 = LdFun nextRandom, e0.0
  11778. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  11779. t %0.3 = Identical %0.1, %0.2
  11780. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11781. BB2
  11782. void Assume %0.3, %0.4
  11783. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  11784. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  11785. real$' %2.3 = LdConst [1] 10
  11786. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  11787. BB1
  11788. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  11789. void Deopt %1.0
  11790. BB4
  11791. val %4.0 = Force %2.2, e0.0
  11792. val %4.1 = Mod %4.0, %2.3, e0.0
  11793. real$' %4.2 = LdConst [1] 1
  11794. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  11795. BB3
  11796. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  11797. void Deopt %3.0
  11798. BB6
  11799. val %6.0 = Add %4.1, %4.2, e0.0
  11800. void Return %6.0
  11801. BB5
  11802. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  11803. void Deopt %5.0
  11804. Prom 8:
  11805. BB0
  11806. env e0.0 = LdFunctionEnv
  11807. val^? %0.1 = LdVar depth, e0.0
  11808. val %0.2 = Force %0.1, e0.0
  11809. real$' %0.3 = LdConst [1] 1
  11810. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11811. BB2
  11812. val %2.0 = Sub %0.2, %0.3, e0.0
  11813. void Return %2.0
  11814. BB1
  11815. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  11816. void Deopt %1.0
  11817. Prom 9:
  11818. BB0
  11819. env e0.0 = LdFunctionEnv
  11820. val^? %0.1 = LdVar random, e0.0
  11821. val %0.2 = Force %0.1, e0.0
  11822. void Return %0.2
  11823. ├────── Inline closures: == 182
  11824. buildTreeDepth[0x7f92446010b0]
  11825. BB0
  11826. val^ %0.0 = LdArg 0
  11827. val^ %0.1 = LdArg 1
  11828. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  11829. val %0.3 = Force! %0.0, e0.2
  11830. real$' %0.4 = LdConst [1] 1
  11831. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  11832. BB2
  11833. lgl %2.0 = Eq %0.3, %0.4, e0.2
  11834. lgl %2.1 = AsLogical %2.0
  11835. t %2.2 = AsTest %2.1
  11836. void Branch %2.2 -> BB36 (if true) | BB3 (if false)
  11837. BB1
  11838. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  11839. void Deopt %1.0
  11840. BB36
  11841. cls %36.0 = LdFun c, e0.2
  11842. prom %36.1 = MkArg missing, Prom(4), e0.2
  11843. fs %36.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  11844. val^ %36.3 = Call %36.0(%36.1) %36.2, e0.2
  11845. goto BB37
  11846. BB3
  11847. cls %3.0 = LdFun vector, e0.2
  11848. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  11849. BB37
  11850. val^ %37.0 = Phi %8.0:BB35, %36.3:BB36
  11851. val %37.1 = Force %37.0, e0.2
  11852. void Return %37.1
  11853. BB5
  11854. cls' %5.0 = LdConst function (mode = "logical", length = ...
  11855. t %5.1 = Identical %3.0, %5.0
  11856. void Assume %5.1, %3.1
  11857. real$' %5.3 = LdConst [1] 4
  11858. str$' %5.4 = LdConst [1] "list"
  11859. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  11860. void StVar array, %5.5, e0.2
  11861. real$' %5.7 = LdConst [1] 1
  11862. real$' %5.8 = LdConst [1] 4
  11863. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  11864. BB4
  11865. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  11866. void Deopt %4.0
  11867. BB7
  11868. val' %7.0 = Colon %5.7, %5.8, elided
  11869. val' %7.1 = SetShared %7.0
  11870. int$' %7.2 = ForSeqSize %7.1
  11871. int$' %7.3 = LdConst [1] 0
  11872. goto BB8
  11873. BB6
  11874. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  11875. void Deopt %6.0
  11876. BB8
  11877. val %8.0 = Phi %5.5:BB5, %38.7:BB38
  11878. int$' %8.1 = Phi %7.3:BB7, %8.3:BB38
  11879. int$' %8.2 = Inc %8.1
  11880. int$' %8.3 = EnsureNamed %8.2
  11881. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  11882. BB10
  11883. lgl' %10.0 = Lt %7.2, %8.3, elided
  11884. t %10.1 = AsTest %10.0
  11885. void Branch %10.1 -> BB35 (if true) | BB11 (if false)
  11886. BB9
  11887. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  11888. void Deopt %9.0
  11889. BB35
  11890. goto BB37
  11891. BB11
  11892. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  11893. BB13
  11894. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  11895. void StVar i, %13.0, e0.2
  11896. cls %13.2 = LdFun buildTreeDepth, e0.2
  11897. prom %13.3 = MkArg missing, Prom(2), e0.2
  11898. prom %13.4 = MkArg missing, Prom(3), e0.2
  11899. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  11900. BB12
  11901. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  11902. void Deopt %12.0
  11903. BB15
  11904. cls' %15.0 = LdConst function (depth, random) { if (d...
  11905. t %15.1 = Identical %13.2, %15.0
  11906. void Assume %15.1, %13.5
  11907. val^? %15.3 = CastType %13.3
  11908. val^? %15.4 = CastType %13.4
  11909. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  11910. val %15.6 = Force %15.3, e15.5
  11911. real$' %15.7 = LdConst [1] 1
  11912. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  11913. BB14
  11914. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  11915. void Deopt %14.0
  11916. BB17
  11917. lgl %17.0 = Eq %15.6, %15.7, e15.5
  11918. lgl %17.1 = AsLogical %17.0
  11919. t %17.2 = AsTest %17.1
  11920. void Branch %17.2 -> BB34 (if true) | BB18 (if false)
  11921. BB16
  11922. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11923. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  11924. void Deopt %16.1
  11925. BB34
  11926. cls %34.0 = LdFun c, e15.5
  11927. prom %34.1 = MkArg missing, Prom(5), e15.5
  11928. fs %34.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11929. fs %34.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%34.2
  11930. val^ %34.4 = Call %34.0(%34.1) %34.3, e15.5
  11931. goto BB38
  11932. BB18
  11933. cls %18.0 = LdFun vector, e15.5
  11934. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  11935. BB38
  11936. val^ %38.0 = Phi %24.0:BB33, %34.4:BB34
  11937. val %38.1 = Force %38.0, e15.5
  11938. val^? %38.2 = LdVar array, e0.2
  11939. val %38.3 = Force %38.2, e0.2
  11940. val^? %38.4 = LdVar i, e0.2
  11941. val %38.5 = Force %38.4, e0.2
  11942. val %38.6 = EnsureNamed %38.1
  11943. val %38.7 = Subassign2_1D %38.6, %38.3, %38.5, e0.2
  11944. void StVar array, %38.7, e0.2
  11945. goto BB8
  11946. BB20
  11947. cls' %20.0 = LdConst function (mode = "logical", length = ...
  11948. t %20.1 = Identical %18.0, %20.0
  11949. void Assume %20.1, %18.1
  11950. str$' %20.3 = LdConst [1] "list"
  11951. real$' %20.4 = LdConst [1] 4
  11952. val %20.5 = CallSafeBuiltin vector(%20.3, %20.4)
  11953. goto BB21
  11954. BB19
  11955. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11956. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  11957. void Deopt %19.1
  11958. BB21
  11959. void StVar array, %20.5, e15.5
  11960. real$' %21.1 = LdConst [1] 1
  11961. real$' %21.2 = LdConst [1] 4
  11962. cp %21.3 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  11963. BB23
  11964. val' %23.0 = Colon %21.1, %21.2, elided
  11965. val' %23.1 = SetShared %23.0
  11966. int$' %23.2 = ForSeqSize %23.1
  11967. int$' %23.3 = LdConst [1] 0
  11968. goto BB24
  11969. BB22
  11970. fs %22.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11971. fs %22.1 = FrameState 0x7f924457f3d0+192: [%21.1, %21.2], env=e15.5, next=%22.0
  11972. void Deopt %22.1
  11973. BB24
  11974. val %24.0 = Phi %20.5:BB21, %32.7:BB32
  11975. int$' %24.1 = Phi %23.3:BB23, %24.3:BB32
  11976. int$' %24.2 = Inc %24.1
  11977. int$' %24.3 = EnsureNamed %24.2
  11978. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  11979. BB26
  11980. lgl' %26.0 = Lt %23.2, %24.3, elided
  11981. t %26.1 = AsTest %26.0
  11982. void Branch %26.1 -> BB33 (if true) | BB27 (if false)
  11983. BB25
  11984. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  11985. fs %25.1 = FrameState 0x7f924457f3d0+203: [%23.1, %23.2, %24.3, %23.2, %24.3], env=e15.5, next=%25.0
  11986. void Deopt %25.1
  11987. BB33
  11988. goto BB38
  11989. BB27
  11990. cp %27.0 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  11991. BB29
  11992. val$' %29.0 = Extract2_1D %23.1, %24.3, elided
  11993. void StVar i, %29.0, e15.5
  11994. cls %29.2 = LdFun buildTreeDepth, e15.5
  11995. prom %29.3 = MkArg missing, Prom(8), e15.5
  11996. prom %29.4 = MkArg missing, Prom(9), e15.5
  11997. cp %29.5 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  11998. BB28
  11999. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12000. fs %28.1 = FrameState 0x7f924457f3d0+219: [%23.1, %23.2, %24.3, %23.1, %24.3], env=e15.5, next=%28.0
  12001. void Deopt %28.1
  12002. BB31
  12003. cls' %31.0 = LdConst function (depth, random) { if (d...
  12004. t %31.1 = Identical %29.2, %31.0
  12005. void Assume %31.1, %29.5
  12006. fs %31.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12007. fs %31.4 = FrameState 0x7f924457f3d0+290: [%23.1, %23.2, %24.3], env=e15.5, next=%31.3
  12008. goto BB32
  12009. BB30
  12010. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12011. fs %30.1 = FrameState 0x7f924457f3d0+273: [%23.1, %23.2, %24.3, %29.2], env=e15.5, next=%30.0
  12012. void Deopt %30.1
  12013. BB32
  12014. val^ %32.0 = StaticCall buildTreeDepth[0x7f92446010b0](%29.3, %29.4) %31.4, e15.5
  12015. val^? %32.1 = LdVar array, e15.5
  12016. val %32.2 = Force %32.1, e15.5
  12017. val^? %32.3 = LdVar i, e15.5
  12018. val %32.4 = Force %32.3, e15.5
  12019. val^ %32.5 = EnsureNamed %32.0
  12020. val %32.6 = Force %32.5, e15.5
  12021. val %32.7 = Subassign2_1D %32.6, %32.2, %32.4, e15.5
  12022. void StVar array, %32.7, e15.5
  12023. goto BB24
  12024. Prom 2:
  12025. BB0
  12026. env e0.0 = LdFunctionEnv
  12027. val^? %0.1 = LdVar depth, e0.0
  12028. val %0.2 = Force %0.1, e0.0
  12029. real$' %0.3 = LdConst [1] 1
  12030. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12031. BB2
  12032. val %2.0 = Sub %0.2, %0.3, e0.0
  12033. void Return %2.0
  12034. BB1
  12035. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  12036. void Deopt %1.0
  12037. Prom 3:
  12038. BB0
  12039. env e0.0 = LdFunctionEnv
  12040. val^? %0.1 = LdVar random, e0.0
  12041. val %0.2 = Force %0.1, e0.0
  12042. void Return %0.2
  12043. Prom 4:
  12044. BB0
  12045. env e0.0 = LdFunctionEnv
  12046. cls %0.1 = LdFun nextRandom, e0.0
  12047. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12048. t %0.3 = Identical %0.1, %0.2
  12049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12050. BB2
  12051. void Assume %0.3, %0.4
  12052. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12053. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12054. real$' %2.3 = LdConst [1] 10
  12055. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12056. BB1
  12057. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12058. void Deopt %1.0
  12059. BB4
  12060. val %4.0 = Force %2.2, e0.0
  12061. val %4.1 = Mod %4.0, %2.3, e0.0
  12062. real$' %4.2 = LdConst [1] 1
  12063. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12064. BB3
  12065. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12066. void Deopt %3.0
  12067. BB6
  12068. val %6.0 = Add %4.1, %4.2, e0.0
  12069. void Return %6.0
  12070. BB5
  12071. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12072. void Deopt %5.0
  12073. Prom 5:
  12074. BB0
  12075. env e0.0 = LdFunctionEnv
  12076. cls %0.1 = LdFun nextRandom, e0.0
  12077. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12078. t %0.3 = Identical %0.1, %0.2
  12079. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12080. BB2
  12081. void Assume %0.3, %0.4
  12082. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12083. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12084. real$' %2.3 = LdConst [1] 10
  12085. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12086. BB1
  12087. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12088. void Deopt %1.0
  12089. BB4
  12090. val %4.0 = Force %2.2, e0.0
  12091. val %4.1 = Mod %4.0, %2.3, e0.0
  12092. real$' %4.2 = LdConst [1] 1
  12093. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12094. BB3
  12095. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12096. void Deopt %3.0
  12097. BB6
  12098. val %6.0 = Add %4.1, %4.2, e0.0
  12099. void Return %6.0
  12100. BB5
  12101. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12102. void Deopt %5.0
  12103. Prom 8:
  12104. BB0
  12105. env e0.0 = LdFunctionEnv
  12106. val^? %0.1 = LdVar depth, e0.0
  12107. val %0.2 = Force %0.1, e0.0
  12108. real$' %0.3 = LdConst [1] 1
  12109. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12110. BB2
  12111. val %2.0 = Sub %0.2, %0.3, e0.0
  12112. void Return %2.0
  12113. BB1
  12114. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  12115. void Deopt %1.0
  12116. Prom 9:
  12117. BB0
  12118. env e0.0 = LdFunctionEnv
  12119. val^? %0.1 = LdVar random, e0.0
  12120. val %0.2 = Force %0.1, e0.0
  12121. void Return %0.2
  12122. ├────── Inline Promises: == 189
  12123. buildTreeDepth[0x7f92446010b0]
  12124. BB0
  12125. val^ %0.0 = LdArg 0
  12126. val^ %0.1 = LdArg 1
  12127. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  12128. val %0.3 = Force! %0.0, e0.2
  12129. real$' %0.4 = LdConst [1] 1
  12130. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12131. BB2
  12132. lgl %2.0 = Eq %0.3, %0.4, e0.2
  12133. lgl %2.1 = AsLogical %2.0
  12134. t %2.2 = AsTest %2.1
  12135. void Branch %2.2 -> BB36 (if true) | BB3 (if false)
  12136. BB1
  12137. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  12138. void Deopt %1.0
  12139. BB36
  12140. cls %36.0 = LdFun c, e0.2
  12141. prom %36.1 = MkArg missing, Prom(4), e0.2
  12142. fs %36.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  12143. val^ %36.3 = Call %36.0(%36.1) %36.2, e0.2
  12144. goto BB37
  12145. BB3
  12146. cls %3.0 = LdFun vector, e0.2
  12147. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  12148. BB37
  12149. val^ %37.0 = Phi %8.0:BB35, %36.3:BB36
  12150. val %37.1 = Force %37.0, e0.2
  12151. void Return %37.1
  12152. BB5
  12153. cls' %5.0 = LdConst function (mode = "logical", length = ...
  12154. t %5.1 = Identical %3.0, %5.0
  12155. void Assume %5.1, %3.1
  12156. real$' %5.3 = LdConst [1] 4
  12157. str$' %5.4 = LdConst [1] "list"
  12158. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  12159. void StVar array, %5.5, e0.2
  12160. real$' %5.7 = LdConst [1] 1
  12161. real$' %5.8 = LdConst [1] 4
  12162. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  12163. BB4
  12164. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  12165. void Deopt %4.0
  12166. BB7
  12167. val' %7.0 = Colon %5.7, %5.8, elided
  12168. val' %7.1 = SetShared %7.0
  12169. int$' %7.2 = ForSeqSize %7.1
  12170. int$' %7.3 = LdConst [1] 0
  12171. goto BB8
  12172. BB6
  12173. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  12174. void Deopt %6.0
  12175. BB8
  12176. val %8.0 = Phi %5.5:BB5, %38.7:BB38
  12177. int$' %8.1 = Phi %7.3:BB7, %8.3:BB38
  12178. int$' %8.2 = Inc %8.1
  12179. int$' %8.3 = EnsureNamed %8.2
  12180. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  12181. BB10
  12182. lgl' %10.0 = Lt %7.2, %8.3, elided
  12183. t %10.1 = AsTest %10.0
  12184. void Branch %10.1 -> BB35 (if true) | BB11 (if false)
  12185. BB9
  12186. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  12187. void Deopt %9.0
  12188. BB35
  12189. goto BB37
  12190. BB11
  12191. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  12192. BB13
  12193. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  12194. void StVar i, %13.0, e0.2
  12195. cls %13.2 = LdFun buildTreeDepth, e0.2
  12196. prom %13.3 = MkArg missing, Prom(2), e0.2
  12197. prom %13.4 = MkArg missing, Prom(3), e0.2
  12198. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  12199. BB12
  12200. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  12201. void Deopt %12.0
  12202. BB15
  12203. cls' %15.0 = LdConst function (depth, random) { if (d...
  12204. t %15.1 = Identical %13.2, %15.0
  12205. void Assume %15.1, %13.5
  12206. val^? %15.3 = CastType %13.3
  12207. val^? %15.4 = CastType %13.4
  12208. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  12209. val %15.6 = Force %15.3, e15.5
  12210. real$' %15.7 = LdConst [1] 1
  12211. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  12212. BB14
  12213. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  12214. void Deopt %14.0
  12215. BB17
  12216. lgl %17.0 = Eq %15.6, %15.7, e15.5
  12217. lgl %17.1 = AsLogical %17.0
  12218. t %17.2 = AsTest %17.1
  12219. void Branch %17.2 -> BB34 (if true) | BB18 (if false)
  12220. BB16
  12221. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12222. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  12223. void Deopt %16.1
  12224. BB34
  12225. cls %34.0 = LdFun c, e15.5
  12226. prom %34.1 = MkArg missing, Prom(5), e15.5
  12227. fs %34.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12228. fs %34.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%34.2
  12229. val^ %34.4 = Call %34.0(%34.1) %34.3, e15.5
  12230. goto BB38
  12231. BB18
  12232. cls %18.0 = LdFun vector, e15.5
  12233. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  12234. BB38
  12235. val^ %38.0 = Phi %24.0:BB33, %34.4:BB34
  12236. val %38.1 = Force %38.0, e15.5
  12237. val^? %38.2 = LdVar array, e0.2
  12238. val %38.3 = Force %38.2, e0.2
  12239. val^? %38.4 = LdVar i, e0.2
  12240. val %38.5 = Force %38.4, e0.2
  12241. val %38.6 = EnsureNamed %38.1
  12242. val %38.7 = Subassign2_1D %38.6, %38.3, %38.5, e0.2
  12243. void StVar array, %38.7, e0.2
  12244. goto BB8
  12245. BB20
  12246. cls' %20.0 = LdConst function (mode = "logical", length = ...
  12247. t %20.1 = Identical %18.0, %20.0
  12248. void Assume %20.1, %18.1
  12249. str$' %20.3 = LdConst [1] "list"
  12250. real$' %20.4 = LdConst [1] 4
  12251. val %20.5 = CallSafeBuiltin vector(%20.3, %20.4)
  12252. goto BB21
  12253. BB19
  12254. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12255. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  12256. void Deopt %19.1
  12257. BB21
  12258. void StVar array, %20.5, e15.5
  12259. real$' %21.1 = LdConst [1] 1
  12260. real$' %21.2 = LdConst [1] 4
  12261. cp %21.3 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  12262. BB23
  12263. val' %23.0 = Colon %21.1, %21.2, elided
  12264. val' %23.1 = SetShared %23.0
  12265. int$' %23.2 = ForSeqSize %23.1
  12266. int$' %23.3 = LdConst [1] 0
  12267. goto BB24
  12268. BB22
  12269. fs %22.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12270. fs %22.1 = FrameState 0x7f924457f3d0+192: [%21.1, %21.2], env=e15.5, next=%22.0
  12271. void Deopt %22.1
  12272. BB24
  12273. val %24.0 = Phi %20.5:BB21, %32.7:BB32
  12274. int$' %24.1 = Phi %23.3:BB23, %24.3:BB32
  12275. int$' %24.2 = Inc %24.1
  12276. int$' %24.3 = EnsureNamed %24.2
  12277. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  12278. BB26
  12279. lgl' %26.0 = Lt %23.2, %24.3, elided
  12280. t %26.1 = AsTest %26.0
  12281. void Branch %26.1 -> BB33 (if true) | BB27 (if false)
  12282. BB25
  12283. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12284. fs %25.1 = FrameState 0x7f924457f3d0+203: [%23.1, %23.2, %24.3, %23.2, %24.3], env=e15.5, next=%25.0
  12285. void Deopt %25.1
  12286. BB33
  12287. goto BB38
  12288. BB27
  12289. cp %27.0 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  12290. BB29
  12291. val$' %29.0 = Extract2_1D %23.1, %24.3, elided
  12292. void StVar i, %29.0, e15.5
  12293. cls %29.2 = LdFun buildTreeDepth, e15.5
  12294. prom %29.3 = MkArg missing, Prom(8), e15.5
  12295. prom %29.4 = MkArg missing, Prom(9), e15.5
  12296. cp %29.5 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  12297. BB28
  12298. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12299. fs %28.1 = FrameState 0x7f924457f3d0+219: [%23.1, %23.2, %24.3, %23.1, %24.3], env=e15.5, next=%28.0
  12300. void Deopt %28.1
  12301. BB31
  12302. cls' %31.0 = LdConst function (depth, random) { if (d...
  12303. t %31.1 = Identical %29.2, %31.0
  12304. void Assume %31.1, %29.5
  12305. fs %31.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12306. fs %31.4 = FrameState 0x7f924457f3d0+290: [%23.1, %23.2, %24.3], env=e15.5, next=%31.3
  12307. goto BB32
  12308. BB30
  12309. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12310. fs %30.1 = FrameState 0x7f924457f3d0+273: [%23.1, %23.2, %24.3, %29.2], env=e15.5, next=%30.0
  12311. void Deopt %30.1
  12312. BB32
  12313. val^ %32.0 = StaticCall buildTreeDepth[0x7f92446010b0](%29.3, %29.4) %31.4, e15.5
  12314. val^? %32.1 = LdVar array, e15.5
  12315. val %32.2 = Force %32.1, e15.5
  12316. val^? %32.3 = LdVar i, e15.5
  12317. val %32.4 = Force %32.3, e15.5
  12318. val^ %32.5 = EnsureNamed %32.0
  12319. val %32.6 = Force %32.5, e15.5
  12320. val %32.7 = Subassign2_1D %32.6, %32.2, %32.4, e15.5
  12321. void StVar array, %32.7, e15.5
  12322. goto BB24
  12323. Prom 2:
  12324. BB0
  12325. env e0.0 = LdFunctionEnv
  12326. val^? %0.1 = LdVar depth, e0.0
  12327. val %0.2 = Force %0.1, e0.0
  12328. real$' %0.3 = LdConst [1] 1
  12329. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12330. BB2
  12331. val %2.0 = Sub %0.2, %0.3, e0.0
  12332. void Return %2.0
  12333. BB1
  12334. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  12335. void Deopt %1.0
  12336. Prom 3:
  12337. BB0
  12338. env e0.0 = LdFunctionEnv
  12339. val^? %0.1 = LdVar random, e0.0
  12340. val %0.2 = Force %0.1, e0.0
  12341. void Return %0.2
  12342. Prom 4:
  12343. BB0
  12344. env e0.0 = LdFunctionEnv
  12345. cls %0.1 = LdFun nextRandom, e0.0
  12346. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12347. t %0.3 = Identical %0.1, %0.2
  12348. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12349. BB2
  12350. void Assume %0.3, %0.4
  12351. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12352. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12353. real$' %2.3 = LdConst [1] 10
  12354. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12355. BB1
  12356. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12357. void Deopt %1.0
  12358. BB4
  12359. val %4.0 = Force %2.2, e0.0
  12360. val %4.1 = Mod %4.0, %2.3, e0.0
  12361. real$' %4.2 = LdConst [1] 1
  12362. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12363. BB3
  12364. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12365. void Deopt %3.0
  12366. BB6
  12367. val %6.0 = Add %4.1, %4.2, e0.0
  12368. void Return %6.0
  12369. BB5
  12370. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12371. void Deopt %5.0
  12372. Prom 5:
  12373. BB0
  12374. env e0.0 = LdFunctionEnv
  12375. cls %0.1 = LdFun nextRandom, e0.0
  12376. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12377. t %0.3 = Identical %0.1, %0.2
  12378. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12379. BB2
  12380. void Assume %0.3, %0.4
  12381. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12382. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12383. real$' %2.3 = LdConst [1] 10
  12384. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12385. BB1
  12386. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12387. void Deopt %1.0
  12388. BB4
  12389. val %4.0 = Force %2.2, e0.0
  12390. val %4.1 = Mod %4.0, %2.3, e0.0
  12391. real$' %4.2 = LdConst [1] 1
  12392. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12393. BB3
  12394. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12395. void Deopt %3.0
  12396. BB6
  12397. val %6.0 = Add %4.1, %4.2, e0.0
  12398. void Return %6.0
  12399. BB5
  12400. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12401. void Deopt %5.0
  12402. Prom 8:
  12403. BB0
  12404. env e0.0 = LdFunctionEnv
  12405. val^? %0.1 = LdVar depth, e0.0
  12406. val %0.2 = Force %0.1, e0.0
  12407. real$' %0.3 = LdConst [1] 1
  12408. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12409. BB2
  12410. val %2.0 = Sub %0.2, %0.3, e0.0
  12411. void Return %2.0
  12412. BB1
  12413. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  12414. void Deopt %1.0
  12415. Prom 9:
  12416. BB0
  12417. env e0.0 = LdFunctionEnv
  12418. val^? %0.1 = LdVar random, e0.0
  12419. val %0.2 = Force %0.1, e0.0
  12420. void Return %0.2
  12421. ├────── Scope resolution: == 196
  12422. buildTreeDepth[0x7f92446010b0]
  12423. BB0
  12424. val^ %0.0 = LdArg 0
  12425. val^ %0.1 = LdArg 1
  12426. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  12427. val %0.3 = Force! %0.0, e0.2
  12428. real$' %0.4 = LdConst [1] 1
  12429. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12430. BB2
  12431. lgl %2.0 = Eq %0.3, %0.4, e0.2
  12432. lgl %2.1 = AsLogical %2.0
  12433. t %2.2 = AsTest %2.1
  12434. void Branch %2.2 -> BB36 (if true) | BB3 (if false)
  12435. BB1
  12436. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  12437. void Deopt %1.0
  12438. BB36
  12439. cls %36.0 = LdFun c, e0.2
  12440. prom %36.1 = MkArg missing, Prom(4), e0.2
  12441. fs %36.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  12442. val^ %36.3 = Call %36.0(%36.1) %36.2, e0.2
  12443. goto BB37
  12444. BB3
  12445. cls %3.0 = LdFun vector, e0.2
  12446. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  12447. BB37
  12448. val^ %37.0 = Phi %8.0:BB35, %36.3:BB36
  12449. val %37.1 = Force %37.0, e0.2
  12450. void Return %37.1
  12451. BB5
  12452. cls' %5.0 = LdConst function (mode = "logical", length = ...
  12453. t %5.1 = Identical %3.0, %5.0
  12454. void Assume %5.1, %3.1
  12455. real$' %5.3 = LdConst [1] 4
  12456. str$' %5.4 = LdConst [1] "list"
  12457. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  12458. void StVar array, %5.5, e0.2
  12459. real$' %5.7 = LdConst [1] 1
  12460. real$' %5.8 = LdConst [1] 4
  12461. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  12462. BB4
  12463. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  12464. void Deopt %4.0
  12465. BB7
  12466. val' %7.0 = Colon %5.7, %5.8, elided
  12467. val' %7.1 = SetShared %7.0
  12468. int$' %7.2 = ForSeqSize %7.1
  12469. int$' %7.3 = LdConst [1] 0
  12470. goto BB8
  12471. BB6
  12472. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  12473. void Deopt %6.0
  12474. BB8
  12475. val %8.0 = Phi %5.5:BB5, %38.7:BB38
  12476. int$' %8.1 = Phi %7.3:BB7, %8.3:BB38
  12477. int$' %8.2 = Inc %8.1
  12478. int$' %8.3 = EnsureNamed %8.2
  12479. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  12480. BB10
  12481. lgl' %10.0 = Lt %7.2, %8.3, elided
  12482. t %10.1 = AsTest %10.0
  12483. void Branch %10.1 -> BB35 (if true) | BB11 (if false)
  12484. BB9
  12485. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  12486. void Deopt %9.0
  12487. BB35
  12488. goto BB37
  12489. BB11
  12490. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  12491. BB13
  12492. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  12493. void StVar i, %13.0, e0.2
  12494. cls %13.2 = LdFun buildTreeDepth, e0.2
  12495. prom %13.3 = MkArg missing, Prom(2), e0.2
  12496. prom %13.4 = MkArg missing, Prom(3), e0.2
  12497. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  12498. BB12
  12499. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  12500. void Deopt %12.0
  12501. BB15
  12502. cls' %15.0 = LdConst function (depth, random) { if (d...
  12503. t %15.1 = Identical %13.2, %15.0
  12504. void Assume %15.1, %13.5
  12505. val^? %15.3 = CastType %13.3
  12506. val^? %15.4 = CastType %13.4
  12507. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  12508. val %15.6 = Force %15.3, e15.5
  12509. real$' %15.7 = LdConst [1] 1
  12510. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  12511. BB14
  12512. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  12513. void Deopt %14.0
  12514. BB17
  12515. lgl %17.0 = Eq %15.6, %15.7, e15.5
  12516. lgl %17.1 = AsLogical %17.0
  12517. t %17.2 = AsTest %17.1
  12518. void Branch %17.2 -> BB34 (if true) | BB18 (if false)
  12519. BB16
  12520. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12521. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  12522. void Deopt %16.1
  12523. BB34
  12524. cls %34.0 = LdFun c, e15.5
  12525. prom %34.1 = MkArg missing, Prom(5), e15.5
  12526. fs %34.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12527. fs %34.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%34.2
  12528. val^ %34.4 = Call %34.0(%34.1) %34.3, e15.5
  12529. goto BB38
  12530. BB18
  12531. cls %18.0 = LdFun vector, e15.5
  12532. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  12533. BB38
  12534. val^ %38.0 = Phi %24.0:BB33, %34.4:BB34
  12535. val %38.1 = Force %38.0, e15.5
  12536. val^? %38.2 = LdVar array, e0.2
  12537. val %38.3 = Force %38.2, e0.2
  12538. val^? %38.4 = LdVar i, e0.2
  12539. val %38.5 = Force %38.4, e0.2
  12540. val %38.6 = EnsureNamed %38.1
  12541. val %38.7 = Subassign2_1D %38.6, %38.3, %38.5, e0.2
  12542. void StVar array, %38.7, e0.2
  12543. goto BB8
  12544. BB20
  12545. cls' %20.0 = LdConst function (mode = "logical", length = ...
  12546. t %20.1 = Identical %18.0, %20.0
  12547. void Assume %20.1, %18.1
  12548. str$' %20.3 = LdConst [1] "list"
  12549. real$' %20.4 = LdConst [1] 4
  12550. val %20.5 = CallSafeBuiltin vector(%20.3, %20.4)
  12551. goto BB21
  12552. BB19
  12553. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12554. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  12555. void Deopt %19.1
  12556. BB21
  12557. void StVar array, %20.5, e15.5
  12558. real$' %21.1 = LdConst [1] 1
  12559. real$' %21.2 = LdConst [1] 4
  12560. cp %21.3 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  12561. BB23
  12562. val' %23.0 = Colon %21.1, %21.2, elided
  12563. val' %23.1 = SetShared %23.0
  12564. int$' %23.2 = ForSeqSize %23.1
  12565. int$' %23.3 = LdConst [1] 0
  12566. goto BB24
  12567. BB22
  12568. fs %22.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12569. fs %22.1 = FrameState 0x7f924457f3d0+192: [%21.1, %21.2], env=e15.5, next=%22.0
  12570. void Deopt %22.1
  12571. BB24
  12572. val %24.0 = Phi %20.5:BB21, %32.7:BB32
  12573. int$' %24.1 = Phi %23.3:BB23, %24.3:BB32
  12574. int$' %24.2 = Inc %24.1
  12575. int$' %24.3 = EnsureNamed %24.2
  12576. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  12577. BB26
  12578. lgl' %26.0 = Lt %23.2, %24.3, elided
  12579. t %26.1 = AsTest %26.0
  12580. void Branch %26.1 -> BB33 (if true) | BB27 (if false)
  12581. BB25
  12582. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12583. fs %25.1 = FrameState 0x7f924457f3d0+203: [%23.1, %23.2, %24.3, %23.2, %24.3], env=e15.5, next=%25.0
  12584. void Deopt %25.1
  12585. BB33
  12586. goto BB38
  12587. BB27
  12588. cp %27.0 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  12589. BB29
  12590. val$' %29.0 = Extract2_1D %23.1, %24.3, elided
  12591. void StVar i, %29.0, e15.5
  12592. cls %29.2 = LdFun buildTreeDepth, e15.5
  12593. prom %29.3 = MkArg missing, Prom(8), e15.5
  12594. prom %29.4 = MkArg missing, Prom(9), e15.5
  12595. cp %29.5 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  12596. BB28
  12597. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12598. fs %28.1 = FrameState 0x7f924457f3d0+219: [%23.1, %23.2, %24.3, %23.1, %24.3], env=e15.5, next=%28.0
  12599. void Deopt %28.1
  12600. BB31
  12601. cls' %31.0 = LdConst function (depth, random) { if (d...
  12602. t %31.1 = Identical %29.2, %31.0
  12603. void Assume %31.1, %29.5
  12604. fs %31.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12605. fs %31.4 = FrameState 0x7f924457f3d0+290: [%23.1, %23.2, %24.3], env=e15.5, next=%31.3
  12606. goto BB32
  12607. BB30
  12608. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12609. fs %30.1 = FrameState 0x7f924457f3d0+273: [%23.1, %23.2, %24.3, %29.2], env=e15.5, next=%30.0
  12610. void Deopt %30.1
  12611. BB32
  12612. val^ %32.0 = StaticCall buildTreeDepth[0x7f92446010b0](%29.3, %29.4) %31.4, e15.5
  12613. val^? %32.1 = LdVar array, e15.5
  12614. val %32.2 = Force %32.1, e15.5
  12615. val^? %32.3 = LdVar i, e15.5
  12616. val %32.4 = Force %32.3, e15.5
  12617. val^ %32.5 = EnsureNamed %32.0
  12618. val %32.6 = Force %32.5, e15.5
  12619. val %32.7 = Subassign2_1D %32.6, %32.2, %32.4, e15.5
  12620. void StVar array, %32.7, e15.5
  12621. goto BB24
  12622. Prom 2:
  12623. BB0
  12624. env e0.0 = LdFunctionEnv
  12625. val^? %0.1 = LdVar depth, e0.0
  12626. val %0.2 = Force %0.1, e0.0
  12627. real$' %0.3 = LdConst [1] 1
  12628. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12629. BB2
  12630. val %2.0 = Sub %0.2, %0.3, e0.0
  12631. void Return %2.0
  12632. BB1
  12633. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  12634. void Deopt %1.0
  12635. Prom 3:
  12636. BB0
  12637. env e0.0 = LdFunctionEnv
  12638. val^? %0.1 = LdVar random, e0.0
  12639. val %0.2 = Force %0.1, e0.0
  12640. void Return %0.2
  12641. Prom 4:
  12642. BB0
  12643. env e0.0 = LdFunctionEnv
  12644. cls %0.1 = LdFun nextRandom, e0.0
  12645. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12646. t %0.3 = Identical %0.1, %0.2
  12647. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12648. BB2
  12649. void Assume %0.3, %0.4
  12650. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12651. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12652. real$' %2.3 = LdConst [1] 10
  12653. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12654. BB1
  12655. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12656. void Deopt %1.0
  12657. BB4
  12658. val %4.0 = Force %2.2, e0.0
  12659. val %4.1 = Mod %4.0, %2.3, e0.0
  12660. real$' %4.2 = LdConst [1] 1
  12661. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12662. BB3
  12663. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12664. void Deopt %3.0
  12665. BB6
  12666. val %6.0 = Add %4.1, %4.2, e0.0
  12667. void Return %6.0
  12668. BB5
  12669. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12670. void Deopt %5.0
  12671. Prom 5:
  12672. BB0
  12673. env e0.0 = LdFunctionEnv
  12674. cls %0.1 = LdFun nextRandom, e0.0
  12675. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12676. t %0.3 = Identical %0.1, %0.2
  12677. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12678. BB2
  12679. void Assume %0.3, %0.4
  12680. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12681. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12682. real$' %2.3 = LdConst [1] 10
  12683. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12684. BB1
  12685. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12686. void Deopt %1.0
  12687. BB4
  12688. val %4.0 = Force %2.2, e0.0
  12689. val %4.1 = Mod %4.0, %2.3, e0.0
  12690. real$' %4.2 = LdConst [1] 1
  12691. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12692. BB3
  12693. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12694. void Deopt %3.0
  12695. BB6
  12696. val %6.0 = Add %4.1, %4.2, e0.0
  12697. void Return %6.0
  12698. BB5
  12699. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12700. void Deopt %5.0
  12701. Prom 8:
  12702. BB0
  12703. env e0.0 = LdFunctionEnv
  12704. val^? %0.1 = LdVar depth, e0.0
  12705. val %0.2 = Force %0.1, e0.0
  12706. real$' %0.3 = LdConst [1] 1
  12707. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12708. BB2
  12709. val %2.0 = Sub %0.2, %0.3, e0.0
  12710. void Return %2.0
  12711. BB1
  12712. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  12713. void Deopt %1.0
  12714. Prom 9:
  12715. BB0
  12716. env e0.0 = LdFunctionEnv
  12717. val^? %0.1 = LdVar random, e0.0
  12718. val %0.2 = Force %0.1, e0.0
  12719. void Return %0.2
  12720. ├────── Constant folding: == 203
  12721. buildTreeDepth[0x7f92446010b0]
  12722. BB0
  12723. val^ %0.0 = LdArg 0
  12724. val^ %0.1 = LdArg 1
  12725. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  12726. val %0.3 = Force! %0.0, e0.2
  12727. real$' %0.4 = LdConst [1] 1
  12728. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12729. BB2
  12730. lgl %2.0 = Eq %0.3, %0.4, e0.2
  12731. lgl %2.1 = AsLogical %2.0
  12732. t %2.2 = AsTest %2.1
  12733. void Branch %2.2 -> BB36 (if true) | BB3 (if false)
  12734. BB1
  12735. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  12736. void Deopt %1.0
  12737. BB36
  12738. cls %36.0 = LdFun c, e0.2
  12739. prom %36.1 = MkArg missing, Prom(4), e0.2
  12740. fs %36.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  12741. val^ %36.3 = Call %36.0(%36.1) %36.2, e0.2
  12742. goto BB37
  12743. BB3
  12744. cls %3.0 = LdFun vector, e0.2
  12745. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  12746. BB37
  12747. val^ %37.0 = Phi %8.0:BB35, %36.3:BB36
  12748. val %37.1 = Force %37.0, e0.2
  12749. void Return %37.1
  12750. BB5
  12751. cls' %5.0 = LdConst function (mode = "logical", length = ...
  12752. t %5.1 = Identical %3.0, %5.0
  12753. void Assume %5.1, %3.1
  12754. real$' %5.3 = LdConst [1] 4
  12755. str$' %5.4 = LdConst [1] "list"
  12756. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  12757. void StVar array, %5.5, e0.2
  12758. real$' %5.7 = LdConst [1] 1
  12759. real$' %5.8 = LdConst [1] 4
  12760. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  12761. BB4
  12762. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  12763. void Deopt %4.0
  12764. BB7
  12765. val' %7.0 = Colon %5.7, %5.8, elided
  12766. val' %7.1 = SetShared %7.0
  12767. int$' %7.2 = ForSeqSize %7.1
  12768. int$' %7.3 = LdConst [1] 0
  12769. goto BB8
  12770. BB6
  12771. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  12772. void Deopt %6.0
  12773. BB8
  12774. val %8.0 = Phi %5.5:BB5, %38.7:BB38
  12775. int$' %8.1 = Phi %7.3:BB7, %8.3:BB38
  12776. int$' %8.2 = Inc %8.1
  12777. int$' %8.3 = EnsureNamed %8.2
  12778. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  12779. BB10
  12780. lgl' %10.0 = Lt %7.2, %8.3, elided
  12781. t %10.1 = AsTest %10.0
  12782. void Branch %10.1 -> BB35 (if true) | BB11 (if false)
  12783. BB9
  12784. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  12785. void Deopt %9.0
  12786. BB35
  12787. goto BB37
  12788. BB11
  12789. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  12790. BB13
  12791. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  12792. void StVar i, %13.0, e0.2
  12793. cls %13.2 = LdFun buildTreeDepth, e0.2
  12794. prom %13.3 = MkArg missing, Prom(2), e0.2
  12795. prom %13.4 = MkArg missing, Prom(3), e0.2
  12796. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  12797. BB12
  12798. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  12799. void Deopt %12.0
  12800. BB15
  12801. cls' %15.0 = LdConst function (depth, random) { if (d...
  12802. t %15.1 = Identical %13.2, %15.0
  12803. void Assume %15.1, %13.5
  12804. val^? %15.3 = CastType %13.3
  12805. val^? %15.4 = CastType %13.4
  12806. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  12807. val %15.6 = Force %15.3, e15.5
  12808. real$' %15.7 = LdConst [1] 1
  12809. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  12810. BB14
  12811. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  12812. void Deopt %14.0
  12813. BB17
  12814. lgl %17.0 = Eq %15.6, %15.7, e15.5
  12815. lgl %17.1 = AsLogical %17.0
  12816. t %17.2 = AsTest %17.1
  12817. void Branch %17.2 -> BB34 (if true) | BB18 (if false)
  12818. BB16
  12819. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12820. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  12821. void Deopt %16.1
  12822. BB34
  12823. cls %34.0 = LdFun c, e15.5
  12824. prom %34.1 = MkArg missing, Prom(5), e15.5
  12825. fs %34.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12826. fs %34.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%34.2
  12827. val^ %34.4 = Call %34.0(%34.1) %34.3, e15.5
  12828. goto BB38
  12829. BB18
  12830. cls %18.0 = LdFun vector, e15.5
  12831. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  12832. BB38
  12833. val^ %38.0 = Phi %24.0:BB33, %34.4:BB34
  12834. val %38.1 = Force %38.0, e15.5
  12835. val^? %38.2 = LdVar array, e0.2
  12836. val %38.3 = Force %38.2, e0.2
  12837. val^? %38.4 = LdVar i, e0.2
  12838. val %38.5 = Force %38.4, e0.2
  12839. val %38.6 = EnsureNamed %38.1
  12840. val %38.7 = Subassign2_1D %38.6, %38.3, %38.5, e0.2
  12841. void StVar array, %38.7, e0.2
  12842. goto BB8
  12843. BB20
  12844. cls' %20.0 = LdConst function (mode = "logical", length = ...
  12845. t %20.1 = Identical %18.0, %20.0
  12846. void Assume %20.1, %18.1
  12847. str$' %20.3 = LdConst [1] "list"
  12848. real$' %20.4 = LdConst [1] 4
  12849. val %20.5 = CallSafeBuiltin vector(%20.3, %20.4)
  12850. goto BB21
  12851. BB19
  12852. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12853. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  12854. void Deopt %19.1
  12855. BB21
  12856. void StVar array, %20.5, e15.5
  12857. real$' %21.1 = LdConst [1] 1
  12858. real$' %21.2 = LdConst [1] 4
  12859. cp %21.3 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  12860. BB23
  12861. val' %23.0 = Colon %21.1, %21.2, elided
  12862. val' %23.1 = SetShared %23.0
  12863. int$' %23.2 = ForSeqSize %23.1
  12864. int$' %23.3 = LdConst [1] 0
  12865. goto BB24
  12866. BB22
  12867. fs %22.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12868. fs %22.1 = FrameState 0x7f924457f3d0+192: [%21.1, %21.2], env=e15.5, next=%22.0
  12869. void Deopt %22.1
  12870. BB24
  12871. val %24.0 = Phi %20.5:BB21, %32.7:BB32
  12872. int$' %24.1 = Phi %23.3:BB23, %24.3:BB32
  12873. int$' %24.2 = Inc %24.1
  12874. int$' %24.3 = EnsureNamed %24.2
  12875. cp %24.4 = Checkpoint -> BB26 (by default) | BB25 (if coming from expect)
  12876. BB26
  12877. lgl' %26.0 = Lt %23.2, %24.3, elided
  12878. t %26.1 = AsTest %26.0
  12879. void Branch %26.1 -> BB33 (if true) | BB27 (if false)
  12880. BB25
  12881. fs %25.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12882. fs %25.1 = FrameState 0x7f924457f3d0+203: [%23.1, %23.2, %24.3, %23.2, %24.3], env=e15.5, next=%25.0
  12883. void Deopt %25.1
  12884. BB33
  12885. goto BB38
  12886. BB27
  12887. cp %27.0 = Checkpoint -> BB29 (by default) | BB28 (if coming from expect)
  12888. BB29
  12889. val$' %29.0 = Extract2_1D %23.1, %24.3, elided
  12890. void StVar i, %29.0, e15.5
  12891. cls %29.2 = LdFun buildTreeDepth, e15.5
  12892. prom %29.3 = MkArg missing, Prom(8), e15.5
  12893. prom %29.4 = MkArg missing, Prom(9), e15.5
  12894. cp %29.5 = Checkpoint -> BB31 (by default) | BB30 (if coming from expect)
  12895. BB28
  12896. fs %28.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12897. fs %28.1 = FrameState 0x7f924457f3d0+219: [%23.1, %23.2, %24.3, %23.1, %24.3], env=e15.5, next=%28.0
  12898. void Deopt %28.1
  12899. BB31
  12900. cls' %31.0 = LdConst function (depth, random) { if (d...
  12901. t %31.1 = Identical %29.2, %31.0
  12902. void Assume %31.1, %29.5
  12903. fs %31.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12904. fs %31.4 = FrameState 0x7f924457f3d0+290: [%23.1, %23.2, %24.3], env=e15.5, next=%31.3
  12905. goto BB32
  12906. BB30
  12907. fs %30.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  12908. fs %30.1 = FrameState 0x7f924457f3d0+273: [%23.1, %23.2, %24.3, %29.2], env=e15.5, next=%30.0
  12909. void Deopt %30.1
  12910. BB32
  12911. val^ %32.0 = StaticCall buildTreeDepth[0x7f92446010b0](%29.3, %29.4) %31.4, e15.5
  12912. val^? %32.1 = LdVar array, e15.5
  12913. val %32.2 = Force %32.1, e15.5
  12914. val^? %32.3 = LdVar i, e15.5
  12915. val %32.4 = Force %32.3, e15.5
  12916. val^ %32.5 = EnsureNamed %32.0
  12917. val %32.6 = Force %32.5, e15.5
  12918. val %32.7 = Subassign2_1D %32.6, %32.2, %32.4, e15.5
  12919. void StVar array, %32.7, e15.5
  12920. goto BB24
  12921. Prom 2:
  12922. BB0
  12923. env e0.0 = LdFunctionEnv
  12924. val^? %0.1 = LdVar depth, e0.0
  12925. val %0.2 = Force %0.1, e0.0
  12926. real$' %0.3 = LdConst [1] 1
  12927. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12928. BB2
  12929. val %2.0 = Sub %0.2, %0.3, e0.0
  12930. void Return %2.0
  12931. BB1
  12932. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  12933. void Deopt %1.0
  12934. Prom 3:
  12935. BB0
  12936. env e0.0 = LdFunctionEnv
  12937. val^? %0.1 = LdVar random, e0.0
  12938. val %0.2 = Force %0.1, e0.0
  12939. void Return %0.2
  12940. Prom 4:
  12941. BB0
  12942. env e0.0 = LdFunctionEnv
  12943. cls %0.1 = LdFun nextRandom, e0.0
  12944. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12945. t %0.3 = Identical %0.1, %0.2
  12946. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12947. BB2
  12948. void Assume %0.3, %0.4
  12949. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12950. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12951. real$' %2.3 = LdConst [1] 10
  12952. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12953. BB1
  12954. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12955. void Deopt %1.0
  12956. BB4
  12957. val %4.0 = Force %2.2, e0.0
  12958. val %4.1 = Mod %4.0, %2.3, e0.0
  12959. real$' %4.2 = LdConst [1] 1
  12960. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12961. BB3
  12962. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12963. void Deopt %3.0
  12964. BB6
  12965. val %6.0 = Add %4.1, %4.2, e0.0
  12966. void Return %6.0
  12967. BB5
  12968. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12969. void Deopt %5.0
  12970. Prom 5:
  12971. BB0
  12972. env e0.0 = LdFunctionEnv
  12973. cls %0.1 = LdFun nextRandom, e0.0
  12974. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  12975. t %0.3 = Identical %0.1, %0.2
  12976. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  12977. BB2
  12978. void Assume %0.3, %0.4
  12979. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  12980. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  12981. real$' %2.3 = LdConst [1] 10
  12982. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  12983. BB1
  12984. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  12985. void Deopt %1.0
  12986. BB4
  12987. val %4.0 = Force %2.2, e0.0
  12988. val %4.1 = Mod %4.0, %2.3, e0.0
  12989. real$' %4.2 = LdConst [1] 1
  12990. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  12991. BB3
  12992. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  12993. void Deopt %3.0
  12994. BB6
  12995. val %6.0 = Add %4.1, %4.2, e0.0
  12996. void Return %6.0
  12997. BB5
  12998. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  12999. void Deopt %5.0
  13000. Prom 8:
  13001. BB0
  13002. env e0.0 = LdFunctionEnv
  13003. val^? %0.1 = LdVar depth, e0.0
  13004. val %0.2 = Force %0.1, e0.0
  13005. real$' %0.3 = LdConst [1] 1
  13006. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13007. BB2
  13008. val %2.0 = Sub %0.2, %0.3, e0.0
  13009. void Return %2.0
  13010. BB1
  13011. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  13012. void Deopt %1.0
  13013. Prom 9:
  13014. BB0
  13015. env e0.0 = LdFunctionEnv
  13016. val^? %0.1 = LdVar random, e0.0
  13017. val %0.2 = Force %0.1, e0.0
  13018. void Return %0.2
  13019. ├────── Cleanup redundant operations: == 210
  13020. buildTreeDepth[0x7f92446010b0]
  13021. BB0
  13022. val^ %0.0 = LdArg 0
  13023. val^ %0.1 = LdArg 1
  13024. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  13025. val %0.3 = Force! %0.0, e0.2
  13026. real$' %0.4 = LdConst [1] 1
  13027. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13028. BB2
  13029. lgl %2.0 = Eq %0.3, %0.4, e0.2
  13030. lgl %2.1 = AsLogical %2.0
  13031. t %2.2 = AsTest %2.1
  13032. void Branch %2.2 -> BB35 (if true) | BB3 (if false)
  13033. BB1
  13034. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  13035. void Deopt %1.0
  13036. BB35
  13037. cls %35.0 = LdFun c, e0.2
  13038. prom %35.1 = MkArg missing, Prom(4), e0.2
  13039. fs %35.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  13040. val^ %35.3 = Call %35.0(%35.1) %35.2, e0.2
  13041. goto BB36
  13042. BB3
  13043. cls %3.0 = LdFun vector, e0.2
  13044. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  13045. BB36
  13046. val^ %36.0 = Phi %8.0:BB34, %35.3:BB35
  13047. val %36.1 = Force %36.0, e0.2
  13048. void Return %36.1
  13049. BB5
  13050. cls' %5.0 = LdConst function (mode = "logical", length = ...
  13051. t %5.1 = Identical %3.0, %5.0
  13052. void Assume %5.1, %3.1
  13053. real$' %5.3 = LdConst [1] 4
  13054. str$' %5.4 = LdConst [1] "list"
  13055. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  13056. void StVar array, %5.5, e0.2
  13057. real$' %5.7 = LdConst [1] 1
  13058. real$' %5.8 = LdConst [1] 4
  13059. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  13060. BB4
  13061. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  13062. void Deopt %4.0
  13063. BB7
  13064. val' %7.0 = Colon %5.7, %5.8, elided
  13065. val' %7.1 = SetShared %7.0
  13066. int$' %7.2 = ForSeqSize %7.1
  13067. int$' %7.3 = LdConst [1] 0
  13068. goto BB8
  13069. BB6
  13070. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  13071. void Deopt %6.0
  13072. BB8
  13073. val %8.0 = Phi %5.5:BB5, %37.7:BB37
  13074. int$' %8.1 = Phi %7.3:BB7, %8.3:BB37
  13075. int$' %8.2 = Inc %8.1
  13076. int$' %8.3 = EnsureNamed %8.2
  13077. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  13078. BB10
  13079. lgl' %10.0 = Lt %7.2, %8.3, elided
  13080. t %10.1 = AsTest %10.0
  13081. void Branch %10.1 -> BB34 (if true) | BB11 (if false)
  13082. BB9
  13083. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  13084. void Deopt %9.0
  13085. BB34
  13086. goto BB36
  13087. BB11
  13088. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  13089. BB13
  13090. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  13091. void StVar i, %13.0, e0.2
  13092. cls %13.2 = LdFun buildTreeDepth, e0.2
  13093. prom %13.3 = MkArg missing, Prom(2), e0.2
  13094. prom %13.4 = MkArg missing, Prom(3), e0.2
  13095. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  13096. BB12
  13097. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  13098. void Deopt %12.0
  13099. BB15
  13100. cls' %15.0 = LdConst function (depth, random) { if (d...
  13101. t %15.1 = Identical %13.2, %15.0
  13102. void Assume %15.1, %13.5
  13103. val^? %15.3 = CastType %13.3
  13104. val^? %15.4 = CastType %13.4
  13105. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  13106. val %15.6 = Force %15.3, e15.5
  13107. real$' %15.7 = LdConst [1] 1
  13108. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  13109. BB14
  13110. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  13111. void Deopt %14.0
  13112. BB17
  13113. lgl %17.0 = Eq %15.6, %15.7, e15.5
  13114. lgl %17.1 = AsLogical %17.0
  13115. t %17.2 = AsTest %17.1
  13116. void Branch %17.2 -> BB33 (if true) | BB18 (if false)
  13117. BB16
  13118. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13119. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  13120. void Deopt %16.1
  13121. BB33
  13122. cls %33.0 = LdFun c, e15.5
  13123. prom %33.1 = MkArg missing, Prom(5), e15.5
  13124. fs %33.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13125. fs %33.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%33.2
  13126. val^ %33.4 = Call %33.0(%33.1) %33.3, e15.5
  13127. goto BB37
  13128. BB18
  13129. cls %18.0 = LdFun vector, e15.5
  13130. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  13131. BB37
  13132. val^ %37.0 = Phi %23.0:BB32, %33.4:BB33
  13133. val %37.1 = Force %37.0, e15.5
  13134. val^? %37.2 = LdVar array, e0.2
  13135. val %37.3 = Force %37.2, e0.2
  13136. val^? %37.4 = LdVar i, e0.2
  13137. val %37.5 = Force %37.4, e0.2
  13138. val %37.6 = EnsureNamed %37.1
  13139. val %37.7 = Subassign2_1D %37.6, %37.3, %37.5, e0.2
  13140. void StVar array, %37.7, e0.2
  13141. goto BB8
  13142. BB20
  13143. cls' %20.0 = LdConst function (mode = "logical", length = ...
  13144. t %20.1 = Identical %18.0, %20.0
  13145. void Assume %20.1, %18.1
  13146. str$' %20.3 = LdConst [1] "list"
  13147. real$' %20.4 = LdConst [1] 4
  13148. val %20.5 = CallSafeBuiltin vector(%20.3, %20.4)
  13149. void StVar array, %20.5, e15.5
  13150. real$' %20.7 = LdConst [1] 1
  13151. real$' %20.8 = LdConst [1] 4
  13152. cp %20.9 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  13153. BB19
  13154. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13155. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  13156. void Deopt %19.1
  13157. BB22
  13158. val' %22.0 = Colon %20.7, %20.8, elided
  13159. val' %22.1 = SetShared %22.0
  13160. int$' %22.2 = ForSeqSize %22.1
  13161. int$' %22.3 = LdConst [1] 0
  13162. goto BB23
  13163. BB21
  13164. fs %21.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13165. fs %21.1 = FrameState 0x7f924457f3d0+192: [%20.7, %20.8], env=e15.5, next=%21.0
  13166. void Deopt %21.1
  13167. BB23
  13168. val %23.0 = Phi %20.5:BB20, %31.7:BB31
  13169. int$' %23.1 = Phi %22.3:BB22, %23.3:BB31
  13170. int$' %23.2 = Inc %23.1
  13171. int$' %23.3 = EnsureNamed %23.2
  13172. cp %23.4 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  13173. BB25
  13174. lgl' %25.0 = Lt %22.2, %23.3, elided
  13175. t %25.1 = AsTest %25.0
  13176. void Branch %25.1 -> BB32 (if true) | BB26 (if false)
  13177. BB24
  13178. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13179. fs %24.1 = FrameState 0x7f924457f3d0+203: [%22.1, %22.2, %23.3, %22.2, %23.3], env=e15.5, next=%24.0
  13180. void Deopt %24.1
  13181. BB32
  13182. goto BB37
  13183. BB26
  13184. cp %26.0 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  13185. BB28
  13186. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  13187. void StVar i, %28.0, e15.5
  13188. cls %28.2 = LdFun buildTreeDepth, e15.5
  13189. prom %28.3 = MkArg missing, Prom(8), e15.5
  13190. prom %28.4 = MkArg missing, Prom(9), e15.5
  13191. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  13192. BB27
  13193. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13194. fs %27.1 = FrameState 0x7f924457f3d0+219: [%22.1, %22.2, %23.3, %22.1, %23.3], env=e15.5, next=%27.0
  13195. void Deopt %27.1
  13196. BB30
  13197. cls' %30.0 = LdConst function (depth, random) { if (d...
  13198. t %30.1 = Identical %28.2, %30.0
  13199. void Assume %30.1, %28.5
  13200. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13201. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  13202. goto BB31
  13203. BB29
  13204. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13205. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  13206. void Deopt %29.1
  13207. BB31
  13208. val^ %31.0 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  13209. val^? %31.1 = LdVar array, e15.5
  13210. val %31.2 = Force %31.1, e15.5
  13211. val^? %31.3 = LdVar i, e15.5
  13212. val %31.4 = Force %31.3, e15.5
  13213. val^ %31.5 = EnsureNamed %31.0
  13214. val %31.6 = Force %31.5, e15.5
  13215. val %31.7 = Subassign2_1D %31.6, %31.2, %31.4, e15.5
  13216. void StVar array, %31.7, e15.5
  13217. goto BB23
  13218. Prom 2:
  13219. BB0
  13220. env e0.0 = LdFunctionEnv
  13221. val^? %0.1 = LdVar depth, e0.0
  13222. val %0.2 = Force %0.1, e0.0
  13223. real$' %0.3 = LdConst [1] 1
  13224. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13225. BB2
  13226. val %2.0 = Sub %0.2, %0.3, e0.0
  13227. void Return %2.0
  13228. BB1
  13229. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  13230. void Deopt %1.0
  13231. Prom 3:
  13232. BB0
  13233. env e0.0 = LdFunctionEnv
  13234. val^? %0.1 = LdVar random, e0.0
  13235. val %0.2 = Force %0.1, e0.0
  13236. void Return %0.2
  13237. Prom 4:
  13238. BB0
  13239. env e0.0 = LdFunctionEnv
  13240. cls %0.1 = LdFun nextRandom, e0.0
  13241. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  13242. t %0.3 = Identical %0.1, %0.2
  13243. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13244. BB2
  13245. void Assume %0.3, %0.4
  13246. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  13247. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  13248. real$' %2.3 = LdConst [1] 10
  13249. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  13250. BB1
  13251. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  13252. void Deopt %1.0
  13253. BB4
  13254. val %4.0 = Force %2.2, e0.0
  13255. val %4.1 = Mod %4.0, %2.3, e0.0
  13256. real$' %4.2 = LdConst [1] 1
  13257. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  13258. BB3
  13259. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  13260. void Deopt %3.0
  13261. BB6
  13262. val %6.0 = Add %4.1, %4.2, e0.0
  13263. void Return %6.0
  13264. BB5
  13265. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  13266. void Deopt %5.0
  13267. Prom 5:
  13268. BB0
  13269. env e0.0 = LdFunctionEnv
  13270. cls %0.1 = LdFun nextRandom, e0.0
  13271. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  13272. t %0.3 = Identical %0.1, %0.2
  13273. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13274. BB2
  13275. void Assume %0.3, %0.4
  13276. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  13277. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  13278. real$' %2.3 = LdConst [1] 10
  13279. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  13280. BB1
  13281. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  13282. void Deopt %1.0
  13283. BB4
  13284. val %4.0 = Force %2.2, e0.0
  13285. val %4.1 = Mod %4.0, %2.3, e0.0
  13286. real$' %4.2 = LdConst [1] 1
  13287. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  13288. BB3
  13289. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  13290. void Deopt %3.0
  13291. BB6
  13292. val %6.0 = Add %4.1, %4.2, e0.0
  13293. void Return %6.0
  13294. BB5
  13295. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  13296. void Deopt %5.0
  13297. Prom 8:
  13298. BB0
  13299. env e0.0 = LdFunctionEnv
  13300. val^? %0.1 = LdVar depth, e0.0
  13301. val %0.2 = Force %0.1, e0.0
  13302. real$' %0.3 = LdConst [1] 1
  13303. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13304. BB2
  13305. val %2.0 = Sub %0.2, %0.3, e0.0
  13306. void Return %2.0
  13307. BB1
  13308. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  13309. void Deopt %1.0
  13310. Prom 9:
  13311. BB0
  13312. env e0.0 = LdFunctionEnv
  13313. val^? %0.1 = LdVar random, e0.0
  13314. val %0.2 = Force %0.1, e0.0
  13315. void Return %0.2
  13316. ├────── Delay instructions: == 217
  13317. buildTreeDepth[0x7f92446010b0]
  13318. BB0
  13319. val^ %0.0 = LdArg 0
  13320. val^ %0.1 = LdArg 1
  13321. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  13322. val %0.3 = Force! %0.0, e0.2
  13323. real$' %0.4 = LdConst [1] 1
  13324. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13325. BB2
  13326. lgl %2.0 = Eq %0.3, %0.4, e0.2
  13327. lgl %2.1 = AsLogical %2.0
  13328. t %2.2 = AsTest %2.1
  13329. void Branch %2.2 -> BB35 (if true) | BB3 (if false)
  13330. BB1
  13331. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  13332. void Deopt %1.0
  13333. BB35
  13334. cls %35.0 = LdFun c, e0.2
  13335. prom %35.1 = MkArg missing, Prom(4), e0.2
  13336. fs %35.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  13337. val^ %35.3 = Call %35.0(%35.1) %35.2, e0.2
  13338. goto BB36
  13339. BB3
  13340. cls %3.0 = LdFun vector, e0.2
  13341. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  13342. BB36
  13343. val^ %36.0 = Phi %8.0:BB34, %35.3:BB35
  13344. val %36.1 = Force %36.0, e0.2
  13345. void Return %36.1
  13346. BB5
  13347. cls' %5.0 = LdConst function (mode = "logical", length = ...
  13348. t %5.1 = Identical %3.0, %5.0
  13349. void Assume %5.1, %3.1
  13350. str$' %5.3 = LdConst [1] "list"
  13351. real$' %5.4 = LdConst [1] 4
  13352. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  13353. void StVar array, %5.5, e0.2
  13354. real$' %5.7 = LdConst [1] 1
  13355. real$' %5.8 = LdConst [1] 4
  13356. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  13357. BB4
  13358. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  13359. void Deopt %4.0
  13360. BB7
  13361. val' %7.0 = Colon %5.7, %5.8, elided
  13362. val' %7.1 = SetShared %7.0
  13363. int$' %7.2 = ForSeqSize %7.1
  13364. int$' %7.3 = LdConst [1] 0
  13365. goto BB8
  13366. BB6
  13367. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  13368. void Deopt %6.0
  13369. BB8
  13370. val %8.0 = Phi %5.5:BB5, %37.7:BB37
  13371. int$' %8.1 = Phi %7.3:BB7, %8.3:BB37
  13372. int$' %8.2 = Inc %8.1
  13373. int$' %8.3 = EnsureNamed %8.2
  13374. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  13375. BB10
  13376. lgl' %10.0 = Lt %7.2, %8.3, elided
  13377. t %10.1 = AsTest %10.0
  13378. void Branch %10.1 -> BB34 (if true) | BB11 (if false)
  13379. BB9
  13380. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  13381. void Deopt %9.0
  13382. BB34
  13383. goto BB36
  13384. BB11
  13385. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  13386. BB13
  13387. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  13388. void StVar i, %13.0, e0.2
  13389. cls %13.2 = LdFun buildTreeDepth, e0.2
  13390. prom %13.3 = MkArg missing, Prom(2), e0.2
  13391. prom %13.4 = MkArg missing, Prom(3), e0.2
  13392. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  13393. BB12
  13394. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  13395. void Deopt %12.0
  13396. BB15
  13397. cls' %15.0 = LdConst function (depth, random) { if (d...
  13398. t %15.1 = Identical %13.2, %15.0
  13399. void Assume %15.1, %13.5
  13400. val^? %15.3 = CastType %13.3
  13401. val^? %15.4 = CastType %13.4
  13402. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  13403. val %15.6 = Force %15.3, e15.5
  13404. real$' %15.7 = LdConst [1] 1
  13405. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  13406. BB14
  13407. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  13408. void Deopt %14.0
  13409. BB17
  13410. lgl %17.0 = Eq %15.6, %15.7, e15.5
  13411. lgl %17.1 = AsLogical %17.0
  13412. t %17.2 = AsTest %17.1
  13413. void Branch %17.2 -> BB33 (if true) | BB18 (if false)
  13414. BB16
  13415. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13416. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  13417. void Deopt %16.1
  13418. BB33
  13419. cls %33.0 = LdFun c, e15.5
  13420. prom %33.1 = MkArg missing, Prom(5), e15.5
  13421. fs %33.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13422. fs %33.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%33.2
  13423. val^ %33.4 = Call %33.0(%33.1) %33.3, e15.5
  13424. goto BB37
  13425. BB18
  13426. cls %18.0 = LdFun vector, e15.5
  13427. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  13428. BB37
  13429. val^ %37.0 = Phi %23.0:BB32, %33.4:BB33
  13430. val %37.1 = Force %37.0, e15.5
  13431. val^? %37.2 = LdVar array, e0.2
  13432. val %37.3 = Force %37.2, e0.2
  13433. val^? %37.4 = LdVar i, e0.2
  13434. val %37.5 = Force %37.4, e0.2
  13435. val %37.6 = EnsureNamed %37.1
  13436. val %37.7 = Subassign2_1D %37.6, %37.3, %37.5, e0.2
  13437. void StVar array, %37.7, e0.2
  13438. goto BB8
  13439. BB20
  13440. cls' %20.0 = LdConst function (mode = "logical", length = ...
  13441. t %20.1 = Identical %18.0, %20.0
  13442. void Assume %20.1, %18.1
  13443. real$' %20.3 = LdConst [1] 4
  13444. str$' %20.4 = LdConst [1] "list"
  13445. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  13446. void StVar array, %20.5, e15.5
  13447. real$' %20.7 = LdConst [1] 1
  13448. real$' %20.8 = LdConst [1] 4
  13449. cp %20.9 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  13450. BB19
  13451. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13452. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  13453. void Deopt %19.1
  13454. BB22
  13455. val' %22.0 = Colon %20.7, %20.8, elided
  13456. val' %22.1 = SetShared %22.0
  13457. int$' %22.2 = ForSeqSize %22.1
  13458. int$' %22.3 = LdConst [1] 0
  13459. goto BB23
  13460. BB21
  13461. fs %21.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13462. fs %21.1 = FrameState 0x7f924457f3d0+192: [%20.7, %20.8], env=e15.5, next=%21.0
  13463. void Deopt %21.1
  13464. BB23
  13465. val %23.0 = Phi %20.5:BB20, %31.7:BB31
  13466. int$' %23.1 = Phi %22.3:BB22, %23.3:BB31
  13467. int$' %23.2 = Inc %23.1
  13468. int$' %23.3 = EnsureNamed %23.2
  13469. cp %23.4 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  13470. BB25
  13471. lgl' %25.0 = Lt %22.2, %23.3, elided
  13472. t %25.1 = AsTest %25.0
  13473. void Branch %25.1 -> BB32 (if true) | BB26 (if false)
  13474. BB24
  13475. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13476. fs %24.1 = FrameState 0x7f924457f3d0+203: [%22.1, %22.2, %23.3, %22.2, %23.3], env=e15.5, next=%24.0
  13477. void Deopt %24.1
  13478. BB32
  13479. goto BB37
  13480. BB26
  13481. cp %26.0 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  13482. BB28
  13483. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  13484. void StVar i, %28.0, e15.5
  13485. cls %28.2 = LdFun buildTreeDepth, e15.5
  13486. prom %28.3 = MkArg missing, Prom(8), e15.5
  13487. prom %28.4 = MkArg missing, Prom(9), e15.5
  13488. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  13489. BB27
  13490. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13491. fs %27.1 = FrameState 0x7f924457f3d0+219: [%22.1, %22.2, %23.3, %22.1, %23.3], env=e15.5, next=%27.0
  13492. void Deopt %27.1
  13493. BB30
  13494. cls' %30.0 = LdConst function (depth, random) { if (d...
  13495. t %30.1 = Identical %28.2, %30.0
  13496. void Assume %30.1, %28.5
  13497. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13498. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  13499. goto BB31
  13500. BB29
  13501. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13502. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  13503. void Deopt %29.1
  13504. BB31
  13505. val^ %31.0 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  13506. val^? %31.1 = LdVar array, e15.5
  13507. val %31.2 = Force %31.1, e15.5
  13508. val^? %31.3 = LdVar i, e15.5
  13509. val %31.4 = Force %31.3, e15.5
  13510. val^ %31.5 = EnsureNamed %31.0
  13511. val %31.6 = Force %31.5, e15.5
  13512. val %31.7 = Subassign2_1D %31.6, %31.2, %31.4, e15.5
  13513. void StVar array, %31.7, e15.5
  13514. goto BB23
  13515. Prom 2:
  13516. BB0
  13517. env e0.0 = LdFunctionEnv
  13518. val^? %0.1 = LdVar depth, e0.0
  13519. val %0.2 = Force %0.1, e0.0
  13520. real$' %0.3 = LdConst [1] 1
  13521. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13522. BB2
  13523. val %2.0 = Sub %0.2, %0.3, e0.0
  13524. void Return %2.0
  13525. BB1
  13526. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  13527. void Deopt %1.0
  13528. Prom 3:
  13529. BB0
  13530. env e0.0 = LdFunctionEnv
  13531. val^? %0.1 = LdVar random, e0.0
  13532. val %0.2 = Force %0.1, e0.0
  13533. void Return %0.2
  13534. Prom 4:
  13535. BB0
  13536. env e0.0 = LdFunctionEnv
  13537. cls %0.1 = LdFun nextRandom, e0.0
  13538. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  13539. t %0.3 = Identical %0.1, %0.2
  13540. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13541. BB2
  13542. void Assume %0.3, %0.4
  13543. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  13544. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  13545. real$' %2.3 = LdConst [1] 10
  13546. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  13547. BB1
  13548. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  13549. void Deopt %1.0
  13550. BB4
  13551. val %4.0 = Force %2.2, e0.0
  13552. val %4.1 = Mod %4.0, %2.3, e0.0
  13553. real$' %4.2 = LdConst [1] 1
  13554. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  13555. BB3
  13556. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  13557. void Deopt %3.0
  13558. BB6
  13559. val %6.0 = Add %4.1, %4.2, e0.0
  13560. void Return %6.0
  13561. BB5
  13562. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  13563. void Deopt %5.0
  13564. Prom 5:
  13565. BB0
  13566. env e0.0 = LdFunctionEnv
  13567. cls %0.1 = LdFun nextRandom, e0.0
  13568. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  13569. t %0.3 = Identical %0.1, %0.2
  13570. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13571. BB2
  13572. void Assume %0.3, %0.4
  13573. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  13574. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  13575. real$' %2.3 = LdConst [1] 10
  13576. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  13577. BB1
  13578. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  13579. void Deopt %1.0
  13580. BB4
  13581. val %4.0 = Force %2.2, e0.0
  13582. val %4.1 = Mod %4.0, %2.3, e0.0
  13583. real$' %4.2 = LdConst [1] 1
  13584. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  13585. BB3
  13586. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  13587. void Deopt %3.0
  13588. BB6
  13589. val %6.0 = Add %4.1, %4.2, e0.0
  13590. void Return %6.0
  13591. BB5
  13592. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  13593. void Deopt %5.0
  13594. Prom 8:
  13595. BB0
  13596. env e0.0 = LdFunctionEnv
  13597. val^? %0.1 = LdVar depth, e0.0
  13598. val %0.2 = Force %0.1, e0.0
  13599. real$' %0.3 = LdConst [1] 1
  13600. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13601. BB2
  13602. val %2.0 = Sub %0.2, %0.3, e0.0
  13603. void Return %2.0
  13604. BB1
  13605. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  13606. void Deopt %1.0
  13607. Prom 9:
  13608. BB0
  13609. env e0.0 = LdFunctionEnv
  13610. val^? %0.1 = LdVar random, e0.0
  13611. val %0.2 = Force %0.1, e0.0
  13612. void Return %0.2
  13613. ├────── Elide environments not needed: == 224
  13614. buildTreeDepth[0x7f92446010b0]
  13615. BB0
  13616. val^ %0.0 = LdArg 0
  13617. val^ %0.1 = LdArg 1
  13618. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  13619. val %0.3 = Force! %0.0, e0.2
  13620. real$' %0.4 = LdConst [1] 1
  13621. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13622. BB2
  13623. lgl %2.0 = Eq %0.3, %0.4, e0.2
  13624. lgl %2.1 = AsLogical %2.0
  13625. t %2.2 = AsTest %2.1
  13626. void Branch %2.2 -> BB35 (if true) | BB3 (if false)
  13627. BB1
  13628. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  13629. void Deopt %1.0
  13630. BB35
  13631. cls %35.0 = LdFun c, e0.2
  13632. prom %35.1 = MkArg missing, Prom(4), e0.2
  13633. fs %35.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  13634. val^ %35.3 = Call %35.0(%35.1) %35.2, e0.2
  13635. goto BB36
  13636. BB3
  13637. cls %3.0 = LdFun vector, e0.2
  13638. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  13639. BB36
  13640. val^ %36.0 = Phi %8.0:BB34, %35.3:BB35
  13641. val %36.1 = Force %36.0, e0.2
  13642. void Return %36.1
  13643. BB5
  13644. cls' %5.0 = LdConst function (mode = "logical", length = ...
  13645. t %5.1 = Identical %3.0, %5.0
  13646. void Assume %5.1, %3.1
  13647. str$' %5.3 = LdConst [1] "list"
  13648. real$' %5.4 = LdConst [1] 4
  13649. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  13650. void StVar array, %5.5, e0.2
  13651. real$' %5.7 = LdConst [1] 1
  13652. real$' %5.8 = LdConst [1] 4
  13653. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  13654. BB4
  13655. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  13656. void Deopt %4.0
  13657. BB7
  13658. val' %7.0 = Colon %5.7, %5.8, elided
  13659. val' %7.1 = SetShared %7.0
  13660. int$' %7.2 = ForSeqSize %7.1
  13661. int$' %7.3 = LdConst [1] 0
  13662. goto BB8
  13663. BB6
  13664. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  13665. void Deopt %6.0
  13666. BB8
  13667. val %8.0 = Phi %5.5:BB5, %37.7:BB37
  13668. int$' %8.1 = Phi %7.3:BB7, %8.3:BB37
  13669. int$' %8.2 = Inc %8.1
  13670. int$' %8.3 = EnsureNamed %8.2
  13671. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  13672. BB10
  13673. lgl' %10.0 = Lt %7.2, %8.3, elided
  13674. t %10.1 = AsTest %10.0
  13675. void Branch %10.1 -> BB34 (if true) | BB11 (if false)
  13676. BB9
  13677. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  13678. void Deopt %9.0
  13679. BB34
  13680. goto BB36
  13681. BB11
  13682. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  13683. BB13
  13684. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  13685. void StVar i, %13.0, e0.2
  13686. cls %13.2 = LdFun buildTreeDepth, e0.2
  13687. prom %13.3 = MkArg missing, Prom(2), e0.2
  13688. prom %13.4 = MkArg missing, Prom(3), e0.2
  13689. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  13690. BB12
  13691. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  13692. void Deopt %12.0
  13693. BB15
  13694. cls' %15.0 = LdConst function (depth, random) { if (d...
  13695. t %15.1 = Identical %13.2, %15.0
  13696. void Assume %15.1, %13.5
  13697. val^? %15.3 = CastType %13.3
  13698. val^? %15.4 = CastType %13.4
  13699. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  13700. val %15.6 = Force %15.3, e15.5
  13701. real$' %15.7 = LdConst [1] 1
  13702. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  13703. BB14
  13704. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  13705. void Deopt %14.0
  13706. BB17
  13707. lgl %17.0 = Eq %15.6, %15.7, e15.5
  13708. lgl %17.1 = AsLogical %17.0
  13709. t %17.2 = AsTest %17.1
  13710. void Branch %17.2 -> BB33 (if true) | BB18 (if false)
  13711. BB16
  13712. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13713. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  13714. void Deopt %16.1
  13715. BB33
  13716. cls %33.0 = LdFun c, e15.5
  13717. prom %33.1 = MkArg missing, Prom(5), e15.5
  13718. fs %33.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13719. fs %33.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%33.2
  13720. val^ %33.4 = Call %33.0(%33.1) %33.3, e15.5
  13721. goto BB37
  13722. BB18
  13723. cls %18.0 = LdFun vector, e15.5
  13724. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  13725. BB37
  13726. val^ %37.0 = Phi %23.0:BB32, %33.4:BB33
  13727. val %37.1 = Force %37.0, e15.5
  13728. val^? %37.2 = LdVar array, e0.2
  13729. val %37.3 = Force %37.2, e0.2
  13730. val^? %37.4 = LdVar i, e0.2
  13731. val %37.5 = Force %37.4, e0.2
  13732. val %37.6 = EnsureNamed %37.1
  13733. val %37.7 = Subassign2_1D %37.6, %37.3, %37.5, e0.2
  13734. void StVar array, %37.7, e0.2
  13735. goto BB8
  13736. BB20
  13737. cls' %20.0 = LdConst function (mode = "logical", length = ...
  13738. t %20.1 = Identical %18.0, %20.0
  13739. void Assume %20.1, %18.1
  13740. real$' %20.3 = LdConst [1] 4
  13741. str$' %20.4 = LdConst [1] "list"
  13742. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  13743. void StVar array, %20.5, e15.5
  13744. real$' %20.7 = LdConst [1] 1
  13745. real$' %20.8 = LdConst [1] 4
  13746. cp %20.9 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  13747. BB19
  13748. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13749. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  13750. void Deopt %19.1
  13751. BB22
  13752. val' %22.0 = Colon %20.7, %20.8, elided
  13753. val' %22.1 = SetShared %22.0
  13754. int$' %22.2 = ForSeqSize %22.1
  13755. int$' %22.3 = LdConst [1] 0
  13756. goto BB23
  13757. BB21
  13758. fs %21.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13759. fs %21.1 = FrameState 0x7f924457f3d0+192: [%20.7, %20.8], env=e15.5, next=%21.0
  13760. void Deopt %21.1
  13761. BB23
  13762. val %23.0 = Phi %20.5:BB20, %31.7:BB31
  13763. int$' %23.1 = Phi %22.3:BB22, %23.3:BB31
  13764. int$' %23.2 = Inc %23.1
  13765. int$' %23.3 = EnsureNamed %23.2
  13766. cp %23.4 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  13767. BB25
  13768. lgl' %25.0 = Lt %22.2, %23.3, elided
  13769. t %25.1 = AsTest %25.0
  13770. void Branch %25.1 -> BB32 (if true) | BB26 (if false)
  13771. BB24
  13772. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13773. fs %24.1 = FrameState 0x7f924457f3d0+203: [%22.1, %22.2, %23.3, %22.2, %23.3], env=e15.5, next=%24.0
  13774. void Deopt %24.1
  13775. BB32
  13776. goto BB37
  13777. BB26
  13778. cp %26.0 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  13779. BB28
  13780. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  13781. void StVar i, %28.0, e15.5
  13782. cls %28.2 = LdFun buildTreeDepth, e15.5
  13783. prom %28.3 = MkArg missing, Prom(8), e15.5
  13784. prom %28.4 = MkArg missing, Prom(9), e15.5
  13785. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  13786. BB27
  13787. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13788. fs %27.1 = FrameState 0x7f924457f3d0+219: [%22.1, %22.2, %23.3, %22.1, %23.3], env=e15.5, next=%27.0
  13789. void Deopt %27.1
  13790. BB30
  13791. cls' %30.0 = LdConst function (depth, random) { if (d...
  13792. t %30.1 = Identical %28.2, %30.0
  13793. void Assume %30.1, %28.5
  13794. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13795. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  13796. goto BB31
  13797. BB29
  13798. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  13799. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  13800. void Deopt %29.1
  13801. BB31
  13802. val^ %31.0 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  13803. val^? %31.1 = LdVar array, e15.5
  13804. val %31.2 = Force %31.1, e15.5
  13805. val^? %31.3 = LdVar i, e15.5
  13806. val %31.4 = Force %31.3, e15.5
  13807. val^ %31.5 = EnsureNamed %31.0
  13808. val %31.6 = Force %31.5, e15.5
  13809. val %31.7 = Subassign2_1D %31.6, %31.2, %31.4, e15.5
  13810. void StVar array, %31.7, e15.5
  13811. goto BB23
  13812. Prom 2:
  13813. BB0
  13814. env e0.0 = LdFunctionEnv
  13815. val^? %0.1 = LdVar depth, e0.0
  13816. val %0.2 = Force %0.1, e0.0
  13817. real$' %0.3 = LdConst [1] 1
  13818. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13819. BB2
  13820. val %2.0 = Sub %0.2, %0.3, e0.0
  13821. void Return %2.0
  13822. BB1
  13823. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  13824. void Deopt %1.0
  13825. Prom 3:
  13826. BB0
  13827. env e0.0 = LdFunctionEnv
  13828. val^? %0.1 = LdVar random, e0.0
  13829. val %0.2 = Force %0.1, e0.0
  13830. void Return %0.2
  13831. Prom 4:
  13832. BB0
  13833. env e0.0 = LdFunctionEnv
  13834. cls %0.1 = LdFun nextRandom, e0.0
  13835. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  13836. t %0.3 = Identical %0.1, %0.2
  13837. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13838. BB2
  13839. void Assume %0.3, %0.4
  13840. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  13841. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  13842. real$' %2.3 = LdConst [1] 10
  13843. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  13844. BB1
  13845. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  13846. void Deopt %1.0
  13847. BB4
  13848. val %4.0 = Force %2.2, e0.0
  13849. val %4.1 = Mod %4.0, %2.3, e0.0
  13850. real$' %4.2 = LdConst [1] 1
  13851. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  13852. BB3
  13853. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  13854. void Deopt %3.0
  13855. BB6
  13856. val %6.0 = Add %4.1, %4.2, e0.0
  13857. void Return %6.0
  13858. BB5
  13859. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  13860. void Deopt %5.0
  13861. Prom 5:
  13862. BB0
  13863. env e0.0 = LdFunctionEnv
  13864. cls %0.1 = LdFun nextRandom, e0.0
  13865. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  13866. t %0.3 = Identical %0.1, %0.2
  13867. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13868. BB2
  13869. void Assume %0.3, %0.4
  13870. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  13871. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  13872. real$' %2.3 = LdConst [1] 10
  13873. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  13874. BB1
  13875. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  13876. void Deopt %1.0
  13877. BB4
  13878. val %4.0 = Force %2.2, e0.0
  13879. val %4.1 = Mod %4.0, %2.3, e0.0
  13880. real$' %4.2 = LdConst [1] 1
  13881. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  13882. BB3
  13883. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  13884. void Deopt %3.0
  13885. BB6
  13886. val %6.0 = Add %4.1, %4.2, e0.0
  13887. void Return %6.0
  13888. BB5
  13889. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  13890. void Deopt %5.0
  13891. Prom 8:
  13892. BB0
  13893. env e0.0 = LdFunctionEnv
  13894. val^? %0.1 = LdVar depth, e0.0
  13895. val %0.2 = Force %0.1, e0.0
  13896. real$' %0.3 = LdConst [1] 1
  13897. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13898. BB2
  13899. val %2.0 = Sub %0.2, %0.3, e0.0
  13900. void Return %2.0
  13901. BB1
  13902. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  13903. void Deopt %1.0
  13904. Prom 9:
  13905. BB0
  13906. env e0.0 = LdFunctionEnv
  13907. val^? %0.1 = LdVar random, e0.0
  13908. val %0.2 = Force %0.1, e0.0
  13909. void Return %0.2
  13910. ├────── Move environment creation as far as possible: == 231
  13911. buildTreeDepth[0x7f92446010b0]
  13912. BB0
  13913. val^ %0.0 = LdArg 0
  13914. val^ %0.1 = LdArg 1
  13915. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  13916. val %0.3 = Force! %0.0, e0.2
  13917. real$' %0.4 = LdConst [1] 1
  13918. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  13919. BB2
  13920. lgl %2.0 = Eq %0.3, %0.4, e0.2
  13921. lgl %2.1 = AsLogical %2.0
  13922. t %2.2 = AsTest %2.1
  13923. void Branch %2.2 -> BB35 (if true) | BB3 (if false)
  13924. BB1
  13925. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  13926. void Deopt %1.0
  13927. BB35
  13928. cls %35.0 = LdFun c, e0.2
  13929. prom %35.1 = MkArg missing, Prom(4), e0.2
  13930. fs %35.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  13931. val^ %35.3 = Call %35.0(%35.1) %35.2, e0.2
  13932. goto BB36
  13933. BB3
  13934. cls %3.0 = LdFun vector, e0.2
  13935. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  13936. BB36
  13937. val^ %36.0 = Phi %8.0:BB34, %35.3:BB35
  13938. val %36.1 = Force %36.0, e0.2
  13939. void Return %36.1
  13940. BB5
  13941. cls' %5.0 = LdConst function (mode = "logical", length = ...
  13942. t %5.1 = Identical %3.0, %5.0
  13943. void Assume %5.1, %3.1
  13944. str$' %5.3 = LdConst [1] "list"
  13945. real$' %5.4 = LdConst [1] 4
  13946. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  13947. void StVar array, %5.5, e0.2
  13948. real$' %5.7 = LdConst [1] 1
  13949. real$' %5.8 = LdConst [1] 4
  13950. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  13951. BB4
  13952. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  13953. void Deopt %4.0
  13954. BB7
  13955. val' %7.0 = Colon %5.7, %5.8, elided
  13956. val' %7.1 = SetShared %7.0
  13957. int$' %7.2 = ForSeqSize %7.1
  13958. int$' %7.3 = LdConst [1] 0
  13959. goto BB8
  13960. BB6
  13961. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  13962. void Deopt %6.0
  13963. BB8
  13964. val %8.0 = Phi %5.5:BB5, %37.7:BB37
  13965. int$' %8.1 = Phi %7.3:BB7, %8.3:BB37
  13966. int$' %8.2 = Inc %8.1
  13967. int$' %8.3 = EnsureNamed %8.2
  13968. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  13969. BB10
  13970. lgl' %10.0 = Lt %7.2, %8.3, elided
  13971. t %10.1 = AsTest %10.0
  13972. void Branch %10.1 -> BB34 (if true) | BB11 (if false)
  13973. BB9
  13974. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  13975. void Deopt %9.0
  13976. BB34
  13977. goto BB36
  13978. BB11
  13979. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  13980. BB13
  13981. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  13982. void StVar i, %13.0, e0.2
  13983. cls %13.2 = LdFun buildTreeDepth, e0.2
  13984. prom %13.3 = MkArg missing, Prom(2), e0.2
  13985. prom %13.4 = MkArg missing, Prom(3), e0.2
  13986. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  13987. BB12
  13988. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  13989. void Deopt %12.0
  13990. BB15
  13991. cls' %15.0 = LdConst function (depth, random) { if (d...
  13992. t %15.1 = Identical %13.2, %15.0
  13993. void Assume %15.1, %13.5
  13994. val^? %15.3 = CastType %13.3
  13995. val^? %15.4 = CastType %13.4
  13996. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  13997. val %15.6 = Force %15.3, e15.5
  13998. real$' %15.7 = LdConst [1] 1
  13999. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  14000. BB14
  14001. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  14002. void Deopt %14.0
  14003. BB17
  14004. lgl %17.0 = Eq %15.6, %15.7, e15.5
  14005. lgl %17.1 = AsLogical %17.0
  14006. t %17.2 = AsTest %17.1
  14007. void Branch %17.2 -> BB33 (if true) | BB18 (if false)
  14008. BB16
  14009. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14010. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  14011. void Deopt %16.1
  14012. BB33
  14013. cls %33.0 = LdFun c, e15.5
  14014. prom %33.1 = MkArg missing, Prom(5), e15.5
  14015. fs %33.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14016. fs %33.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%33.2
  14017. val^ %33.4 = Call %33.0(%33.1) %33.3, e15.5
  14018. goto BB37
  14019. BB18
  14020. cls %18.0 = LdFun vector, e15.5
  14021. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  14022. BB37
  14023. val^ %37.0 = Phi %23.0:BB32, %33.4:BB33
  14024. val %37.1 = Force %37.0, e15.5
  14025. val^? %37.2 = LdVar array, e0.2
  14026. val %37.3 = Force %37.2, e0.2
  14027. val^? %37.4 = LdVar i, e0.2
  14028. val %37.5 = Force %37.4, e0.2
  14029. val %37.6 = EnsureNamed %37.1
  14030. val %37.7 = Subassign2_1D %37.6, %37.3, %37.5, e0.2
  14031. void StVar array, %37.7, e0.2
  14032. goto BB8
  14033. BB20
  14034. cls' %20.0 = LdConst function (mode = "logical", length = ...
  14035. t %20.1 = Identical %18.0, %20.0
  14036. void Assume %20.1, %18.1
  14037. real$' %20.3 = LdConst [1] 4
  14038. str$' %20.4 = LdConst [1] "list"
  14039. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  14040. void StVar array, %20.5, e15.5
  14041. real$' %20.7 = LdConst [1] 1
  14042. real$' %20.8 = LdConst [1] 4
  14043. cp %20.9 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  14044. BB19
  14045. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14046. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  14047. void Deopt %19.1
  14048. BB22
  14049. val' %22.0 = Colon %20.7, %20.8, elided
  14050. val' %22.1 = SetShared %22.0
  14051. int$' %22.2 = ForSeqSize %22.1
  14052. int$' %22.3 = LdConst [1] 0
  14053. goto BB23
  14054. BB21
  14055. fs %21.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14056. fs %21.1 = FrameState 0x7f924457f3d0+192: [%20.7, %20.8], env=e15.5, next=%21.0
  14057. void Deopt %21.1
  14058. BB23
  14059. val %23.0 = Phi %20.5:BB20, %31.7:BB31
  14060. int$' %23.1 = Phi %22.3:BB22, %23.3:BB31
  14061. int$' %23.2 = Inc %23.1
  14062. int$' %23.3 = EnsureNamed %23.2
  14063. cp %23.4 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  14064. BB25
  14065. lgl' %25.0 = Lt %22.2, %23.3, elided
  14066. t %25.1 = AsTest %25.0
  14067. void Branch %25.1 -> BB32 (if true) | BB26 (if false)
  14068. BB24
  14069. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14070. fs %24.1 = FrameState 0x7f924457f3d0+203: [%22.1, %22.2, %23.3, %22.2, %23.3], env=e15.5, next=%24.0
  14071. void Deopt %24.1
  14072. BB32
  14073. goto BB37
  14074. BB26
  14075. cp %26.0 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  14076. BB28
  14077. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  14078. void StVar i, %28.0, e15.5
  14079. cls %28.2 = LdFun buildTreeDepth, e15.5
  14080. prom %28.3 = MkArg missing, Prom(8), e15.5
  14081. prom %28.4 = MkArg missing, Prom(9), e15.5
  14082. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  14083. BB27
  14084. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14085. fs %27.1 = FrameState 0x7f924457f3d0+219: [%22.1, %22.2, %23.3, %22.1, %23.3], env=e15.5, next=%27.0
  14086. void Deopt %27.1
  14087. BB30
  14088. cls' %30.0 = LdConst function (depth, random) { if (d...
  14089. t %30.1 = Identical %28.2, %30.0
  14090. void Assume %30.1, %28.5
  14091. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14092. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  14093. goto BB31
  14094. BB29
  14095. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14096. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  14097. void Deopt %29.1
  14098. BB31
  14099. val^ %31.0 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  14100. val^? %31.1 = LdVar array, e15.5
  14101. val %31.2 = Force %31.1, e15.5
  14102. val^? %31.3 = LdVar i, e15.5
  14103. val %31.4 = Force %31.3, e15.5
  14104. val^ %31.5 = EnsureNamed %31.0
  14105. val %31.6 = Force %31.5, e15.5
  14106. val %31.7 = Subassign2_1D %31.6, %31.2, %31.4, e15.5
  14107. void StVar array, %31.7, e15.5
  14108. goto BB23
  14109. Prom 2:
  14110. BB0
  14111. env e0.0 = LdFunctionEnv
  14112. val^? %0.1 = LdVar depth, e0.0
  14113. val %0.2 = Force %0.1, e0.0
  14114. real$' %0.3 = LdConst [1] 1
  14115. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14116. BB2
  14117. val %2.0 = Sub %0.2, %0.3, e0.0
  14118. void Return %2.0
  14119. BB1
  14120. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  14121. void Deopt %1.0
  14122. Prom 3:
  14123. BB0
  14124. env e0.0 = LdFunctionEnv
  14125. val^? %0.1 = LdVar random, e0.0
  14126. val %0.2 = Force %0.1, e0.0
  14127. void Return %0.2
  14128. Prom 4:
  14129. BB0
  14130. env e0.0 = LdFunctionEnv
  14131. cls %0.1 = LdFun nextRandom, e0.0
  14132. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  14133. t %0.3 = Identical %0.1, %0.2
  14134. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14135. BB2
  14136. void Assume %0.3, %0.4
  14137. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  14138. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  14139. real$' %2.3 = LdConst [1] 10
  14140. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  14141. BB1
  14142. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  14143. void Deopt %1.0
  14144. BB4
  14145. val %4.0 = Force %2.2, e0.0
  14146. val %4.1 = Mod %4.0, %2.3, e0.0
  14147. real$' %4.2 = LdConst [1] 1
  14148. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  14149. BB3
  14150. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  14151. void Deopt %3.0
  14152. BB6
  14153. val %6.0 = Add %4.1, %4.2, e0.0
  14154. void Return %6.0
  14155. BB5
  14156. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  14157. void Deopt %5.0
  14158. Prom 5:
  14159. BB0
  14160. env e0.0 = LdFunctionEnv
  14161. cls %0.1 = LdFun nextRandom, e0.0
  14162. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  14163. t %0.3 = Identical %0.1, %0.2
  14164. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14165. BB2
  14166. void Assume %0.3, %0.4
  14167. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  14168. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  14169. real$' %2.3 = LdConst [1] 10
  14170. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  14171. BB1
  14172. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  14173. void Deopt %1.0
  14174. BB4
  14175. val %4.0 = Force %2.2, e0.0
  14176. val %4.1 = Mod %4.0, %2.3, e0.0
  14177. real$' %4.2 = LdConst [1] 1
  14178. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  14179. BB3
  14180. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  14181. void Deopt %3.0
  14182. BB6
  14183. val %6.0 = Add %4.1, %4.2, e0.0
  14184. void Return %6.0
  14185. BB5
  14186. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  14187. void Deopt %5.0
  14188. Prom 8:
  14189. BB0
  14190. env e0.0 = LdFunctionEnv
  14191. val^? %0.1 = LdVar depth, e0.0
  14192. val %0.2 = Force %0.1, e0.0
  14193. real$' %0.3 = LdConst [1] 1
  14194. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14195. BB2
  14196. val %2.0 = Sub %0.2, %0.3, e0.0
  14197. void Return %2.0
  14198. BB1
  14199. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  14200. void Deopt %1.0
  14201. Prom 9:
  14202. BB0
  14203. env e0.0 = LdFunctionEnv
  14204. val^? %0.1 = LdVar random, e0.0
  14205. val %0.2 = Force %0.1, e0.0
  14206. void Return %0.2
  14207. ├────── Cleanup redundant operations: == 238
  14208. buildTreeDepth[0x7f92446010b0]
  14209. BB0
  14210. val^ %0.0 = LdArg 0
  14211. val^ %0.1 = LdArg 1
  14212. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  14213. val %0.3 = Force! %0.0, e0.2
  14214. real$' %0.4 = LdConst [1] 1
  14215. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14216. BB2
  14217. lgl %2.0 = Eq %0.3, %0.4, e0.2
  14218. lgl %2.1 = AsLogical %2.0
  14219. t %2.2 = AsTest %2.1
  14220. void Branch %2.2 -> BB34 (if true) | BB3 (if false)
  14221. BB1
  14222. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  14223. void Deopt %1.0
  14224. BB34
  14225. cls %34.0 = LdFun c, e0.2
  14226. prom %34.1 = MkArg missing, Prom(4), e0.2
  14227. fs %34.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  14228. val^ %34.3 = Call %34.0(%34.1) %34.2, e0.2
  14229. goto BB35
  14230. BB3
  14231. cls %3.0 = LdFun vector, e0.2
  14232. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  14233. BB35
  14234. val^ %35.0 = Phi %8.0:BB33, %34.3:BB34
  14235. val %35.1 = Force %35.0, e0.2
  14236. void Return %35.1
  14237. BB5
  14238. cls' %5.0 = LdConst function (mode = "logical", length = ...
  14239. t %5.1 = Identical %3.0, %5.0
  14240. void Assume %5.1, %3.1
  14241. str$' %5.3 = LdConst [1] "list"
  14242. real$' %5.4 = LdConst [1] 4
  14243. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  14244. void StVar array, %5.5, e0.2
  14245. real$' %5.7 = LdConst [1] 1
  14246. real$' %5.8 = LdConst [1] 4
  14247. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  14248. BB4
  14249. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  14250. void Deopt %4.0
  14251. BB7
  14252. val' %7.0 = Colon %5.7, %5.8, elided
  14253. val' %7.1 = SetShared %7.0
  14254. int$' %7.2 = ForSeqSize %7.1
  14255. int$' %7.3 = LdConst [1] 0
  14256. goto BB8
  14257. BB6
  14258. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  14259. void Deopt %6.0
  14260. BB8
  14261. val %8.0 = Phi %5.5:BB5, %36.7:BB36
  14262. int$' %8.1 = Phi %7.3:BB7, %8.3:BB36
  14263. int$' %8.2 = Inc %8.1
  14264. int$' %8.3 = EnsureNamed %8.2
  14265. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  14266. BB10
  14267. lgl' %10.0 = Lt %7.2, %8.3, elided
  14268. t %10.1 = AsTest %10.0
  14269. void Branch %10.1 -> BB33 (if true) | BB11 (if false)
  14270. BB9
  14271. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  14272. void Deopt %9.0
  14273. BB33
  14274. goto BB35
  14275. BB11
  14276. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  14277. BB13
  14278. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  14279. void StVar i, %13.0, e0.2
  14280. cls %13.2 = LdFun buildTreeDepth, e0.2
  14281. prom %13.3 = MkArg missing, Prom(2), e0.2
  14282. prom %13.4 = MkArg missing, Prom(3), e0.2
  14283. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  14284. BB12
  14285. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  14286. void Deopt %12.0
  14287. BB15
  14288. cls' %15.0 = LdConst function (depth, random) { if (d...
  14289. t %15.1 = Identical %13.2, %15.0
  14290. void Assume %15.1, %13.5
  14291. val^? %15.3 = CastType %13.3
  14292. val^? %15.4 = CastType %13.4
  14293. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  14294. val %15.6 = Force %15.3, e15.5
  14295. real$' %15.7 = LdConst [1] 1
  14296. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  14297. BB14
  14298. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  14299. void Deopt %14.0
  14300. BB17
  14301. lgl %17.0 = Eq %15.6, %15.7, e15.5
  14302. lgl %17.1 = AsLogical %17.0
  14303. t %17.2 = AsTest %17.1
  14304. void Branch %17.2 -> BB32 (if true) | BB18 (if false)
  14305. BB16
  14306. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14307. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  14308. void Deopt %16.1
  14309. BB32
  14310. cls %32.0 = LdFun c, e15.5
  14311. prom %32.1 = MkArg missing, Prom(5), e15.5
  14312. fs %32.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14313. fs %32.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%32.2
  14314. val^ %32.4 = Call %32.0(%32.1) %32.3, e15.5
  14315. goto BB36
  14316. BB18
  14317. cls %18.0 = LdFun vector, e15.5
  14318. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  14319. BB36
  14320. val^ %36.0 = Phi %23.0:BB31, %32.4:BB32
  14321. val %36.1 = Force %36.0, e15.5
  14322. val^? %36.2 = LdVar array, e0.2
  14323. val %36.3 = Force %36.2, e0.2
  14324. val^? %36.4 = LdVar i, e0.2
  14325. val %36.5 = Force %36.4, e0.2
  14326. val %36.6 = EnsureNamed %36.1
  14327. val %36.7 = Subassign2_1D %36.6, %36.3, %36.5, e0.2
  14328. void StVar array, %36.7, e0.2
  14329. goto BB8
  14330. BB20
  14331. cls' %20.0 = LdConst function (mode = "logical", length = ...
  14332. t %20.1 = Identical %18.0, %20.0
  14333. void Assume %20.1, %18.1
  14334. real$' %20.3 = LdConst [1] 4
  14335. str$' %20.4 = LdConst [1] "list"
  14336. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  14337. void StVar array, %20.5, e15.5
  14338. real$' %20.7 = LdConst [1] 1
  14339. real$' %20.8 = LdConst [1] 4
  14340. cp %20.9 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  14341. BB19
  14342. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14343. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  14344. void Deopt %19.1
  14345. BB22
  14346. val' %22.0 = Colon %20.7, %20.8, elided
  14347. val' %22.1 = SetShared %22.0
  14348. int$' %22.2 = ForSeqSize %22.1
  14349. int$' %22.3 = LdConst [1] 0
  14350. goto BB23
  14351. BB21
  14352. fs %21.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14353. fs %21.1 = FrameState 0x7f924457f3d0+192: [%20.7, %20.8], env=e15.5, next=%21.0
  14354. void Deopt %21.1
  14355. BB23
  14356. val %23.0 = Phi %20.5:BB20, %30.12:BB30
  14357. int$' %23.1 = Phi %22.3:BB22, %23.3:BB30
  14358. int$' %23.2 = Inc %23.1
  14359. int$' %23.3 = EnsureNamed %23.2
  14360. cp %23.4 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  14361. BB25
  14362. lgl' %25.0 = Lt %22.2, %23.3, elided
  14363. t %25.1 = AsTest %25.0
  14364. void Branch %25.1 -> BB31 (if true) | BB26 (if false)
  14365. BB24
  14366. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14367. fs %24.1 = FrameState 0x7f924457f3d0+203: [%22.1, %22.2, %23.3, %22.2, %23.3], env=e15.5, next=%24.0
  14368. void Deopt %24.1
  14369. BB31
  14370. goto BB36
  14371. BB26
  14372. cp %26.0 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  14373. BB28
  14374. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  14375. void StVar i, %28.0, e15.5
  14376. cls %28.2 = LdFun buildTreeDepth, e15.5
  14377. prom %28.3 = MkArg missing, Prom(8), e15.5
  14378. prom %28.4 = MkArg missing, Prom(9), e15.5
  14379. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  14380. BB27
  14381. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14382. fs %27.1 = FrameState 0x7f924457f3d0+219: [%22.1, %22.2, %23.3, %22.1, %23.3], env=e15.5, next=%27.0
  14383. void Deopt %27.1
  14384. BB30
  14385. cls' %30.0 = LdConst function (depth, random) { if (d...
  14386. t %30.1 = Identical %28.2, %30.0
  14387. void Assume %30.1, %28.5
  14388. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14389. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  14390. val^ %30.5 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  14391. val^? %30.6 = LdVar array, e15.5
  14392. val %30.7 = Force %30.6, e15.5
  14393. val^? %30.8 = LdVar i, e15.5
  14394. val %30.9 = Force %30.8, e15.5
  14395. val^ %30.10 = EnsureNamed %30.5
  14396. val %30.11 = Force %30.10, e15.5
  14397. val %30.12 = Subassign2_1D %30.11, %30.7, %30.9, e15.5
  14398. void StVar array, %30.12, e15.5
  14399. goto BB23
  14400. BB29
  14401. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14402. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  14403. void Deopt %29.1
  14404. Prom 2:
  14405. BB0
  14406. env e0.0 = LdFunctionEnv
  14407. val^? %0.1 = LdVar depth, e0.0
  14408. val %0.2 = Force %0.1, e0.0
  14409. real$' %0.3 = LdConst [1] 1
  14410. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14411. BB2
  14412. val %2.0 = Sub %0.2, %0.3, e0.0
  14413. void Return %2.0
  14414. BB1
  14415. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  14416. void Deopt %1.0
  14417. Prom 3:
  14418. BB0
  14419. env e0.0 = LdFunctionEnv
  14420. val^? %0.1 = LdVar random, e0.0
  14421. val %0.2 = Force %0.1, e0.0
  14422. void Return %0.2
  14423. Prom 4:
  14424. BB0
  14425. env e0.0 = LdFunctionEnv
  14426. cls %0.1 = LdFun nextRandom, e0.0
  14427. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  14428. t %0.3 = Identical %0.1, %0.2
  14429. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14430. BB2
  14431. void Assume %0.3, %0.4
  14432. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  14433. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  14434. real$' %2.3 = LdConst [1] 10
  14435. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  14436. BB1
  14437. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  14438. void Deopt %1.0
  14439. BB4
  14440. val %4.0 = Force %2.2, e0.0
  14441. val %4.1 = Mod %4.0, %2.3, e0.0
  14442. real$' %4.2 = LdConst [1] 1
  14443. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  14444. BB3
  14445. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  14446. void Deopt %3.0
  14447. BB6
  14448. val %6.0 = Add %4.1, %4.2, e0.0
  14449. void Return %6.0
  14450. BB5
  14451. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  14452. void Deopt %5.0
  14453. Prom 5:
  14454. BB0
  14455. env e0.0 = LdFunctionEnv
  14456. cls %0.1 = LdFun nextRandom, e0.0
  14457. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  14458. t %0.3 = Identical %0.1, %0.2
  14459. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14460. BB2
  14461. void Assume %0.3, %0.4
  14462. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  14463. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  14464. real$' %2.3 = LdConst [1] 10
  14465. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  14466. BB1
  14467. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  14468. void Deopt %1.0
  14469. BB4
  14470. val %4.0 = Force %2.2, e0.0
  14471. val %4.1 = Mod %4.0, %2.3, e0.0
  14472. real$' %4.2 = LdConst [1] 1
  14473. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  14474. BB3
  14475. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  14476. void Deopt %3.0
  14477. BB6
  14478. val %6.0 = Add %4.1, %4.2, e0.0
  14479. void Return %6.0
  14480. BB5
  14481. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  14482. void Deopt %5.0
  14483. Prom 8:
  14484. BB0
  14485. env e0.0 = LdFunctionEnv
  14486. val^? %0.1 = LdVar depth, e0.0
  14487. val %0.2 = Force %0.1, e0.0
  14488. real$' %0.3 = LdConst [1] 1
  14489. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14490. BB2
  14491. val %2.0 = Sub %0.2, %0.3, e0.0
  14492. void Return %2.0
  14493. BB1
  14494. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  14495. void Deopt %1.0
  14496. Prom 9:
  14497. BB0
  14498. env e0.0 = LdFunctionEnv
  14499. val^? %0.1 = LdVar random, e0.0
  14500. val %0.2 = Force %0.1, e0.0
  14501. void Return %0.2
  14502. ├────── Inline closures: == 245
  14503. buildTreeDepth[0x7f92446010b0]
  14504. BB0
  14505. val^ %0.0 = LdArg 0
  14506. val^ %0.1 = LdArg 1
  14507. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  14508. val %0.3 = Force! %0.0, e0.2
  14509. real$' %0.4 = LdConst [1] 1
  14510. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14511. BB2
  14512. lgl %2.0 = Eq %0.3, %0.4, e0.2
  14513. lgl %2.1 = AsLogical %2.0
  14514. t %2.2 = AsTest %2.1
  14515. void Branch %2.2 -> BB34 (if true) | BB3 (if false)
  14516. BB1
  14517. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  14518. void Deopt %1.0
  14519. BB34
  14520. cls %34.0 = LdFun c, e0.2
  14521. prom %34.1 = MkArg missing, Prom(4), e0.2
  14522. fs %34.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  14523. val^ %34.3 = Call %34.0(%34.1) %34.2, e0.2
  14524. goto BB35
  14525. BB3
  14526. cls %3.0 = LdFun vector, e0.2
  14527. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  14528. BB35
  14529. val^ %35.0 = Phi %8.0:BB33, %34.3:BB34
  14530. val %35.1 = Force %35.0, e0.2
  14531. void Return %35.1
  14532. BB5
  14533. cls' %5.0 = LdConst function (mode = "logical", length = ...
  14534. t %5.1 = Identical %3.0, %5.0
  14535. void Assume %5.1, %3.1
  14536. str$' %5.3 = LdConst [1] "list"
  14537. real$' %5.4 = LdConst [1] 4
  14538. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  14539. void StVar array, %5.5, e0.2
  14540. real$' %5.7 = LdConst [1] 1
  14541. real$' %5.8 = LdConst [1] 4
  14542. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  14543. BB4
  14544. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  14545. void Deopt %4.0
  14546. BB7
  14547. val' %7.0 = Colon %5.7, %5.8, elided
  14548. val' %7.1 = SetShared %7.0
  14549. int$' %7.2 = ForSeqSize %7.1
  14550. int$' %7.3 = LdConst [1] 0
  14551. goto BB8
  14552. BB6
  14553. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  14554. void Deopt %6.0
  14555. BB8
  14556. val %8.0 = Phi %5.5:BB5, %36.7:BB36
  14557. int$' %8.1 = Phi %7.3:BB7, %8.3:BB36
  14558. int$' %8.2 = Inc %8.1
  14559. int$' %8.3 = EnsureNamed %8.2
  14560. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  14561. BB10
  14562. lgl' %10.0 = Lt %7.2, %8.3, elided
  14563. t %10.1 = AsTest %10.0
  14564. void Branch %10.1 -> BB33 (if true) | BB11 (if false)
  14565. BB9
  14566. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  14567. void Deopt %9.0
  14568. BB33
  14569. goto BB35
  14570. BB11
  14571. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  14572. BB13
  14573. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  14574. void StVar i, %13.0, e0.2
  14575. cls %13.2 = LdFun buildTreeDepth, e0.2
  14576. prom %13.3 = MkArg missing, Prom(2), e0.2
  14577. prom %13.4 = MkArg missing, Prom(3), e0.2
  14578. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  14579. BB12
  14580. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  14581. void Deopt %12.0
  14582. BB15
  14583. cls' %15.0 = LdConst function (depth, random) { if (d...
  14584. t %15.1 = Identical %13.2, %15.0
  14585. void Assume %15.1, %13.5
  14586. val^? %15.3 = CastType %13.3
  14587. val^? %15.4 = CastType %13.4
  14588. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  14589. val %15.6 = Force %15.3, e15.5
  14590. real$' %15.7 = LdConst [1] 1
  14591. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  14592. BB14
  14593. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  14594. void Deopt %14.0
  14595. BB17
  14596. lgl %17.0 = Eq %15.6, %15.7, e15.5
  14597. lgl %17.1 = AsLogical %17.0
  14598. t %17.2 = AsTest %17.1
  14599. void Branch %17.2 -> BB32 (if true) | BB18 (if false)
  14600. BB16
  14601. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14602. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  14603. void Deopt %16.1
  14604. BB32
  14605. cls %32.0 = LdFun c, e15.5
  14606. prom %32.1 = MkArg missing, Prom(5), e15.5
  14607. fs %32.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14608. fs %32.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%32.2
  14609. val^ %32.4 = Call %32.0(%32.1) %32.3, e15.5
  14610. goto BB36
  14611. BB18
  14612. cls %18.0 = LdFun vector, e15.5
  14613. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  14614. BB36
  14615. val^ %36.0 = Phi %23.0:BB31, %32.4:BB32
  14616. val %36.1 = Force %36.0, e15.5
  14617. val^? %36.2 = LdVar array, e0.2
  14618. val %36.3 = Force %36.2, e0.2
  14619. val^? %36.4 = LdVar i, e0.2
  14620. val %36.5 = Force %36.4, e0.2
  14621. val %36.6 = EnsureNamed %36.1
  14622. val %36.7 = Subassign2_1D %36.6, %36.3, %36.5, e0.2
  14623. void StVar array, %36.7, e0.2
  14624. goto BB8
  14625. BB20
  14626. cls' %20.0 = LdConst function (mode = "logical", length = ...
  14627. t %20.1 = Identical %18.0, %20.0
  14628. void Assume %20.1, %18.1
  14629. real$' %20.3 = LdConst [1] 4
  14630. str$' %20.4 = LdConst [1] "list"
  14631. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  14632. void StVar array, %20.5, e15.5
  14633. real$' %20.7 = LdConst [1] 1
  14634. real$' %20.8 = LdConst [1] 4
  14635. cp %20.9 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  14636. BB19
  14637. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14638. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  14639. void Deopt %19.1
  14640. BB22
  14641. val' %22.0 = Colon %20.7, %20.8, elided
  14642. val' %22.1 = SetShared %22.0
  14643. int$' %22.2 = ForSeqSize %22.1
  14644. int$' %22.3 = LdConst [1] 0
  14645. goto BB23
  14646. BB21
  14647. fs %21.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14648. fs %21.1 = FrameState 0x7f924457f3d0+192: [%20.7, %20.8], env=e15.5, next=%21.0
  14649. void Deopt %21.1
  14650. BB23
  14651. val %23.0 = Phi %20.5:BB20, %30.12:BB30
  14652. int$' %23.1 = Phi %22.3:BB22, %23.3:BB30
  14653. int$' %23.2 = Inc %23.1
  14654. int$' %23.3 = EnsureNamed %23.2
  14655. cp %23.4 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  14656. BB25
  14657. lgl' %25.0 = Lt %22.2, %23.3, elided
  14658. t %25.1 = AsTest %25.0
  14659. void Branch %25.1 -> BB31 (if true) | BB26 (if false)
  14660. BB24
  14661. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14662. fs %24.1 = FrameState 0x7f924457f3d0+203: [%22.1, %22.2, %23.3, %22.2, %23.3], env=e15.5, next=%24.0
  14663. void Deopt %24.1
  14664. BB31
  14665. goto BB36
  14666. BB26
  14667. cp %26.0 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  14668. BB28
  14669. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  14670. void StVar i, %28.0, e15.5
  14671. cls %28.2 = LdFun buildTreeDepth, e15.5
  14672. prom %28.3 = MkArg missing, Prom(8), e15.5
  14673. prom %28.4 = MkArg missing, Prom(9), e15.5
  14674. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  14675. BB27
  14676. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14677. fs %27.1 = FrameState 0x7f924457f3d0+219: [%22.1, %22.2, %23.3, %22.1, %23.3], env=e15.5, next=%27.0
  14678. void Deopt %27.1
  14679. BB30
  14680. cls' %30.0 = LdConst function (depth, random) { if (d...
  14681. t %30.1 = Identical %28.2, %30.0
  14682. void Assume %30.1, %28.5
  14683. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14684. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  14685. val^ %30.5 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  14686. val^? %30.6 = LdVar array, e15.5
  14687. val %30.7 = Force %30.6, e15.5
  14688. val^? %30.8 = LdVar i, e15.5
  14689. val %30.9 = Force %30.8, e15.5
  14690. val^ %30.10 = EnsureNamed %30.5
  14691. val %30.11 = Force %30.10, e15.5
  14692. val %30.12 = Subassign2_1D %30.11, %30.7, %30.9, e15.5
  14693. void StVar array, %30.12, e15.5
  14694. goto BB23
  14695. BB29
  14696. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14697. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  14698. void Deopt %29.1
  14699. Prom 2:
  14700. BB0
  14701. env e0.0 = LdFunctionEnv
  14702. val^? %0.1 = LdVar depth, e0.0
  14703. val %0.2 = Force %0.1, e0.0
  14704. real$' %0.3 = LdConst [1] 1
  14705. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14706. BB2
  14707. val %2.0 = Sub %0.2, %0.3, e0.0
  14708. void Return %2.0
  14709. BB1
  14710. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  14711. void Deopt %1.0
  14712. Prom 3:
  14713. BB0
  14714. env e0.0 = LdFunctionEnv
  14715. val^? %0.1 = LdVar random, e0.0
  14716. val %0.2 = Force %0.1, e0.0
  14717. void Return %0.2
  14718. Prom 4:
  14719. BB0
  14720. env e0.0 = LdFunctionEnv
  14721. cls %0.1 = LdFun nextRandom, e0.0
  14722. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  14723. t %0.3 = Identical %0.1, %0.2
  14724. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14725. BB2
  14726. void Assume %0.3, %0.4
  14727. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  14728. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  14729. real$' %2.3 = LdConst [1] 10
  14730. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  14731. BB1
  14732. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  14733. void Deopt %1.0
  14734. BB4
  14735. val %4.0 = Force %2.2, e0.0
  14736. val %4.1 = Mod %4.0, %2.3, e0.0
  14737. real$' %4.2 = LdConst [1] 1
  14738. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  14739. BB3
  14740. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  14741. void Deopt %3.0
  14742. BB6
  14743. val %6.0 = Add %4.1, %4.2, e0.0
  14744. void Return %6.0
  14745. BB5
  14746. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  14747. void Deopt %5.0
  14748. Prom 5:
  14749. BB0
  14750. env e0.0 = LdFunctionEnv
  14751. cls %0.1 = LdFun nextRandom, e0.0
  14752. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  14753. t %0.3 = Identical %0.1, %0.2
  14754. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14755. BB2
  14756. void Assume %0.3, %0.4
  14757. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  14758. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  14759. real$' %2.3 = LdConst [1] 10
  14760. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  14761. BB1
  14762. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  14763. void Deopt %1.0
  14764. BB4
  14765. val %4.0 = Force %2.2, e0.0
  14766. val %4.1 = Mod %4.0, %2.3, e0.0
  14767. real$' %4.2 = LdConst [1] 1
  14768. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  14769. BB3
  14770. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  14771. void Deopt %3.0
  14772. BB6
  14773. val %6.0 = Add %4.1, %4.2, e0.0
  14774. void Return %6.0
  14775. BB5
  14776. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  14777. void Deopt %5.0
  14778. Prom 8:
  14779. BB0
  14780. env e0.0 = LdFunctionEnv
  14781. val^? %0.1 = LdVar depth, e0.0
  14782. val %0.2 = Force %0.1, e0.0
  14783. real$' %0.3 = LdConst [1] 1
  14784. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14785. BB2
  14786. val %2.0 = Sub %0.2, %0.3, e0.0
  14787. void Return %2.0
  14788. BB1
  14789. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  14790. void Deopt %1.0
  14791. Prom 9:
  14792. BB0
  14793. env e0.0 = LdFunctionEnv
  14794. val^? %0.1 = LdVar random, e0.0
  14795. val %0.2 = Force %0.1, e0.0
  14796. void Return %0.2
  14797. ├────── Speculate on values to elide environments: == 252
  14798. buildTreeDepth[0x7f92446010b0]
  14799. BB0
  14800. val^ %0.0 = LdArg 0
  14801. val^ %0.1 = LdArg 1
  14802. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  14803. val %0.3 = Force! %0.0, e0.2
  14804. real$' %0.4 = LdConst [1] 1
  14805. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  14806. BB2
  14807. t %2.0 = IsObject %0.3
  14808. void AssumeNot %2.0, %0.5
  14809. lgl' %2.2 = Eq %0.3, %0.4, elided
  14810. lgl %2.3 = AsLogical %2.2
  14811. t %2.4 = AsTest %2.3
  14812. void Branch %2.4 -> BB34 (if true) | BB3 (if false)
  14813. BB1
  14814. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  14815. void Deopt %1.0
  14816. BB34
  14817. cls %34.0 = LdFun c, e0.2
  14818. prom %34.1 = MkArg missing, Prom(4), e0.2
  14819. fs %34.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  14820. val^ %34.3 = Call %34.0(%34.1) %34.2, e0.2
  14821. goto BB35
  14822. BB3
  14823. cls %3.0 = LdFun vector, e0.2
  14824. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  14825. BB35
  14826. val^ %35.0 = Phi %8.0:BB33, %34.3:BB34
  14827. val %35.1 = Force %35.0, e0.2
  14828. void Return %35.1
  14829. BB5
  14830. cls' %5.0 = LdConst function (mode = "logical", length = ...
  14831. t %5.1 = Identical %3.0, %5.0
  14832. void Assume %5.1, %3.1
  14833. str$' %5.3 = LdConst [1] "list"
  14834. real$' %5.4 = LdConst [1] 4
  14835. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  14836. void StVar array, %5.5, e0.2
  14837. real$' %5.7 = LdConst [1] 1
  14838. real$' %5.8 = LdConst [1] 4
  14839. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  14840. BB4
  14841. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  14842. void Deopt %4.0
  14843. BB7
  14844. val' %7.0 = Colon %5.7, %5.8, elided
  14845. val' %7.1 = SetShared %7.0
  14846. int$' %7.2 = ForSeqSize %7.1
  14847. int$' %7.3 = LdConst [1] 0
  14848. goto BB8
  14849. BB6
  14850. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  14851. void Deopt %6.0
  14852. BB8
  14853. val %8.0 = Phi %5.5:BB5, %36.7:BB36
  14854. int$' %8.1 = Phi %7.3:BB7, %8.3:BB36
  14855. int$' %8.2 = Inc %8.1
  14856. int$' %8.3 = EnsureNamed %8.2
  14857. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  14858. BB10
  14859. lgl' %10.0 = Lt %7.2, %8.3, elided
  14860. t %10.1 = AsTest %10.0
  14861. void Branch %10.1 -> BB33 (if true) | BB11 (if false)
  14862. BB9
  14863. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  14864. void Deopt %9.0
  14865. BB33
  14866. goto BB35
  14867. BB11
  14868. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  14869. BB13
  14870. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  14871. void StVar i, %13.0, e0.2
  14872. cls %13.2 = LdFun buildTreeDepth, e0.2
  14873. prom %13.3 = MkArg missing, Prom(2), e0.2
  14874. prom %13.4 = MkArg missing, Prom(3), e0.2
  14875. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  14876. BB12
  14877. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  14878. void Deopt %12.0
  14879. BB15
  14880. cls' %15.0 = LdConst function (depth, random) { if (d...
  14881. t %15.1 = Identical %13.2, %15.0
  14882. void Assume %15.1, %13.5
  14883. val^? %15.3 = CastType %13.3
  14884. val^? %15.4 = CastType %13.4
  14885. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  14886. val %15.6 = Force %15.3, e15.5
  14887. real$' %15.7 = LdConst [1] 1
  14888. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  14889. BB14
  14890. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  14891. void Deopt %14.0
  14892. BB17
  14893. t %17.0 = IsObject %15.6
  14894. void AssumeNot %17.0, %15.8
  14895. lgl' %17.2 = Eq %15.6, %15.7, elided
  14896. lgl %17.3 = AsLogical %17.2
  14897. t %17.4 = AsTest %17.3
  14898. void Branch %17.4 -> BB32 (if true) | BB18 (if false)
  14899. BB16
  14900. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14901. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  14902. void Deopt %16.1
  14903. BB32
  14904. cls %32.0 = LdFun c, e15.5
  14905. prom %32.1 = MkArg missing, Prom(5), e15.5
  14906. fs %32.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14907. fs %32.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%32.2
  14908. val^ %32.4 = Call %32.0(%32.1) %32.3, e15.5
  14909. goto BB36
  14910. BB18
  14911. cls %18.0 = LdFun vector, e15.5
  14912. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  14913. BB36
  14914. val^ %36.0 = Phi %23.0:BB31, %32.4:BB32
  14915. val %36.1 = Force %36.0, e15.5
  14916. val^? %36.2 = LdVar array, e0.2
  14917. val %36.3 = Force %36.2, e0.2
  14918. val^? %36.4 = LdVar i, e0.2
  14919. val %36.5 = Force %36.4, e0.2
  14920. val %36.6 = EnsureNamed %36.1
  14921. val %36.7 = Subassign2_1D %36.6, %36.3, %36.5, e0.2
  14922. void StVar array, %36.7, e0.2
  14923. goto BB8
  14924. BB20
  14925. cls' %20.0 = LdConst function (mode = "logical", length = ...
  14926. t %20.1 = Identical %18.0, %20.0
  14927. void Assume %20.1, %18.1
  14928. real$' %20.3 = LdConst [1] 4
  14929. str$' %20.4 = LdConst [1] "list"
  14930. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  14931. void StVar array, %20.5, e15.5
  14932. real$' %20.7 = LdConst [1] 1
  14933. real$' %20.8 = LdConst [1] 4
  14934. cp %20.9 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  14935. BB19
  14936. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14937. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  14938. void Deopt %19.1
  14939. BB22
  14940. val' %22.0 = Colon %20.7, %20.8, elided
  14941. val' %22.1 = SetShared %22.0
  14942. int$' %22.2 = ForSeqSize %22.1
  14943. int$' %22.3 = LdConst [1] 0
  14944. goto BB23
  14945. BB21
  14946. fs %21.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14947. fs %21.1 = FrameState 0x7f924457f3d0+192: [%20.7, %20.8], env=e15.5, next=%21.0
  14948. void Deopt %21.1
  14949. BB23
  14950. val %23.0 = Phi %20.5:BB20, %30.12:BB30
  14951. int$' %23.1 = Phi %22.3:BB22, %23.3:BB30
  14952. int$' %23.2 = Inc %23.1
  14953. int$' %23.3 = EnsureNamed %23.2
  14954. cp %23.4 = Checkpoint -> BB25 (by default) | BB24 (if coming from expect)
  14955. BB25
  14956. lgl' %25.0 = Lt %22.2, %23.3, elided
  14957. t %25.1 = AsTest %25.0
  14958. void Branch %25.1 -> BB31 (if true) | BB26 (if false)
  14959. BB24
  14960. fs %24.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14961. fs %24.1 = FrameState 0x7f924457f3d0+203: [%22.1, %22.2, %23.3, %22.2, %23.3], env=e15.5, next=%24.0
  14962. void Deopt %24.1
  14963. BB31
  14964. goto BB36
  14965. BB26
  14966. cp %26.0 = Checkpoint -> BB28 (by default) | BB27 (if coming from expect)
  14967. BB28
  14968. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  14969. void StVar i, %28.0, e15.5
  14970. cls %28.2 = LdFun buildTreeDepth, e15.5
  14971. prom %28.3 = MkArg missing, Prom(8), e15.5
  14972. prom %28.4 = MkArg missing, Prom(9), e15.5
  14973. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  14974. BB27
  14975. fs %27.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14976. fs %27.1 = FrameState 0x7f924457f3d0+219: [%22.1, %22.2, %23.3, %22.1, %23.3], env=e15.5, next=%27.0
  14977. void Deopt %27.1
  14978. BB30
  14979. cls' %30.0 = LdConst function (depth, random) { if (d...
  14980. t %30.1 = Identical %28.2, %30.0
  14981. void Assume %30.1, %28.5
  14982. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14983. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  14984. val^ %30.5 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  14985. val^? %30.6 = LdVar array, e15.5
  14986. val %30.7 = Force %30.6, e15.5
  14987. val^? %30.8 = LdVar i, e15.5
  14988. val %30.9 = Force %30.8, e15.5
  14989. val^ %30.10 = EnsureNamed %30.5
  14990. val %30.11 = Force %30.10, e15.5
  14991. val %30.12 = Subassign2_1D %30.11, %30.7, %30.9, e15.5
  14992. void StVar array, %30.12, e15.5
  14993. goto BB23
  14994. BB29
  14995. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  14996. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  14997. void Deopt %29.1
  14998. Prom 2:
  14999. BB0
  15000. env e0.0 = LdFunctionEnv
  15001. val^? %0.1 = LdVar depth, e0.0
  15002. val %0.2 = Force %0.1, e0.0
  15003. real$' %0.3 = LdConst [1] 1
  15004. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15005. BB2
  15006. val %2.0 = Sub %0.2, %0.3, e0.0
  15007. void Return %2.0
  15008. BB1
  15009. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  15010. void Deopt %1.0
  15011. Prom 3:
  15012. BB0
  15013. env e0.0 = LdFunctionEnv
  15014. val^? %0.1 = LdVar random, e0.0
  15015. val %0.2 = Force %0.1, e0.0
  15016. void Return %0.2
  15017. Prom 4:
  15018. BB0
  15019. env e0.0 = LdFunctionEnv
  15020. cls %0.1 = LdFun nextRandom, e0.0
  15021. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15022. t %0.3 = Identical %0.1, %0.2
  15023. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15024. BB2
  15025. void Assume %0.3, %0.4
  15026. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15027. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15028. real$' %2.3 = LdConst [1] 10
  15029. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  15030. BB1
  15031. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15032. void Deopt %1.0
  15033. BB4
  15034. val %4.0 = Force %2.2, e0.0
  15035. val %4.1 = Mod %4.0, %2.3, e0.0
  15036. real$' %4.2 = LdConst [1] 1
  15037. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  15038. BB3
  15039. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  15040. void Deopt %3.0
  15041. BB6
  15042. val %6.0 = Add %4.1, %4.2, e0.0
  15043. void Return %6.0
  15044. BB5
  15045. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  15046. void Deopt %5.0
  15047. Prom 5:
  15048. BB0
  15049. env e0.0 = LdFunctionEnv
  15050. cls %0.1 = LdFun nextRandom, e0.0
  15051. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15052. t %0.3 = Identical %0.1, %0.2
  15053. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15054. BB2
  15055. void Assume %0.3, %0.4
  15056. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15057. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15058. real$' %2.3 = LdConst [1] 10
  15059. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  15060. BB1
  15061. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15062. void Deopt %1.0
  15063. BB4
  15064. val %4.0 = Force %2.2, e0.0
  15065. val %4.1 = Mod %4.0, %2.3, e0.0
  15066. real$' %4.2 = LdConst [1] 1
  15067. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  15068. BB3
  15069. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  15070. void Deopt %3.0
  15071. BB6
  15072. val %6.0 = Add %4.1, %4.2, e0.0
  15073. void Return %6.0
  15074. BB5
  15075. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  15076. void Deopt %5.0
  15077. Prom 8:
  15078. BB0
  15079. env e0.0 = LdFunctionEnv
  15080. val^? %0.1 = LdVar depth, e0.0
  15081. val %0.2 = Force %0.1, e0.0
  15082. real$' %0.3 = LdConst [1] 1
  15083. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15084. BB2
  15085. val %2.0 = Sub %0.2, %0.3, e0.0
  15086. void Return %2.0
  15087. BB1
  15088. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  15089. void Deopt %1.0
  15090. Prom 9:
  15091. BB0
  15092. env e0.0 = LdFunctionEnv
  15093. val^? %0.1 = LdVar random, e0.0
  15094. val %0.2 = Force %0.1, e0.0
  15095. void Return %0.2
  15096. ├────── Cleanup unused checkpoints: == 259
  15097. buildTreeDepth[0x7f92446010b0]
  15098. BB0
  15099. val^ %0.0 = LdArg 0
  15100. val^ %0.1 = LdArg 1
  15101. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  15102. val %0.3 = Force! %0.0, e0.2
  15103. real$' %0.4 = LdConst [1] 1
  15104. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15105. BB2
  15106. t %2.0 = IsObject %0.3
  15107. void AssumeNot %2.0, %0.5
  15108. lgl' %2.2 = Eq %0.3, %0.4, elided
  15109. lgl %2.3 = AsLogical %2.2
  15110. t %2.4 = AsTest %2.3
  15111. void Branch %2.4 -> BB34 (if true) | BB3 (if false)
  15112. BB1
  15113. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  15114. void Deopt %1.0
  15115. BB34
  15116. cls %34.0 = LdFun c, e0.2
  15117. prom %34.1 = MkArg missing, Prom(4), e0.2
  15118. fs %34.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  15119. val^ %34.3 = Call %34.0(%34.1) %34.2, e0.2
  15120. goto BB35
  15121. BB3
  15122. cls %3.0 = LdFun vector, e0.2
  15123. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  15124. BB35
  15125. val^ %35.0 = Phi %8.0:BB33, %34.3:BB34
  15126. val %35.1 = Force %35.0, e0.2
  15127. void Return %35.1
  15128. BB5
  15129. cls' %5.0 = LdConst function (mode = "logical", length = ...
  15130. t %5.1 = Identical %3.0, %5.0
  15131. void Assume %5.1, %3.1
  15132. str$' %5.3 = LdConst [1] "list"
  15133. real$' %5.4 = LdConst [1] 4
  15134. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  15135. void StVar array, %5.5, e0.2
  15136. real$' %5.7 = LdConst [1] 1
  15137. real$' %5.8 = LdConst [1] 4
  15138. goto BB7
  15139. BB4
  15140. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  15141. void Deopt %4.0
  15142. BB7
  15143. val' %7.0 = Colon %5.7, %5.8, elided
  15144. val' %7.1 = SetShared %7.0
  15145. int$' %7.2 = ForSeqSize %7.1
  15146. int$' %7.3 = LdConst [1] 0
  15147. goto BB8
  15148. BB8
  15149. val %8.0 = Phi %5.5:BB5, %36.7:BB36
  15150. int$' %8.1 = Phi %7.3:BB7, %8.3:BB36
  15151. int$' %8.2 = Inc %8.1
  15152. int$' %8.3 = EnsureNamed %8.2
  15153. goto BB10
  15154. BB10
  15155. lgl' %10.0 = Lt %7.2, %8.3, elided
  15156. t %10.1 = AsTest %10.0
  15157. void Branch %10.1 -> BB33 (if true) | BB11 (if false)
  15158. BB33
  15159. goto BB35
  15160. BB11
  15161. goto BB13
  15162. BB13
  15163. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  15164. void StVar i, %13.0, e0.2
  15165. cls %13.2 = LdFun buildTreeDepth, e0.2
  15166. prom %13.3 = MkArg missing, Prom(2), e0.2
  15167. prom %13.4 = MkArg missing, Prom(3), e0.2
  15168. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  15169. BB15
  15170. cls' %15.0 = LdConst function (depth, random) { if (d...
  15171. t %15.1 = Identical %13.2, %15.0
  15172. void Assume %15.1, %13.5
  15173. val^? %15.3 = CastType %13.3
  15174. val^? %15.4 = CastType %13.4
  15175. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  15176. val %15.6 = Force %15.3, e15.5
  15177. real$' %15.7 = LdConst [1] 1
  15178. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  15179. BB14
  15180. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  15181. void Deopt %14.0
  15182. BB17
  15183. t %17.0 = IsObject %15.6
  15184. void AssumeNot %17.0, %15.8
  15185. lgl' %17.2 = Eq %15.6, %15.7, elided
  15186. lgl %17.3 = AsLogical %17.2
  15187. t %17.4 = AsTest %17.3
  15188. void Branch %17.4 -> BB32 (if true) | BB18 (if false)
  15189. BB16
  15190. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15191. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  15192. void Deopt %16.1
  15193. BB32
  15194. cls %32.0 = LdFun c, e15.5
  15195. prom %32.1 = MkArg missing, Prom(5), e15.5
  15196. fs %32.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15197. fs %32.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%32.2
  15198. val^ %32.4 = Call %32.0(%32.1) %32.3, e15.5
  15199. goto BB36
  15200. BB18
  15201. cls %18.0 = LdFun vector, e15.5
  15202. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  15203. BB36
  15204. val^ %36.0 = Phi %23.0:BB31, %32.4:BB32
  15205. val %36.1 = Force %36.0, e15.5
  15206. val^? %36.2 = LdVar array, e0.2
  15207. val %36.3 = Force %36.2, e0.2
  15208. val^? %36.4 = LdVar i, e0.2
  15209. val %36.5 = Force %36.4, e0.2
  15210. val %36.6 = EnsureNamed %36.1
  15211. val %36.7 = Subassign2_1D %36.6, %36.3, %36.5, e0.2
  15212. void StVar array, %36.7, e0.2
  15213. goto BB8
  15214. BB20
  15215. cls' %20.0 = LdConst function (mode = "logical", length = ...
  15216. t %20.1 = Identical %18.0, %20.0
  15217. void Assume %20.1, %18.1
  15218. real$' %20.3 = LdConst [1] 4
  15219. str$' %20.4 = LdConst [1] "list"
  15220. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  15221. void StVar array, %20.5, e15.5
  15222. real$' %20.7 = LdConst [1] 1
  15223. real$' %20.8 = LdConst [1] 4
  15224. goto BB22
  15225. BB19
  15226. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15227. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  15228. void Deopt %19.1
  15229. BB22
  15230. val' %22.0 = Colon %20.7, %20.8, elided
  15231. val' %22.1 = SetShared %22.0
  15232. int$' %22.2 = ForSeqSize %22.1
  15233. int$' %22.3 = LdConst [1] 0
  15234. goto BB23
  15235. BB23
  15236. val %23.0 = Phi %20.5:BB20, %30.12:BB30
  15237. int$' %23.1 = Phi %22.3:BB22, %23.3:BB30
  15238. int$' %23.2 = Inc %23.1
  15239. int$' %23.3 = EnsureNamed %23.2
  15240. goto BB25
  15241. BB25
  15242. lgl' %25.0 = Lt %22.2, %23.3, elided
  15243. t %25.1 = AsTest %25.0
  15244. void Branch %25.1 -> BB31 (if true) | BB26 (if false)
  15245. BB31
  15246. goto BB36
  15247. BB26
  15248. goto BB28
  15249. BB28
  15250. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  15251. void StVar i, %28.0, e15.5
  15252. cls %28.2 = LdFun buildTreeDepth, e15.5
  15253. prom %28.3 = MkArg missing, Prom(8), e15.5
  15254. prom %28.4 = MkArg missing, Prom(9), e15.5
  15255. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  15256. BB30
  15257. cls' %30.0 = LdConst function (depth, random) { if (d...
  15258. t %30.1 = Identical %28.2, %30.0
  15259. void Assume %30.1, %28.5
  15260. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15261. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  15262. val^ %30.5 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  15263. val^? %30.6 = LdVar array, e15.5
  15264. val %30.7 = Force %30.6, e15.5
  15265. val^? %30.8 = LdVar i, e15.5
  15266. val %30.9 = Force %30.8, e15.5
  15267. val^ %30.10 = EnsureNamed %30.5
  15268. val %30.11 = Force %30.10, e15.5
  15269. val %30.12 = Subassign2_1D %30.11, %30.7, %30.9, e15.5
  15270. void StVar array, %30.12, e15.5
  15271. goto BB23
  15272. BB29
  15273. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15274. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  15275. void Deopt %29.1
  15276. Prom 2:
  15277. BB0
  15278. env e0.0 = LdFunctionEnv
  15279. val^? %0.1 = LdVar depth, e0.0
  15280. val %0.2 = Force %0.1, e0.0
  15281. real$' %0.3 = LdConst [1] 1
  15282. goto BB2
  15283. BB2
  15284. val %2.0 = Sub %0.2, %0.3, e0.0
  15285. void Return %2.0
  15286. Prom 3:
  15287. BB0
  15288. env e0.0 = LdFunctionEnv
  15289. val^? %0.1 = LdVar random, e0.0
  15290. val %0.2 = Force %0.1, e0.0
  15291. void Return %0.2
  15292. Prom 4:
  15293. BB0
  15294. env e0.0 = LdFunctionEnv
  15295. cls %0.1 = LdFun nextRandom, e0.0
  15296. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15297. t %0.3 = Identical %0.1, %0.2
  15298. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15299. BB2
  15300. void Assume %0.3, %0.4
  15301. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15302. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15303. real$' %2.3 = LdConst [1] 10
  15304. goto BB4
  15305. BB1
  15306. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15307. void Deopt %1.0
  15308. BB4
  15309. val %4.0 = Force %2.2, e0.0
  15310. val %4.1 = Mod %4.0, %2.3, e0.0
  15311. real$' %4.2 = LdConst [1] 1
  15312. goto BB6
  15313. BB6
  15314. val %6.0 = Add %4.1, %4.2, e0.0
  15315. void Return %6.0
  15316. Prom 5:
  15317. BB0
  15318. env e0.0 = LdFunctionEnv
  15319. cls %0.1 = LdFun nextRandom, e0.0
  15320. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15321. t %0.3 = Identical %0.1, %0.2
  15322. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15323. BB2
  15324. void Assume %0.3, %0.4
  15325. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15326. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15327. real$' %2.3 = LdConst [1] 10
  15328. goto BB4
  15329. BB1
  15330. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15331. void Deopt %1.0
  15332. BB4
  15333. val %4.0 = Force %2.2, e0.0
  15334. val %4.1 = Mod %4.0, %2.3, e0.0
  15335. real$' %4.2 = LdConst [1] 1
  15336. goto BB6
  15337. BB6
  15338. val %6.0 = Add %4.1, %4.2, e0.0
  15339. void Return %6.0
  15340. Prom 8:
  15341. BB0
  15342. env e0.0 = LdFunctionEnv
  15343. val^? %0.1 = LdVar depth, e0.0
  15344. val %0.2 = Force %0.1, e0.0
  15345. real$' %0.3 = LdConst [1] 1
  15346. goto BB2
  15347. BB2
  15348. val %2.0 = Sub %0.2, %0.3, e0.0
  15349. void Return %2.0
  15350. Prom 9:
  15351. BB0
  15352. env e0.0 = LdFunctionEnv
  15353. val^? %0.1 = LdVar random, e0.0
  15354. val %0.2 = Force %0.1, e0.0
  15355. void Return %0.2
  15356. ├────── Inline Promises: == 266
  15357. buildTreeDepth[0x7f92446010b0]
  15358. BB0
  15359. val^ %0.0 = LdArg 0
  15360. val^ %0.1 = LdArg 1
  15361. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  15362. val %0.3 = Force! %0.0, e0.2
  15363. real$' %0.4 = LdConst [1] 1
  15364. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15365. BB2
  15366. t %2.0 = IsObject %0.3
  15367. void AssumeNot %2.0, %0.5
  15368. lgl' %2.2 = Eq %0.3, %0.4, elided
  15369. lgl %2.3 = AsLogical %2.2
  15370. t %2.4 = AsTest %2.3
  15371. void Branch %2.4 -> BB34 (if true) | BB3 (if false)
  15372. BB1
  15373. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  15374. void Deopt %1.0
  15375. BB34
  15376. cls %34.0 = LdFun c, e0.2
  15377. prom %34.1 = MkArg missing, Prom(4), e0.2
  15378. fs %34.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  15379. val^ %34.3 = Call %34.0(%34.1) %34.2, e0.2
  15380. goto BB35
  15381. BB3
  15382. cls %3.0 = LdFun vector, e0.2
  15383. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  15384. BB35
  15385. val^ %35.0 = Phi %8.0:BB33, %34.3:BB34
  15386. val %35.1 = Force %35.0, e0.2
  15387. void Return %35.1
  15388. BB5
  15389. cls' %5.0 = LdConst function (mode = "logical", length = ...
  15390. t %5.1 = Identical %3.0, %5.0
  15391. void Assume %5.1, %3.1
  15392. str$' %5.3 = LdConst [1] "list"
  15393. real$' %5.4 = LdConst [1] 4
  15394. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  15395. void StVar array, %5.5, e0.2
  15396. real$' %5.7 = LdConst [1] 1
  15397. real$' %5.8 = LdConst [1] 4
  15398. goto BB7
  15399. BB4
  15400. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  15401. void Deopt %4.0
  15402. BB7
  15403. val' %7.0 = Colon %5.7, %5.8, elided
  15404. val' %7.1 = SetShared %7.0
  15405. int$' %7.2 = ForSeqSize %7.1
  15406. int$' %7.3 = LdConst [1] 0
  15407. goto BB8
  15408. BB8
  15409. val %8.0 = Phi %5.5:BB5, %36.7:BB36
  15410. int$' %8.1 = Phi %7.3:BB7, %8.3:BB36
  15411. int$' %8.2 = Inc %8.1
  15412. int$' %8.3 = EnsureNamed %8.2
  15413. goto BB10
  15414. BB10
  15415. lgl' %10.0 = Lt %7.2, %8.3, elided
  15416. t %10.1 = AsTest %10.0
  15417. void Branch %10.1 -> BB33 (if true) | BB11 (if false)
  15418. BB33
  15419. goto BB35
  15420. BB11
  15421. goto BB13
  15422. BB13
  15423. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  15424. void StVar i, %13.0, e0.2
  15425. cls %13.2 = LdFun buildTreeDepth, e0.2
  15426. prom %13.3 = MkArg missing, Prom(2), e0.2
  15427. prom %13.4 = MkArg missing, Prom(3), e0.2
  15428. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  15429. BB15
  15430. cls' %15.0 = LdConst function (depth, random) { if (d...
  15431. t %15.1 = Identical %13.2, %15.0
  15432. void Assume %15.1, %13.5
  15433. val^? %15.3 = CastType %13.3
  15434. val^? %15.4 = CastType %13.4
  15435. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  15436. val %15.6 = Force %15.3, e15.5
  15437. real$' %15.7 = LdConst [1] 1
  15438. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  15439. BB14
  15440. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  15441. void Deopt %14.0
  15442. BB17
  15443. t %17.0 = IsObject %15.6
  15444. void AssumeNot %17.0, %15.8
  15445. lgl' %17.2 = Eq %15.6, %15.7, elided
  15446. lgl %17.3 = AsLogical %17.2
  15447. t %17.4 = AsTest %17.3
  15448. void Branch %17.4 -> BB32 (if true) | BB18 (if false)
  15449. BB16
  15450. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15451. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  15452. void Deopt %16.1
  15453. BB32
  15454. cls %32.0 = LdFun c, e15.5
  15455. prom %32.1 = MkArg missing, Prom(5), e15.5
  15456. fs %32.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15457. fs %32.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%32.2
  15458. val^ %32.4 = Call %32.0(%32.1) %32.3, e15.5
  15459. goto BB36
  15460. BB18
  15461. cls %18.0 = LdFun vector, e15.5
  15462. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  15463. BB36
  15464. val^ %36.0 = Phi %23.0:BB31, %32.4:BB32
  15465. val %36.1 = Force %36.0, e15.5
  15466. val^? %36.2 = LdVar array, e0.2
  15467. val %36.3 = Force %36.2, e0.2
  15468. val^? %36.4 = LdVar i, e0.2
  15469. val %36.5 = Force %36.4, e0.2
  15470. val %36.6 = EnsureNamed %36.1
  15471. val %36.7 = Subassign2_1D %36.6, %36.3, %36.5, e0.2
  15472. void StVar array, %36.7, e0.2
  15473. goto BB8
  15474. BB20
  15475. cls' %20.0 = LdConst function (mode = "logical", length = ...
  15476. t %20.1 = Identical %18.0, %20.0
  15477. void Assume %20.1, %18.1
  15478. real$' %20.3 = LdConst [1] 4
  15479. str$' %20.4 = LdConst [1] "list"
  15480. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  15481. void StVar array, %20.5, e15.5
  15482. real$' %20.7 = LdConst [1] 1
  15483. real$' %20.8 = LdConst [1] 4
  15484. goto BB22
  15485. BB19
  15486. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15487. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  15488. void Deopt %19.1
  15489. BB22
  15490. val' %22.0 = Colon %20.7, %20.8, elided
  15491. val' %22.1 = SetShared %22.0
  15492. int$' %22.2 = ForSeqSize %22.1
  15493. int$' %22.3 = LdConst [1] 0
  15494. goto BB23
  15495. BB23
  15496. val %23.0 = Phi %20.5:BB20, %30.12:BB30
  15497. int$' %23.1 = Phi %22.3:BB22, %23.3:BB30
  15498. int$' %23.2 = Inc %23.1
  15499. int$' %23.3 = EnsureNamed %23.2
  15500. goto BB25
  15501. BB25
  15502. lgl' %25.0 = Lt %22.2, %23.3, elided
  15503. t %25.1 = AsTest %25.0
  15504. void Branch %25.1 -> BB31 (if true) | BB26 (if false)
  15505. BB31
  15506. goto BB36
  15507. BB26
  15508. goto BB28
  15509. BB28
  15510. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  15511. void StVar i, %28.0, e15.5
  15512. cls %28.2 = LdFun buildTreeDepth, e15.5
  15513. prom %28.3 = MkArg missing, Prom(8), e15.5
  15514. prom %28.4 = MkArg missing, Prom(9), e15.5
  15515. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  15516. BB30
  15517. cls' %30.0 = LdConst function (depth, random) { if (d...
  15518. t %30.1 = Identical %28.2, %30.0
  15519. void Assume %30.1, %28.5
  15520. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15521. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  15522. val^ %30.5 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  15523. val^? %30.6 = LdVar array, e15.5
  15524. val %30.7 = Force %30.6, e15.5
  15525. val^? %30.8 = LdVar i, e15.5
  15526. val %30.9 = Force %30.8, e15.5
  15527. val^ %30.10 = EnsureNamed %30.5
  15528. val %30.11 = Force %30.10, e15.5
  15529. val %30.12 = Subassign2_1D %30.11, %30.7, %30.9, e15.5
  15530. void StVar array, %30.12, e15.5
  15531. goto BB23
  15532. BB29
  15533. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15534. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  15535. void Deopt %29.1
  15536. Prom 2:
  15537. BB0
  15538. env e0.0 = LdFunctionEnv
  15539. val^? %0.1 = LdVar depth, e0.0
  15540. val %0.2 = Force %0.1, e0.0
  15541. real$' %0.3 = LdConst [1] 1
  15542. goto BB2
  15543. BB2
  15544. val %2.0 = Sub %0.2, %0.3, e0.0
  15545. void Return %2.0
  15546. Prom 3:
  15547. BB0
  15548. env e0.0 = LdFunctionEnv
  15549. val^? %0.1 = LdVar random, e0.0
  15550. val %0.2 = Force %0.1, e0.0
  15551. void Return %0.2
  15552. Prom 4:
  15553. BB0
  15554. env e0.0 = LdFunctionEnv
  15555. cls %0.1 = LdFun nextRandom, e0.0
  15556. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15557. t %0.3 = Identical %0.1, %0.2
  15558. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15559. BB2
  15560. void Assume %0.3, %0.4
  15561. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15562. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15563. real$' %2.3 = LdConst [1] 10
  15564. goto BB4
  15565. BB1
  15566. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15567. void Deopt %1.0
  15568. BB4
  15569. val %4.0 = Force %2.2, e0.0
  15570. val %4.1 = Mod %4.0, %2.3, e0.0
  15571. real$' %4.2 = LdConst [1] 1
  15572. goto BB6
  15573. BB6
  15574. val %6.0 = Add %4.1, %4.2, e0.0
  15575. void Return %6.0
  15576. Prom 5:
  15577. BB0
  15578. env e0.0 = LdFunctionEnv
  15579. cls %0.1 = LdFun nextRandom, e0.0
  15580. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15581. t %0.3 = Identical %0.1, %0.2
  15582. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15583. BB2
  15584. void Assume %0.3, %0.4
  15585. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15586. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15587. real$' %2.3 = LdConst [1] 10
  15588. goto BB4
  15589. BB1
  15590. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15591. void Deopt %1.0
  15592. BB4
  15593. val %4.0 = Force %2.2, e0.0
  15594. val %4.1 = Mod %4.0, %2.3, e0.0
  15595. real$' %4.2 = LdConst [1] 1
  15596. goto BB6
  15597. BB6
  15598. val %6.0 = Add %4.1, %4.2, e0.0
  15599. void Return %6.0
  15600. Prom 8:
  15601. BB0
  15602. env e0.0 = LdFunctionEnv
  15603. val^? %0.1 = LdVar depth, e0.0
  15604. val %0.2 = Force %0.1, e0.0
  15605. real$' %0.3 = LdConst [1] 1
  15606. goto BB2
  15607. BB2
  15608. val %2.0 = Sub %0.2, %0.3, e0.0
  15609. void Return %2.0
  15610. Prom 9:
  15611. BB0
  15612. env e0.0 = LdFunctionEnv
  15613. val^? %0.1 = LdVar random, e0.0
  15614. val %0.2 = Force %0.1, e0.0
  15615. void Return %0.2
  15616. ├────── Scope resolution: == 273
  15617. buildTreeDepth[0x7f92446010b0]
  15618. BB0
  15619. val^ %0.0 = LdArg 0
  15620. val^ %0.1 = LdArg 1
  15621. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  15622. val %0.3 = Force! %0.0, e0.2
  15623. real$' %0.4 = LdConst [1] 1
  15624. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15625. BB2
  15626. t %2.0 = IsObject %0.3
  15627. void AssumeNot %2.0, %0.5
  15628. lgl' %2.2 = Eq %0.3, %0.4, elided
  15629. lgl %2.3 = AsLogical %2.2
  15630. t %2.4 = AsTest %2.3
  15631. void Branch %2.4 -> BB34 (if true) | BB3 (if false)
  15632. BB1
  15633. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  15634. void Deopt %1.0
  15635. BB34
  15636. cls %34.0 = LdFun c, e0.2
  15637. prom %34.1 = MkArg missing, Prom(4), e0.2
  15638. fs %34.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  15639. val^ %34.3 = Call %34.0(%34.1) %34.2, e0.2
  15640. goto BB35
  15641. BB3
  15642. cls %3.0 = LdFun vector, e0.2
  15643. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  15644. BB35
  15645. val^ %35.0 = Phi %8.0:BB33, %34.3:BB34
  15646. val %35.1 = Force %35.0, e0.2
  15647. void Return %35.1
  15648. BB5
  15649. cls' %5.0 = LdConst function (mode = "logical", length = ...
  15650. t %5.1 = Identical %3.0, %5.0
  15651. void Assume %5.1, %3.1
  15652. str$' %5.3 = LdConst [1] "list"
  15653. real$' %5.4 = LdConst [1] 4
  15654. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  15655. void StVar array, %5.5, e0.2
  15656. real$' %5.7 = LdConst [1] 1
  15657. real$' %5.8 = LdConst [1] 4
  15658. goto BB7
  15659. BB4
  15660. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  15661. void Deopt %4.0
  15662. BB7
  15663. val' %7.0 = Colon %5.7, %5.8, elided
  15664. val' %7.1 = SetShared %7.0
  15665. int$' %7.2 = ForSeqSize %7.1
  15666. int$' %7.3 = LdConst [1] 0
  15667. goto BB8
  15668. BB8
  15669. val %8.0 = Phi %5.5:BB5, %36.7:BB36
  15670. int$' %8.1 = Phi %7.3:BB7, %8.3:BB36
  15671. int$' %8.2 = Inc %8.1
  15672. int$' %8.3 = EnsureNamed %8.2
  15673. goto BB10
  15674. BB10
  15675. lgl' %10.0 = Lt %7.2, %8.3, elided
  15676. t %10.1 = AsTest %10.0
  15677. void Branch %10.1 -> BB33 (if true) | BB11 (if false)
  15678. BB33
  15679. goto BB35
  15680. BB11
  15681. goto BB13
  15682. BB13
  15683. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  15684. void StVar i, %13.0, e0.2
  15685. cls %13.2 = LdFun buildTreeDepth, e0.2
  15686. prom %13.3 = MkArg missing, Prom(2), e0.2
  15687. prom %13.4 = MkArg missing, Prom(3), e0.2
  15688. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  15689. BB15
  15690. cls' %15.0 = LdConst function (depth, random) { if (d...
  15691. t %15.1 = Identical %13.2, %15.0
  15692. void Assume %15.1, %13.5
  15693. val^? %15.3 = CastType %13.3
  15694. val^? %15.4 = CastType %13.4
  15695. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  15696. val %15.6 = Force %15.3, e15.5
  15697. real$' %15.7 = LdConst [1] 1
  15698. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  15699. BB14
  15700. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  15701. void Deopt %14.0
  15702. BB17
  15703. t %17.0 = IsObject %15.6
  15704. void AssumeNot %17.0, %15.8
  15705. lgl' %17.2 = Eq %15.6, %15.7, elided
  15706. lgl %17.3 = AsLogical %17.2
  15707. t %17.4 = AsTest %17.3
  15708. void Branch %17.4 -> BB32 (if true) | BB18 (if false)
  15709. BB16
  15710. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15711. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  15712. void Deopt %16.1
  15713. BB32
  15714. cls %32.0 = LdFun c, e15.5
  15715. prom %32.1 = MkArg missing, Prom(5), e15.5
  15716. fs %32.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15717. fs %32.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%32.2
  15718. val^ %32.4 = Call %32.0(%32.1) %32.3, e15.5
  15719. goto BB36
  15720. BB18
  15721. cls %18.0 = LdFun vector, e15.5
  15722. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  15723. BB36
  15724. val^ %36.0 = Phi %23.0:BB31, %32.4:BB32
  15725. val %36.1 = Force %36.0, e15.5
  15726. val^? %36.2 = LdVar array, e0.2
  15727. val %36.3 = Force %36.2, e0.2
  15728. val^? %36.4 = LdVar i, e0.2
  15729. val %36.5 = Force %36.4, e0.2
  15730. val %36.6 = EnsureNamed %36.1
  15731. val %36.7 = Subassign2_1D %36.6, %36.3, %36.5, e0.2
  15732. void StVar array, %36.7, e0.2
  15733. goto BB8
  15734. BB20
  15735. cls' %20.0 = LdConst function (mode = "logical", length = ...
  15736. t %20.1 = Identical %18.0, %20.0
  15737. void Assume %20.1, %18.1
  15738. real$' %20.3 = LdConst [1] 4
  15739. str$' %20.4 = LdConst [1] "list"
  15740. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  15741. void StVar array, %20.5, e15.5
  15742. real$' %20.7 = LdConst [1] 1
  15743. real$' %20.8 = LdConst [1] 4
  15744. goto BB22
  15745. BB19
  15746. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15747. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  15748. void Deopt %19.1
  15749. BB22
  15750. val' %22.0 = Colon %20.7, %20.8, elided
  15751. val' %22.1 = SetShared %22.0
  15752. int$' %22.2 = ForSeqSize %22.1
  15753. int$' %22.3 = LdConst [1] 0
  15754. goto BB23
  15755. BB23
  15756. val %23.0 = Phi %20.5:BB20, %30.12:BB30
  15757. int$' %23.1 = Phi %22.3:BB22, %23.3:BB30
  15758. int$' %23.2 = Inc %23.1
  15759. int$' %23.3 = EnsureNamed %23.2
  15760. goto BB25
  15761. BB25
  15762. lgl' %25.0 = Lt %22.2, %23.3, elided
  15763. t %25.1 = AsTest %25.0
  15764. void Branch %25.1 -> BB31 (if true) | BB26 (if false)
  15765. BB31
  15766. goto BB36
  15767. BB26
  15768. goto BB28
  15769. BB28
  15770. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  15771. void StVar i, %28.0, e15.5
  15772. cls %28.2 = LdFun buildTreeDepth, e15.5
  15773. prom %28.3 = MkArg missing, Prom(8), e15.5
  15774. prom %28.4 = MkArg missing, Prom(9), e15.5
  15775. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  15776. BB30
  15777. cls' %30.0 = LdConst function (depth, random) { if (d...
  15778. t %30.1 = Identical %28.2, %30.0
  15779. void Assume %30.1, %28.5
  15780. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15781. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  15782. val^ %30.5 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  15783. val^? %30.6 = LdVar array, e15.5
  15784. val %30.7 = Force %30.6, e15.5
  15785. val^? %30.8 = LdVar i, e15.5
  15786. val %30.9 = Force %30.8, e15.5
  15787. val^ %30.10 = EnsureNamed %30.5
  15788. val %30.11 = Force %30.10, e15.5
  15789. val %30.12 = Subassign2_1D %30.11, %30.7, %30.9, e15.5
  15790. void StVar array, %30.12, e15.5
  15791. goto BB23
  15792. BB29
  15793. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15794. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  15795. void Deopt %29.1
  15796. Prom 2:
  15797. BB0
  15798. env e0.0 = LdFunctionEnv
  15799. val^? %0.1 = LdVar depth, e0.0
  15800. val %0.2 = Force %0.1, e0.0
  15801. real$' %0.3 = LdConst [1] 1
  15802. goto BB2
  15803. BB2
  15804. val %2.0 = Sub %0.2, %0.3, e0.0
  15805. void Return %2.0
  15806. Prom 3:
  15807. BB0
  15808. env e0.0 = LdFunctionEnv
  15809. val^? %0.1 = LdVar random, e0.0
  15810. val %0.2 = Force %0.1, e0.0
  15811. void Return %0.2
  15812. Prom 4:
  15813. BB0
  15814. env e0.0 = LdFunctionEnv
  15815. cls %0.1 = LdFun nextRandom, e0.0
  15816. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15817. t %0.3 = Identical %0.1, %0.2
  15818. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15819. BB2
  15820. void Assume %0.3, %0.4
  15821. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15822. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15823. real$' %2.3 = LdConst [1] 10
  15824. goto BB4
  15825. BB1
  15826. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15827. void Deopt %1.0
  15828. BB4
  15829. val %4.0 = Force %2.2, e0.0
  15830. val %4.1 = Mod %4.0, %2.3, e0.0
  15831. real$' %4.2 = LdConst [1] 1
  15832. goto BB6
  15833. BB6
  15834. val %6.0 = Add %4.1, %4.2, e0.0
  15835. void Return %6.0
  15836. Prom 5:
  15837. BB0
  15838. env e0.0 = LdFunctionEnv
  15839. cls %0.1 = LdFun nextRandom, e0.0
  15840. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  15841. t %0.3 = Identical %0.1, %0.2
  15842. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15843. BB2
  15844. void Assume %0.3, %0.4
  15845. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  15846. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  15847. real$' %2.3 = LdConst [1] 10
  15848. goto BB4
  15849. BB1
  15850. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  15851. void Deopt %1.0
  15852. BB4
  15853. val %4.0 = Force %2.2, e0.0
  15854. val %4.1 = Mod %4.0, %2.3, e0.0
  15855. real$' %4.2 = LdConst [1] 1
  15856. goto BB6
  15857. BB6
  15858. val %6.0 = Add %4.1, %4.2, e0.0
  15859. void Return %6.0
  15860. Prom 8:
  15861. BB0
  15862. env e0.0 = LdFunctionEnv
  15863. val^? %0.1 = LdVar depth, e0.0
  15864. val %0.2 = Force %0.1, e0.0
  15865. real$' %0.3 = LdConst [1] 1
  15866. goto BB2
  15867. BB2
  15868. val %2.0 = Sub %0.2, %0.3, e0.0
  15869. void Return %2.0
  15870. Prom 9:
  15871. BB0
  15872. env e0.0 = LdFunctionEnv
  15873. val^? %0.1 = LdVar random, e0.0
  15874. val %0.2 = Force %0.1, e0.0
  15875. void Return %0.2
  15876. ├────── Constant folding: == 280
  15877. buildTreeDepth[0x7f92446010b0]
  15878. BB0
  15879. val^ %0.0 = LdArg 0
  15880. val^ %0.1 = LdArg 1
  15881. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  15882. val %0.3 = Force! %0.0, e0.2
  15883. real$' %0.4 = LdConst [1] 1
  15884. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  15885. BB2
  15886. t %2.0 = IsObject %0.3
  15887. void AssumeNot %2.0, %0.5
  15888. lgl' %2.2 = Eq %0.3, %0.4, elided
  15889. lgl %2.3 = AsLogical %2.2
  15890. t %2.4 = AsTest %2.3
  15891. void Branch %2.4 -> BB34 (if true) | BB3 (if false)
  15892. BB1
  15893. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  15894. void Deopt %1.0
  15895. BB34
  15896. cls %34.0 = LdFun c, e0.2
  15897. prom %34.1 = MkArg missing, Prom(4), e0.2
  15898. fs %34.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  15899. val^ %34.3 = Call %34.0(%34.1) %34.2, e0.2
  15900. goto BB35
  15901. BB3
  15902. cls %3.0 = LdFun vector, e0.2
  15903. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  15904. BB35
  15905. val^ %35.0 = Phi %8.0:BB33, %34.3:BB34
  15906. val %35.1 = Force %35.0, e0.2
  15907. void Return %35.1
  15908. BB5
  15909. cls' %5.0 = LdConst function (mode = "logical", length = ...
  15910. t %5.1 = Identical %3.0, %5.0
  15911. void Assume %5.1, %3.1
  15912. str$' %5.3 = LdConst [1] "list"
  15913. real$' %5.4 = LdConst [1] 4
  15914. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  15915. void StVar array, %5.5, e0.2
  15916. real$' %5.7 = LdConst [1] 1
  15917. real$' %5.8 = LdConst [1] 4
  15918. goto BB7
  15919. BB4
  15920. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  15921. void Deopt %4.0
  15922. BB7
  15923. val' %7.0 = Colon %5.7, %5.8, elided
  15924. val' %7.1 = SetShared %7.0
  15925. int$' %7.2 = ForSeqSize %7.1
  15926. int$' %7.3 = LdConst [1] 0
  15927. goto BB8
  15928. BB8
  15929. val %8.0 = Phi %5.5:BB5, %36.7:BB36
  15930. int$' %8.1 = Phi %7.3:BB7, %8.3:BB36
  15931. int$' %8.2 = Inc %8.1
  15932. int$' %8.3 = EnsureNamed %8.2
  15933. goto BB10
  15934. BB10
  15935. lgl' %10.0 = Lt %7.2, %8.3, elided
  15936. t %10.1 = AsTest %10.0
  15937. void Branch %10.1 -> BB33 (if true) | BB11 (if false)
  15938. BB33
  15939. goto BB35
  15940. BB11
  15941. goto BB13
  15942. BB13
  15943. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  15944. void StVar i, %13.0, e0.2
  15945. cls %13.2 = LdFun buildTreeDepth, e0.2
  15946. prom %13.3 = MkArg missing, Prom(2), e0.2
  15947. prom %13.4 = MkArg missing, Prom(3), e0.2
  15948. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  15949. BB15
  15950. cls' %15.0 = LdConst function (depth, random) { if (d...
  15951. t %15.1 = Identical %13.2, %15.0
  15952. void Assume %15.1, %13.5
  15953. val^? %15.3 = CastType %13.3
  15954. val^? %15.4 = CastType %13.4
  15955. env e15.5 = MkEnv depth=%15.3, random=%15.4, parent=<environment: 0x7f9246b48c88>
  15956. val %15.6 = Force %15.3, e15.5
  15957. real$' %15.7 = LdConst [1] 1
  15958. cp %15.8 = Checkpoint -> BB17 (by default) | BB16 (if coming from expect)
  15959. BB14
  15960. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  15961. void Deopt %14.0
  15962. BB17
  15963. t %17.0 = IsObject %15.6
  15964. void AssumeNot %17.0, %15.8
  15965. lgl' %17.2 = Eq %15.6, %15.7, elided
  15966. lgl %17.3 = AsLogical %17.2
  15967. t %17.4 = AsTest %17.3
  15968. void Branch %17.4 -> BB32 (if true) | BB18 (if false)
  15969. BB16
  15970. fs %16.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15971. fs %16.1 = FrameState 0x7f924457f3d0+58: [%15.6, %15.7], env=e15.5, next=%16.0
  15972. void Deopt %16.1
  15973. BB32
  15974. cls %32.0 = LdFun c, e15.5
  15975. prom %32.1 = MkArg missing, Prom(5), e15.5
  15976. fs %32.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  15977. fs %32.3 = FrameState 0x7f924457f3d0+410: [], env=e15.5, next=%32.2
  15978. val^ %32.4 = Call %32.0(%32.1) %32.3, e15.5
  15979. goto BB36
  15980. BB18
  15981. cls %18.0 = LdFun vector, e15.5
  15982. cp %18.1 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  15983. BB36
  15984. val^ %36.0 = Phi %23.0:BB31, %32.4:BB32
  15985. val %36.1 = Force %36.0, e15.5
  15986. val^? %36.2 = LdVar array, e0.2
  15987. val %36.3 = Force %36.2, e0.2
  15988. val^? %36.4 = LdVar i, e0.2
  15989. val %36.5 = Force %36.4, e0.2
  15990. val %36.6 = EnsureNamed %36.1
  15991. val %36.7 = Subassign2_1D %36.6, %36.3, %36.5, e0.2
  15992. void StVar array, %36.7, e0.2
  15993. goto BB8
  15994. BB20
  15995. cls' %20.0 = LdConst function (mode = "logical", length = ...
  15996. t %20.1 = Identical %18.0, %20.0
  15997. void Assume %20.1, %18.1
  15998. real$' %20.3 = LdConst [1] 4
  15999. str$' %20.4 = LdConst [1] "list"
  16000. val %20.5 = CallSafeBuiltin vector(%20.4, %20.3)
  16001. void StVar array, %20.5, e15.5
  16002. real$' %20.7 = LdConst [1] 1
  16003. real$' %20.8 = LdConst [1] 4
  16004. goto BB22
  16005. BB19
  16006. fs %19.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  16007. fs %19.1 = FrameState 0x7f924457f3d0+113: [%18.0], env=e15.5, next=%19.0
  16008. void Deopt %19.1
  16009. BB22
  16010. val' %22.0 = Colon %20.7, %20.8, elided
  16011. val' %22.1 = SetShared %22.0
  16012. int$' %22.2 = ForSeqSize %22.1
  16013. int$' %22.3 = LdConst [1] 0
  16014. goto BB23
  16015. BB23
  16016. val %23.0 = Phi %20.5:BB20, %30.12:BB30
  16017. int$' %23.1 = Phi %22.3:BB22, %23.3:BB30
  16018. int$' %23.2 = Inc %23.1
  16019. int$' %23.3 = EnsureNamed %23.2
  16020. goto BB25
  16021. BB25
  16022. lgl' %25.0 = Lt %22.2, %23.3, elided
  16023. t %25.1 = AsTest %25.0
  16024. void Branch %25.1 -> BB31 (if true) | BB26 (if false)
  16025. BB31
  16026. goto BB36
  16027. BB26
  16028. goto BB28
  16029. BB28
  16030. val$' %28.0 = Extract2_1D %22.1, %23.3, elided
  16031. void StVar i, %28.0, e15.5
  16032. cls %28.2 = LdFun buildTreeDepth, e15.5
  16033. prom %28.3 = MkArg missing, Prom(8), e15.5
  16034. prom %28.4 = MkArg missing, Prom(9), e15.5
  16035. cp %28.5 = Checkpoint -> BB30 (by default) | BB29 (if coming from expect)
  16036. BB30
  16037. cls' %30.0 = LdConst function (depth, random) { if (d...
  16038. t %30.1 = Identical %28.2, %30.0
  16039. void Assume %30.1, %28.5
  16040. fs %30.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  16041. fs %30.4 = FrameState 0x7f924457f3d0+290: [%22.1, %22.2, %23.3], env=e15.5, next=%30.3
  16042. val^ %30.5 = StaticCall buildTreeDepth[0x7f92446010b0](%28.3, %28.4) %30.4, e15.5
  16043. val^? %30.6 = LdVar array, e15.5
  16044. val %30.7 = Force %30.6, e15.5
  16045. val^? %30.8 = LdVar i, e15.5
  16046. val %30.9 = Force %30.8, e15.5
  16047. val^ %30.10 = EnsureNamed %30.5
  16048. val %30.11 = Force %30.10, e15.5
  16049. val %30.12 = Subassign2_1D %30.11, %30.7, %30.9, e15.5
  16050. void StVar array, %30.12, e15.5
  16051. goto BB23
  16052. BB29
  16053. fs %29.0 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  16054. fs %29.1 = FrameState 0x7f924457f3d0+273: [%22.1, %22.2, %23.3, %28.2], env=e15.5, next=%29.0
  16055. void Deopt %29.1
  16056. Prom 2:
  16057. BB0
  16058. env e0.0 = LdFunctionEnv
  16059. val^? %0.1 = LdVar depth, e0.0
  16060. val %0.2 = Force %0.1, e0.0
  16061. real$' %0.3 = LdConst [1] 1
  16062. goto BB2
  16063. BB2
  16064. val %2.0 = Sub %0.2, %0.3, e0.0
  16065. void Return %2.0
  16066. Prom 3:
  16067. BB0
  16068. env e0.0 = LdFunctionEnv
  16069. val^? %0.1 = LdVar random, e0.0
  16070. val %0.2 = Force %0.1, e0.0
  16071. void Return %0.2
  16072. Prom 4:
  16073. BB0
  16074. env e0.0 = LdFunctionEnv
  16075. cls %0.1 = LdFun nextRandom, e0.0
  16076. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16077. t %0.3 = Identical %0.1, %0.2
  16078. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16079. BB2
  16080. void Assume %0.3, %0.4
  16081. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16082. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16083. real$' %2.3 = LdConst [1] 10
  16084. goto BB4
  16085. BB1
  16086. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16087. void Deopt %1.0
  16088. BB4
  16089. val %4.0 = Force %2.2, e0.0
  16090. val %4.1 = Mod %4.0, %2.3, e0.0
  16091. real$' %4.2 = LdConst [1] 1
  16092. goto BB6
  16093. BB6
  16094. val %6.0 = Add %4.1, %4.2, e0.0
  16095. void Return %6.0
  16096. Prom 5:
  16097. BB0
  16098. env e0.0 = LdFunctionEnv
  16099. cls %0.1 = LdFun nextRandom, e0.0
  16100. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16101. t %0.3 = Identical %0.1, %0.2
  16102. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16103. BB2
  16104. void Assume %0.3, %0.4
  16105. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16106. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16107. real$' %2.3 = LdConst [1] 10
  16108. goto BB4
  16109. BB1
  16110. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16111. void Deopt %1.0
  16112. BB4
  16113. val %4.0 = Force %2.2, e0.0
  16114. val %4.1 = Mod %4.0, %2.3, e0.0
  16115. real$' %4.2 = LdConst [1] 1
  16116. goto BB6
  16117. BB6
  16118. val %6.0 = Add %4.1, %4.2, e0.0
  16119. void Return %6.0
  16120. Prom 8:
  16121. BB0
  16122. env e0.0 = LdFunctionEnv
  16123. val^? %0.1 = LdVar depth, e0.0
  16124. val %0.2 = Force %0.1, e0.0
  16125. real$' %0.3 = LdConst [1] 1
  16126. goto BB2
  16127. BB2
  16128. val %2.0 = Sub %0.2, %0.3, e0.0
  16129. void Return %2.0
  16130. Prom 9:
  16131. BB0
  16132. env e0.0 = LdFunctionEnv
  16133. val^? %0.1 = LdVar random, e0.0
  16134. val %0.2 = Force %0.1, e0.0
  16135. void Return %0.2
  16136. ├────── Cleanup redundant operations: == 287
  16137. buildTreeDepth[0x7f92446010b0]
  16138. BB0
  16139. val^ %0.0 = LdArg 0
  16140. val^ %0.1 = LdArg 1
  16141. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  16142. val %0.3 = Force! %0.0, e0.2
  16143. real$' %0.4 = LdConst [1] 1
  16144. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16145. BB2
  16146. t %2.0 = IsObject %0.3
  16147. void AssumeNot %2.0, %0.5
  16148. lgl' %2.2 = Eq %0.3, %0.4, elided
  16149. lgl %2.3 = AsLogical %2.2
  16150. t %2.4 = AsTest %2.3
  16151. void Branch %2.4 -> BB27 (if true) | BB3 (if false)
  16152. BB1
  16153. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  16154. void Deopt %1.0
  16155. BB27
  16156. cls %27.0 = LdFun c, e0.2
  16157. prom %27.1 = MkArg missing, Prom(4), e0.2
  16158. fs %27.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  16159. val^ %27.3 = Call %27.0(%27.1) %27.2, e0.2
  16160. goto BB28
  16161. BB3
  16162. cls %3.0 = LdFun vector, e0.2
  16163. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  16164. BB28
  16165. val^ %28.0 = Phi %6.0:BB26, %27.3:BB27
  16166. val %28.1 = Force %28.0, e0.2
  16167. void Return %28.1
  16168. BB5
  16169. cls' %5.0 = LdConst function (mode = "logical", length = ...
  16170. t %5.1 = Identical %3.0, %5.0
  16171. void Assume %5.1, %3.1
  16172. str$' %5.3 = LdConst [1] "list"
  16173. real$' %5.4 = LdConst [1] 4
  16174. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  16175. void StVar array, %5.5, e0.2
  16176. real$' %5.7 = LdConst [1] 1
  16177. real$' %5.8 = LdConst [1] 4
  16178. val' %5.9 = Colon %5.7, %5.8, elided
  16179. val' %5.10 = SetShared %5.9
  16180. int$' %5.11 = ForSeqSize %5.10
  16181. int$' %5.12 = LdConst [1] 0
  16182. goto BB6
  16183. BB4
  16184. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  16185. void Deopt %4.0
  16186. BB6
  16187. val %6.0 = Phi %5.5:BB5, %29.7:BB29
  16188. int$' %6.1 = Phi %5.12:BB5, %6.3:BB29
  16189. int$' %6.2 = Inc %6.1
  16190. int$' %6.3 = EnsureNamed %6.2
  16191. goto BB7
  16192. BB7
  16193. lgl' %7.0 = Lt %5.11, %6.3, elided
  16194. t %7.1 = AsTest %7.0
  16195. void Branch %7.1 -> BB26 (if true) | BB8 (if false)
  16196. BB26
  16197. goto BB28
  16198. BB8
  16199. goto BB9
  16200. BB9
  16201. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  16202. void StVar i, %9.0, e0.2
  16203. cls %9.2 = LdFun buildTreeDepth, e0.2
  16204. prom %9.3 = MkArg missing, Prom(2), e0.2
  16205. prom %9.4 = MkArg missing, Prom(3), e0.2
  16206. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  16207. BB11
  16208. cls' %11.0 = LdConst function (depth, random) { if (d...
  16209. t %11.1 = Identical %9.2, %11.0
  16210. void Assume %11.1, %9.5
  16211. val^? %11.3 = CastType %9.3
  16212. val^? %11.4 = CastType %9.4
  16213. env e11.5 = MkEnv depth=%11.3, random=%11.4, parent=<environment: 0x7f9246b48c88>
  16214. val %11.6 = Force %11.3, e11.5
  16215. real$' %11.7 = LdConst [1] 1
  16216. cp %11.8 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  16217. BB10
  16218. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  16219. void Deopt %10.0
  16220. BB13
  16221. t %13.0 = IsObject %11.6
  16222. void AssumeNot %13.0, %11.8
  16223. lgl' %13.2 = Eq %11.6, %11.7, elided
  16224. lgl %13.3 = AsLogical %13.2
  16225. t %13.4 = AsTest %13.3
  16226. void Branch %13.4 -> BB25 (if true) | BB14 (if false)
  16227. BB12
  16228. fs %12.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16229. fs %12.1 = FrameState 0x7f924457f3d0+58: [%11.6, %11.7], env=e11.5, next=%12.0
  16230. void Deopt %12.1
  16231. BB25
  16232. cls %25.0 = LdFun c, e11.5
  16233. prom %25.1 = MkArg missing, Prom(5), e11.5
  16234. fs %25.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16235. fs %25.3 = FrameState 0x7f924457f3d0+410: [], env=e11.5, next=%25.2
  16236. val^ %25.4 = Call %25.0(%25.1) %25.3, e11.5
  16237. goto BB29
  16238. BB14
  16239. cls %14.0 = LdFun vector, e11.5
  16240. cp %14.1 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  16241. BB29
  16242. val^ %29.0 = Phi %18.0:BB24, %25.4:BB25
  16243. val %29.1 = Force %29.0, e11.5
  16244. val^? %29.2 = LdVar array, e0.2
  16245. val %29.3 = Force %29.2, e0.2
  16246. val^? %29.4 = LdVar i, e0.2
  16247. val %29.5 = Force %29.4, e0.2
  16248. val %29.6 = EnsureNamed %29.1
  16249. val %29.7 = Subassign2_1D %29.6, %29.3, %29.5, e0.2
  16250. void StVar array, %29.7, e0.2
  16251. goto BB6
  16252. BB16
  16253. cls' %16.0 = LdConst function (mode = "logical", length = ...
  16254. t %16.1 = Identical %14.0, %16.0
  16255. void Assume %16.1, %14.1
  16256. real$' %16.3 = LdConst [1] 4
  16257. str$' %16.4 = LdConst [1] "list"
  16258. val %16.5 = CallSafeBuiltin vector(%16.4, %16.3)
  16259. void StVar array, %16.5, e11.5
  16260. real$' %16.7 = LdConst [1] 1
  16261. real$' %16.8 = LdConst [1] 4
  16262. goto BB17
  16263. BB15
  16264. fs %15.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16265. fs %15.1 = FrameState 0x7f924457f3d0+113: [%14.0], env=e11.5, next=%15.0
  16266. void Deopt %15.1
  16267. BB17
  16268. val' %17.0 = Colon %16.7, %16.8, elided
  16269. val' %17.1 = SetShared %17.0
  16270. int$' %17.2 = ForSeqSize %17.1
  16271. int$' %17.3 = LdConst [1] 0
  16272. goto BB18
  16273. BB18
  16274. val %18.0 = Phi %16.5:BB16, %23.12:BB23
  16275. int$' %18.1 = Phi %17.3:BB17, %18.3:BB23
  16276. int$' %18.2 = Inc %18.1
  16277. int$' %18.3 = EnsureNamed %18.2
  16278. goto BB19
  16279. BB19
  16280. lgl' %19.0 = Lt %17.2, %18.3, elided
  16281. t %19.1 = AsTest %19.0
  16282. void Branch %19.1 -> BB24 (if true) | BB20 (if false)
  16283. BB24
  16284. goto BB29
  16285. BB20
  16286. goto BB21
  16287. BB21
  16288. val$' %21.0 = Extract2_1D %17.1, %18.3, elided
  16289. void StVar i, %21.0, e11.5
  16290. cls %21.2 = LdFun buildTreeDepth, e11.5
  16291. prom %21.3 = MkArg missing, Prom(8), e11.5
  16292. prom %21.4 = MkArg missing, Prom(9), e11.5
  16293. cp %21.5 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  16294. BB23
  16295. cls' %23.0 = LdConst function (depth, random) { if (d...
  16296. t %23.1 = Identical %21.2, %23.0
  16297. void Assume %23.1, %21.5
  16298. fs %23.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16299. fs %23.4 = FrameState 0x7f924457f3d0+290: [%17.1, %17.2, %18.3], env=e11.5, next=%23.3
  16300. val^ %23.5 = StaticCall buildTreeDepth[0x7f92446010b0](%21.3, %21.4) %23.4, e11.5
  16301. val^? %23.6 = LdVar array, e11.5
  16302. val %23.7 = Force %23.6, e11.5
  16303. val^? %23.8 = LdVar i, e11.5
  16304. val %23.9 = Force %23.8, e11.5
  16305. val^ %23.10 = EnsureNamed %23.5
  16306. val %23.11 = Force %23.10, e11.5
  16307. val %23.12 = Subassign2_1D %23.11, %23.7, %23.9, e11.5
  16308. void StVar array, %23.12, e11.5
  16309. goto BB18
  16310. BB22
  16311. fs %22.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16312. fs %22.1 = FrameState 0x7f924457f3d0+273: [%17.1, %17.2, %18.3, %21.2], env=e11.5, next=%22.0
  16313. void Deopt %22.1
  16314. Prom 2:
  16315. BB0
  16316. env e0.0 = LdFunctionEnv
  16317. val^? %0.1 = LdVar depth, e0.0
  16318. val %0.2 = Force %0.1, e0.0
  16319. real$' %0.3 = LdConst [1] 1
  16320. goto BB1
  16321. BB1
  16322. val %1.0 = Sub %0.2, %0.3, e0.0
  16323. void Return %1.0
  16324. Prom 3:
  16325. BB0
  16326. env e0.0 = LdFunctionEnv
  16327. val^? %0.1 = LdVar random, e0.0
  16328. val %0.2 = Force %0.1, e0.0
  16329. void Return %0.2
  16330. Prom 4:
  16331. BB0
  16332. env e0.0 = LdFunctionEnv
  16333. cls %0.1 = LdFun nextRandom, e0.0
  16334. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16335. t %0.3 = Identical %0.1, %0.2
  16336. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16337. BB2
  16338. void Assume %0.3, %0.4
  16339. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16340. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16341. real$' %2.3 = LdConst [1] 10
  16342. goto BB3
  16343. BB1
  16344. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16345. void Deopt %1.0
  16346. BB3
  16347. val %3.0 = Force %2.2, e0.0
  16348. val %3.1 = Mod %3.0, %2.3, e0.0
  16349. real$' %3.2 = LdConst [1] 1
  16350. goto BB4
  16351. BB4
  16352. val %4.0 = Add %3.1, %3.2, e0.0
  16353. void Return %4.0
  16354. Prom 5:
  16355. BB0
  16356. env e0.0 = LdFunctionEnv
  16357. cls %0.1 = LdFun nextRandom, e0.0
  16358. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16359. t %0.3 = Identical %0.1, %0.2
  16360. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16361. BB2
  16362. void Assume %0.3, %0.4
  16363. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16364. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16365. real$' %2.3 = LdConst [1] 10
  16366. goto BB3
  16367. BB1
  16368. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16369. void Deopt %1.0
  16370. BB3
  16371. val %3.0 = Force %2.2, e0.0
  16372. val %3.1 = Mod %3.0, %2.3, e0.0
  16373. real$' %3.2 = LdConst [1] 1
  16374. goto BB4
  16375. BB4
  16376. val %4.0 = Add %3.1, %3.2, e0.0
  16377. void Return %4.0
  16378. Prom 8:
  16379. BB0
  16380. env e0.0 = LdFunctionEnv
  16381. val^? %0.1 = LdVar depth, e0.0
  16382. val %0.2 = Force %0.1, e0.0
  16383. real$' %0.3 = LdConst [1] 1
  16384. goto BB1
  16385. BB1
  16386. val %1.0 = Sub %0.2, %0.3, e0.0
  16387. void Return %1.0
  16388. Prom 9:
  16389. BB0
  16390. env e0.0 = LdFunctionEnv
  16391. val^? %0.1 = LdVar random, e0.0
  16392. val %0.2 = Force %0.1, e0.0
  16393. void Return %0.2
  16394. ├────── Delay instructions: == 294
  16395. buildTreeDepth[0x7f92446010b0]
  16396. BB0
  16397. val^ %0.0 = LdArg 0
  16398. val^ %0.1 = LdArg 1
  16399. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  16400. val %0.3 = Force! %0.0, e0.2
  16401. real$' %0.4 = LdConst [1] 1
  16402. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16403. BB2
  16404. t %2.0 = IsObject %0.3
  16405. void AssumeNot %2.0, %0.5
  16406. lgl' %2.2 = Eq %0.3, %0.4, elided
  16407. lgl %2.3 = AsLogical %2.2
  16408. t %2.4 = AsTest %2.3
  16409. void Branch %2.4 -> BB27 (if true) | BB3 (if false)
  16410. BB1
  16411. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  16412. void Deopt %1.0
  16413. BB27
  16414. cls %27.0 = LdFun c, e0.2
  16415. prom %27.1 = MkArg missing, Prom(4), e0.2
  16416. fs %27.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  16417. val^ %27.3 = Call %27.0(%27.1) %27.2, e0.2
  16418. goto BB28
  16419. BB3
  16420. cls %3.0 = LdFun vector, e0.2
  16421. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  16422. BB28
  16423. val^ %28.0 = Phi %6.0:BB26, %27.3:BB27
  16424. val %28.1 = Force %28.0, e0.2
  16425. void Return %28.1
  16426. BB5
  16427. cls' %5.0 = LdConst function (mode = "logical", length = ...
  16428. t %5.1 = Identical %3.0, %5.0
  16429. void Assume %5.1, %3.1
  16430. real$' %5.3 = LdConst [1] 4
  16431. str$' %5.4 = LdConst [1] "list"
  16432. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  16433. void StVar array, %5.5, e0.2
  16434. real$' %5.7 = LdConst [1] 4
  16435. real$' %5.8 = LdConst [1] 1
  16436. val' %5.9 = Colon %5.8, %5.7, elided
  16437. val' %5.10 = SetShared %5.9
  16438. int$' %5.11 = ForSeqSize %5.10
  16439. int$' %5.12 = LdConst [1] 0
  16440. goto BB6
  16441. BB4
  16442. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  16443. void Deopt %4.0
  16444. BB6
  16445. val %6.0 = Phi %5.5:BB5, %29.7:BB29
  16446. int$' %6.1 = Phi %5.12:BB5, %6.3:BB29
  16447. int$' %6.2 = Inc %6.1
  16448. int$' %6.3 = EnsureNamed %6.2
  16449. goto BB7
  16450. BB7
  16451. lgl' %7.0 = Lt %5.11, %6.3, elided
  16452. t %7.1 = AsTest %7.0
  16453. void Branch %7.1 -> BB26 (if true) | BB8 (if false)
  16454. BB26
  16455. goto BB28
  16456. BB8
  16457. goto BB9
  16458. BB9
  16459. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  16460. void StVar i, %9.0, e0.2
  16461. cls %9.2 = LdFun buildTreeDepth, e0.2
  16462. prom %9.3 = MkArg missing, Prom(2), e0.2
  16463. prom %9.4 = MkArg missing, Prom(3), e0.2
  16464. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  16465. BB11
  16466. cls' %11.0 = LdConst function (depth, random) { if (d...
  16467. t %11.1 = Identical %9.2, %11.0
  16468. void Assume %11.1, %9.5
  16469. val^? %11.3 = CastType %9.3
  16470. val^? %11.4 = CastType %9.4
  16471. env e11.5 = MkEnv depth=%11.3, random=%11.4, parent=<environment: 0x7f9246b48c88>
  16472. val %11.6 = Force %11.3, e11.5
  16473. real$' %11.7 = LdConst [1] 1
  16474. cp %11.8 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  16475. BB10
  16476. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  16477. void Deopt %10.0
  16478. BB13
  16479. t %13.0 = IsObject %11.6
  16480. void AssumeNot %13.0, %11.8
  16481. lgl' %13.2 = Eq %11.6, %11.7, elided
  16482. lgl %13.3 = AsLogical %13.2
  16483. t %13.4 = AsTest %13.3
  16484. void Branch %13.4 -> BB25 (if true) | BB14 (if false)
  16485. BB12
  16486. fs %12.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16487. fs %12.1 = FrameState 0x7f924457f3d0+58: [%11.6, %11.7], env=e11.5, next=%12.0
  16488. void Deopt %12.1
  16489. BB25
  16490. cls %25.0 = LdFun c, e11.5
  16491. prom %25.1 = MkArg missing, Prom(5), e11.5
  16492. fs %25.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16493. fs %25.3 = FrameState 0x7f924457f3d0+410: [], env=e11.5, next=%25.2
  16494. val^ %25.4 = Call %25.0(%25.1) %25.3, e11.5
  16495. goto BB29
  16496. BB14
  16497. cls %14.0 = LdFun vector, e11.5
  16498. cp %14.1 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  16499. BB29
  16500. val^ %29.0 = Phi %18.0:BB24, %25.4:BB25
  16501. val %29.1 = Force %29.0, e11.5
  16502. val^? %29.2 = LdVar array, e0.2
  16503. val %29.3 = Force %29.2, e0.2
  16504. val^? %29.4 = LdVar i, e0.2
  16505. val %29.5 = Force %29.4, e0.2
  16506. val %29.6 = EnsureNamed %29.1
  16507. val %29.7 = Subassign2_1D %29.6, %29.3, %29.5, e0.2
  16508. void StVar array, %29.7, e0.2
  16509. goto BB6
  16510. BB16
  16511. cls' %16.0 = LdConst function (mode = "logical", length = ...
  16512. t %16.1 = Identical %14.0, %16.0
  16513. void Assume %16.1, %14.1
  16514. str$' %16.3 = LdConst [1] "list"
  16515. real$' %16.4 = LdConst [1] 4
  16516. val %16.5 = CallSafeBuiltin vector(%16.3, %16.4)
  16517. void StVar array, %16.5, e11.5
  16518. goto BB17
  16519. BB15
  16520. fs %15.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16521. fs %15.1 = FrameState 0x7f924457f3d0+113: [%14.0], env=e11.5, next=%15.0
  16522. void Deopt %15.1
  16523. BB17
  16524. real$' %17.0 = LdConst [1] 1
  16525. real$' %17.1 = LdConst [1] 4
  16526. val' %17.2 = Colon %17.0, %17.1, elided
  16527. val' %17.3 = SetShared %17.2
  16528. int$' %17.4 = ForSeqSize %17.3
  16529. int$' %17.5 = LdConst [1] 0
  16530. goto BB18
  16531. BB18
  16532. val %18.0 = Phi %16.5:BB16, %23.12:BB23
  16533. int$' %18.1 = Phi %17.5:BB17, %18.3:BB23
  16534. int$' %18.2 = Inc %18.1
  16535. int$' %18.3 = EnsureNamed %18.2
  16536. goto BB19
  16537. BB19
  16538. lgl' %19.0 = Lt %17.4, %18.3, elided
  16539. t %19.1 = AsTest %19.0
  16540. void Branch %19.1 -> BB24 (if true) | BB20 (if false)
  16541. BB24
  16542. goto BB29
  16543. BB20
  16544. goto BB21
  16545. BB21
  16546. val$' %21.0 = Extract2_1D %17.3, %18.3, elided
  16547. void StVar i, %21.0, e11.5
  16548. cls %21.2 = LdFun buildTreeDepth, e11.5
  16549. prom %21.3 = MkArg missing, Prom(8), e11.5
  16550. prom %21.4 = MkArg missing, Prom(9), e11.5
  16551. cp %21.5 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  16552. BB23
  16553. cls' %23.0 = LdConst function (depth, random) { if (d...
  16554. t %23.1 = Identical %21.2, %23.0
  16555. void Assume %23.1, %21.5
  16556. fs %23.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16557. fs %23.4 = FrameState 0x7f924457f3d0+290: [%17.3, %17.4, %18.3], env=e11.5, next=%23.3
  16558. val^ %23.5 = StaticCall buildTreeDepth[0x7f92446010b0](%21.3, %21.4) %23.4, e11.5
  16559. val^? %23.6 = LdVar array, e11.5
  16560. val %23.7 = Force %23.6, e11.5
  16561. val^? %23.8 = LdVar i, e11.5
  16562. val %23.9 = Force %23.8, e11.5
  16563. val^ %23.10 = EnsureNamed %23.5
  16564. val %23.11 = Force %23.10, e11.5
  16565. val %23.12 = Subassign2_1D %23.11, %23.7, %23.9, e11.5
  16566. void StVar array, %23.12, e11.5
  16567. goto BB18
  16568. BB22
  16569. fs %22.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16570. fs %22.1 = FrameState 0x7f924457f3d0+273: [%17.3, %17.4, %18.3, %21.2], env=e11.5, next=%22.0
  16571. void Deopt %22.1
  16572. Prom 2:
  16573. BB0
  16574. env e0.0 = LdFunctionEnv
  16575. val^? %0.1 = LdVar depth, e0.0
  16576. val %0.2 = Force %0.1, e0.0
  16577. real$' %0.3 = LdConst [1] 1
  16578. goto BB1
  16579. BB1
  16580. val %1.0 = Sub %0.2, %0.3, e0.0
  16581. void Return %1.0
  16582. Prom 3:
  16583. BB0
  16584. env e0.0 = LdFunctionEnv
  16585. val^? %0.1 = LdVar random, e0.0
  16586. val %0.2 = Force %0.1, e0.0
  16587. void Return %0.2
  16588. Prom 4:
  16589. BB0
  16590. env e0.0 = LdFunctionEnv
  16591. cls %0.1 = LdFun nextRandom, e0.0
  16592. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16593. t %0.3 = Identical %0.1, %0.2
  16594. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16595. BB2
  16596. void Assume %0.3, %0.4
  16597. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16598. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16599. real$' %2.3 = LdConst [1] 10
  16600. goto BB3
  16601. BB1
  16602. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16603. void Deopt %1.0
  16604. BB3
  16605. val %3.0 = Force %2.2, e0.0
  16606. val %3.1 = Mod %3.0, %2.3, e0.0
  16607. real$' %3.2 = LdConst [1] 1
  16608. goto BB4
  16609. BB4
  16610. val %4.0 = Add %3.1, %3.2, e0.0
  16611. void Return %4.0
  16612. Prom 5:
  16613. BB0
  16614. env e0.0 = LdFunctionEnv
  16615. cls %0.1 = LdFun nextRandom, e0.0
  16616. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16617. t %0.3 = Identical %0.1, %0.2
  16618. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16619. BB2
  16620. void Assume %0.3, %0.4
  16621. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16622. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16623. real$' %2.3 = LdConst [1] 10
  16624. goto BB3
  16625. BB1
  16626. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16627. void Deopt %1.0
  16628. BB3
  16629. val %3.0 = Force %2.2, e0.0
  16630. val %3.1 = Mod %3.0, %2.3, e0.0
  16631. real$' %3.2 = LdConst [1] 1
  16632. goto BB4
  16633. BB4
  16634. val %4.0 = Add %3.1, %3.2, e0.0
  16635. void Return %4.0
  16636. Prom 8:
  16637. BB0
  16638. env e0.0 = LdFunctionEnv
  16639. val^? %0.1 = LdVar depth, e0.0
  16640. val %0.2 = Force %0.1, e0.0
  16641. real$' %0.3 = LdConst [1] 1
  16642. goto BB1
  16643. BB1
  16644. val %1.0 = Sub %0.2, %0.3, e0.0
  16645. void Return %1.0
  16646. Prom 9:
  16647. BB0
  16648. env e0.0 = LdFunctionEnv
  16649. val^? %0.1 = LdVar random, e0.0
  16650. val %0.2 = Force %0.1, e0.0
  16651. void Return %0.2
  16652. ├────── Elide environments not needed: == 301
  16653. buildTreeDepth[0x7f92446010b0]
  16654. BB0
  16655. val^ %0.0 = LdArg 0
  16656. val^ %0.1 = LdArg 1
  16657. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  16658. val %0.3 = Force! %0.0, e0.2
  16659. real$' %0.4 = LdConst [1] 1
  16660. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16661. BB2
  16662. t %2.0 = IsObject %0.3
  16663. void AssumeNot %2.0, %0.5
  16664. lgl' %2.2 = Eq %0.3, %0.4, elided
  16665. lgl %2.3 = AsLogical %2.2
  16666. t %2.4 = AsTest %2.3
  16667. void Branch %2.4 -> BB27 (if true) | BB3 (if false)
  16668. BB1
  16669. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  16670. void Deopt %1.0
  16671. BB27
  16672. cls %27.0 = LdFun c, e0.2
  16673. prom %27.1 = MkArg missing, Prom(4), e0.2
  16674. fs %27.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  16675. val^ %27.3 = Call %27.0(%27.1) %27.2, e0.2
  16676. goto BB28
  16677. BB3
  16678. cls %3.0 = LdFun vector, e0.2
  16679. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  16680. BB28
  16681. val^ %28.0 = Phi %6.0:BB26, %27.3:BB27
  16682. val %28.1 = Force %28.0, e0.2
  16683. void Return %28.1
  16684. BB5
  16685. cls' %5.0 = LdConst function (mode = "logical", length = ...
  16686. t %5.1 = Identical %3.0, %5.0
  16687. void Assume %5.1, %3.1
  16688. real$' %5.3 = LdConst [1] 4
  16689. str$' %5.4 = LdConst [1] "list"
  16690. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  16691. void StVar array, %5.5, e0.2
  16692. real$' %5.7 = LdConst [1] 4
  16693. real$' %5.8 = LdConst [1] 1
  16694. val' %5.9 = Colon %5.8, %5.7, elided
  16695. val' %5.10 = SetShared %5.9
  16696. int$' %5.11 = ForSeqSize %5.10
  16697. int$' %5.12 = LdConst [1] 0
  16698. goto BB6
  16699. BB4
  16700. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  16701. void Deopt %4.0
  16702. BB6
  16703. val %6.0 = Phi %5.5:BB5, %29.7:BB29
  16704. int$' %6.1 = Phi %5.12:BB5, %6.3:BB29
  16705. int$' %6.2 = Inc %6.1
  16706. int$' %6.3 = EnsureNamed %6.2
  16707. goto BB7
  16708. BB7
  16709. lgl' %7.0 = Lt %5.11, %6.3, elided
  16710. t %7.1 = AsTest %7.0
  16711. void Branch %7.1 -> BB26 (if true) | BB8 (if false)
  16712. BB26
  16713. goto BB28
  16714. BB8
  16715. goto BB9
  16716. BB9
  16717. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  16718. void StVar i, %9.0, e0.2
  16719. cls %9.2 = LdFun buildTreeDepth, e0.2
  16720. prom %9.3 = MkArg missing, Prom(2), e0.2
  16721. prom %9.4 = MkArg missing, Prom(3), e0.2
  16722. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  16723. BB11
  16724. cls' %11.0 = LdConst function (depth, random) { if (d...
  16725. t %11.1 = Identical %9.2, %11.0
  16726. void Assume %11.1, %9.5
  16727. val^? %11.3 = CastType %9.3
  16728. val^? %11.4 = CastType %9.4
  16729. env e11.5 = MkEnv depth=%11.3, random=%11.4, parent=<environment: 0x7f9246b48c88>
  16730. val %11.6 = Force %11.3, e11.5
  16731. real$' %11.7 = LdConst [1] 1
  16732. cp %11.8 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  16733. BB10
  16734. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  16735. void Deopt %10.0
  16736. BB13
  16737. t %13.0 = IsObject %11.6
  16738. void AssumeNot %13.0, %11.8
  16739. lgl' %13.2 = Eq %11.6, %11.7, elided
  16740. lgl %13.3 = AsLogical %13.2
  16741. t %13.4 = AsTest %13.3
  16742. void Branch %13.4 -> BB25 (if true) | BB14 (if false)
  16743. BB12
  16744. fs %12.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16745. fs %12.1 = FrameState 0x7f924457f3d0+58: [%11.6, %11.7], env=e11.5, next=%12.0
  16746. void Deopt %12.1
  16747. BB25
  16748. cls %25.0 = LdFun c, e11.5
  16749. prom %25.1 = MkArg missing, Prom(5), e11.5
  16750. fs %25.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16751. fs %25.3 = FrameState 0x7f924457f3d0+410: [], env=e11.5, next=%25.2
  16752. val^ %25.4 = Call %25.0(%25.1) %25.3, e11.5
  16753. goto BB29
  16754. BB14
  16755. cls %14.0 = LdFun vector, e11.5
  16756. cp %14.1 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  16757. BB29
  16758. val^ %29.0 = Phi %18.0:BB24, %25.4:BB25
  16759. val %29.1 = Force %29.0, e11.5
  16760. val^? %29.2 = LdVar array, e0.2
  16761. val %29.3 = Force %29.2, e0.2
  16762. val^? %29.4 = LdVar i, e0.2
  16763. val %29.5 = Force %29.4, e0.2
  16764. val %29.6 = EnsureNamed %29.1
  16765. val %29.7 = Subassign2_1D %29.6, %29.3, %29.5, e0.2
  16766. void StVar array, %29.7, e0.2
  16767. goto BB6
  16768. BB16
  16769. cls' %16.0 = LdConst function (mode = "logical", length = ...
  16770. t %16.1 = Identical %14.0, %16.0
  16771. void Assume %16.1, %14.1
  16772. str$' %16.3 = LdConst [1] "list"
  16773. real$' %16.4 = LdConst [1] 4
  16774. val %16.5 = CallSafeBuiltin vector(%16.3, %16.4)
  16775. void StVar array, %16.5, e11.5
  16776. goto BB17
  16777. BB15
  16778. fs %15.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16779. fs %15.1 = FrameState 0x7f924457f3d0+113: [%14.0], env=e11.5, next=%15.0
  16780. void Deopt %15.1
  16781. BB17
  16782. real$' %17.0 = LdConst [1] 1
  16783. real$' %17.1 = LdConst [1] 4
  16784. val' %17.2 = Colon %17.0, %17.1, elided
  16785. val' %17.3 = SetShared %17.2
  16786. int$' %17.4 = ForSeqSize %17.3
  16787. int$' %17.5 = LdConst [1] 0
  16788. goto BB18
  16789. BB18
  16790. val %18.0 = Phi %16.5:BB16, %23.12:BB23
  16791. int$' %18.1 = Phi %17.5:BB17, %18.3:BB23
  16792. int$' %18.2 = Inc %18.1
  16793. int$' %18.3 = EnsureNamed %18.2
  16794. goto BB19
  16795. BB19
  16796. lgl' %19.0 = Lt %17.4, %18.3, elided
  16797. t %19.1 = AsTest %19.0
  16798. void Branch %19.1 -> BB24 (if true) | BB20 (if false)
  16799. BB24
  16800. goto BB29
  16801. BB20
  16802. goto BB21
  16803. BB21
  16804. val$' %21.0 = Extract2_1D %17.3, %18.3, elided
  16805. void StVar i, %21.0, e11.5
  16806. cls %21.2 = LdFun buildTreeDepth, e11.5
  16807. prom %21.3 = MkArg missing, Prom(8), e11.5
  16808. prom %21.4 = MkArg missing, Prom(9), e11.5
  16809. cp %21.5 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  16810. BB23
  16811. cls' %23.0 = LdConst function (depth, random) { if (d...
  16812. t %23.1 = Identical %21.2, %23.0
  16813. void Assume %23.1, %21.5
  16814. fs %23.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16815. fs %23.4 = FrameState 0x7f924457f3d0+290: [%17.3, %17.4, %18.3], env=e11.5, next=%23.3
  16816. val^ %23.5 = StaticCall buildTreeDepth[0x7f92446010b0](%21.3, %21.4) %23.4, e11.5
  16817. val^? %23.6 = LdVar array, e11.5
  16818. val %23.7 = Force %23.6, e11.5
  16819. val^? %23.8 = LdVar i, e11.5
  16820. val %23.9 = Force %23.8, e11.5
  16821. val^ %23.10 = EnsureNamed %23.5
  16822. val %23.11 = Force %23.10, e11.5
  16823. val %23.12 = Subassign2_1D %23.11, %23.7, %23.9, e11.5
  16824. void StVar array, %23.12, e11.5
  16825. goto BB18
  16826. BB22
  16827. fs %22.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  16828. fs %22.1 = FrameState 0x7f924457f3d0+273: [%17.3, %17.4, %18.3, %21.2], env=e11.5, next=%22.0
  16829. void Deopt %22.1
  16830. Prom 2:
  16831. BB0
  16832. env e0.0 = LdFunctionEnv
  16833. val^? %0.1 = LdVar depth, e0.0
  16834. val %0.2 = Force %0.1, e0.0
  16835. real$' %0.3 = LdConst [1] 1
  16836. goto BB1
  16837. BB1
  16838. val %1.0 = Sub %0.2, %0.3, e0.0
  16839. void Return %1.0
  16840. Prom 3:
  16841. BB0
  16842. env e0.0 = LdFunctionEnv
  16843. val^? %0.1 = LdVar random, e0.0
  16844. val %0.2 = Force %0.1, e0.0
  16845. void Return %0.2
  16846. Prom 4:
  16847. BB0
  16848. env e0.0 = LdFunctionEnv
  16849. cls %0.1 = LdFun nextRandom, e0.0
  16850. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16851. t %0.3 = Identical %0.1, %0.2
  16852. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16853. BB2
  16854. void Assume %0.3, %0.4
  16855. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16856. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16857. real$' %2.3 = LdConst [1] 10
  16858. goto BB3
  16859. BB1
  16860. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16861. void Deopt %1.0
  16862. BB3
  16863. val %3.0 = Force %2.2, e0.0
  16864. val %3.1 = Mod %3.0, %2.3, e0.0
  16865. real$' %3.2 = LdConst [1] 1
  16866. goto BB4
  16867. BB4
  16868. val %4.0 = Add %3.1, %3.2, e0.0
  16869. void Return %4.0
  16870. Prom 5:
  16871. BB0
  16872. env e0.0 = LdFunctionEnv
  16873. cls %0.1 = LdFun nextRandom, e0.0
  16874. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  16875. t %0.3 = Identical %0.1, %0.2
  16876. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16877. BB2
  16878. void Assume %0.3, %0.4
  16879. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  16880. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  16881. real$' %2.3 = LdConst [1] 10
  16882. goto BB3
  16883. BB1
  16884. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  16885. void Deopt %1.0
  16886. BB3
  16887. val %3.0 = Force %2.2, e0.0
  16888. val %3.1 = Mod %3.0, %2.3, e0.0
  16889. real$' %3.2 = LdConst [1] 1
  16890. goto BB4
  16891. BB4
  16892. val %4.0 = Add %3.1, %3.2, e0.0
  16893. void Return %4.0
  16894. Prom 8:
  16895. BB0
  16896. env e0.0 = LdFunctionEnv
  16897. val^? %0.1 = LdVar depth, e0.0
  16898. val %0.2 = Force %0.1, e0.0
  16899. real$' %0.3 = LdConst [1] 1
  16900. goto BB1
  16901. BB1
  16902. val %1.0 = Sub %0.2, %0.3, e0.0
  16903. void Return %1.0
  16904. Prom 9:
  16905. BB0
  16906. env e0.0 = LdFunctionEnv
  16907. val^? %0.1 = LdVar random, e0.0
  16908. val %0.2 = Force %0.1, e0.0
  16909. void Return %0.2
  16910. ├────── Move environment creation as far as possible: == 308
  16911. buildTreeDepth[0x7f92446010b0]
  16912. BB0
  16913. val^ %0.0 = LdArg 0
  16914. val^ %0.1 = LdArg 1
  16915. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  16916. val %0.3 = Force! %0.0, e0.2
  16917. real$' %0.4 = LdConst [1] 1
  16918. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  16919. BB2
  16920. t %2.0 = IsObject %0.3
  16921. void AssumeNot %2.0, %0.5
  16922. lgl' %2.2 = Eq %0.3, %0.4, elided
  16923. lgl %2.3 = AsLogical %2.2
  16924. t %2.4 = AsTest %2.3
  16925. void Branch %2.4 -> BB27 (if true) | BB3 (if false)
  16926. BB1
  16927. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  16928. void Deopt %1.0
  16929. BB27
  16930. cls %27.0 = LdFun c, e0.2
  16931. prom %27.1 = MkArg missing, Prom(4), e0.2
  16932. fs %27.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  16933. val^ %27.3 = Call %27.0(%27.1) %27.2, e0.2
  16934. goto BB28
  16935. BB3
  16936. cls %3.0 = LdFun vector, e0.2
  16937. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  16938. BB28
  16939. val^ %28.0 = Phi %6.0:BB26, %27.3:BB27
  16940. val %28.1 = Force %28.0, e0.2
  16941. void Return %28.1
  16942. BB5
  16943. cls' %5.0 = LdConst function (mode = "logical", length = ...
  16944. t %5.1 = Identical %3.0, %5.0
  16945. void Assume %5.1, %3.1
  16946. real$' %5.3 = LdConst [1] 4
  16947. str$' %5.4 = LdConst [1] "list"
  16948. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  16949. void StVar array, %5.5, e0.2
  16950. real$' %5.7 = LdConst [1] 4
  16951. real$' %5.8 = LdConst [1] 1
  16952. val' %5.9 = Colon %5.8, %5.7, elided
  16953. val' %5.10 = SetShared %5.9
  16954. int$' %5.11 = ForSeqSize %5.10
  16955. int$' %5.12 = LdConst [1] 0
  16956. goto BB6
  16957. BB4
  16958. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  16959. void Deopt %4.0
  16960. BB6
  16961. val %6.0 = Phi %5.5:BB5, %29.7:BB29
  16962. int$' %6.1 = Phi %5.12:BB5, %6.3:BB29
  16963. int$' %6.2 = Inc %6.1
  16964. int$' %6.3 = EnsureNamed %6.2
  16965. goto BB7
  16966. BB7
  16967. lgl' %7.0 = Lt %5.11, %6.3, elided
  16968. t %7.1 = AsTest %7.0
  16969. void Branch %7.1 -> BB26 (if true) | BB8 (if false)
  16970. BB26
  16971. goto BB28
  16972. BB8
  16973. goto BB9
  16974. BB9
  16975. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  16976. void StVar i, %9.0, e0.2
  16977. cls %9.2 = LdFun buildTreeDepth, e0.2
  16978. prom %9.3 = MkArg missing, Prom(2), e0.2
  16979. prom %9.4 = MkArg missing, Prom(3), e0.2
  16980. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  16981. BB11
  16982. cls' %11.0 = LdConst function (depth, random) { if (d...
  16983. t %11.1 = Identical %9.2, %11.0
  16984. void Assume %11.1, %9.5
  16985. val^? %11.3 = CastType %9.3
  16986. val^? %11.4 = CastType %9.4
  16987. env e11.5 = MkEnv depth=%11.3, random=%11.4, parent=<environment: 0x7f9246b48c88>
  16988. val %11.6 = Force %11.3, e11.5
  16989. real$' %11.7 = LdConst [1] 1
  16990. cp %11.8 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  16991. BB10
  16992. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  16993. void Deopt %10.0
  16994. BB13
  16995. t %13.0 = IsObject %11.6
  16996. void AssumeNot %13.0, %11.8
  16997. lgl' %13.2 = Eq %11.6, %11.7, elided
  16998. lgl %13.3 = AsLogical %13.2
  16999. t %13.4 = AsTest %13.3
  17000. void Branch %13.4 -> BB25 (if true) | BB14 (if false)
  17001. BB12
  17002. fs %12.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17003. fs %12.1 = FrameState 0x7f924457f3d0+58: [%11.6, %11.7], env=e11.5, next=%12.0
  17004. void Deopt %12.1
  17005. BB25
  17006. cls %25.0 = LdFun c, e11.5
  17007. prom %25.1 = MkArg missing, Prom(5), e11.5
  17008. fs %25.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17009. fs %25.3 = FrameState 0x7f924457f3d0+410: [], env=e11.5, next=%25.2
  17010. val^ %25.4 = Call %25.0(%25.1) %25.3, e11.5
  17011. goto BB29
  17012. BB14
  17013. cls %14.0 = LdFun vector, e11.5
  17014. cp %14.1 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  17015. BB29
  17016. val^ %29.0 = Phi %18.0:BB24, %25.4:BB25
  17017. val %29.1 = Force %29.0, e11.5
  17018. val^? %29.2 = LdVar array, e0.2
  17019. val %29.3 = Force %29.2, e0.2
  17020. val^? %29.4 = LdVar i, e0.2
  17021. val %29.5 = Force %29.4, e0.2
  17022. val %29.6 = EnsureNamed %29.1
  17023. val %29.7 = Subassign2_1D %29.6, %29.3, %29.5, e0.2
  17024. void StVar array, %29.7, e0.2
  17025. goto BB6
  17026. BB16
  17027. cls' %16.0 = LdConst function (mode = "logical", length = ...
  17028. t %16.1 = Identical %14.0, %16.0
  17029. void Assume %16.1, %14.1
  17030. str$' %16.3 = LdConst [1] "list"
  17031. real$' %16.4 = LdConst [1] 4
  17032. val %16.5 = CallSafeBuiltin vector(%16.3, %16.4)
  17033. void StVar array, %16.5, e11.5
  17034. goto BB17
  17035. BB15
  17036. fs %15.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17037. fs %15.1 = FrameState 0x7f924457f3d0+113: [%14.0], env=e11.5, next=%15.0
  17038. void Deopt %15.1
  17039. BB17
  17040. real$' %17.0 = LdConst [1] 1
  17041. real$' %17.1 = LdConst [1] 4
  17042. val' %17.2 = Colon %17.0, %17.1, elided
  17043. val' %17.3 = SetShared %17.2
  17044. int$' %17.4 = ForSeqSize %17.3
  17045. int$' %17.5 = LdConst [1] 0
  17046. goto BB18
  17047. BB18
  17048. val %18.0 = Phi %16.5:BB16, %23.12:BB23
  17049. int$' %18.1 = Phi %17.5:BB17, %18.3:BB23
  17050. int$' %18.2 = Inc %18.1
  17051. int$' %18.3 = EnsureNamed %18.2
  17052. goto BB19
  17053. BB19
  17054. lgl' %19.0 = Lt %17.4, %18.3, elided
  17055. t %19.1 = AsTest %19.0
  17056. void Branch %19.1 -> BB24 (if true) | BB20 (if false)
  17057. BB24
  17058. goto BB29
  17059. BB20
  17060. goto BB21
  17061. BB21
  17062. val$' %21.0 = Extract2_1D %17.3, %18.3, elided
  17063. void StVar i, %21.0, e11.5
  17064. cls %21.2 = LdFun buildTreeDepth, e11.5
  17065. prom %21.3 = MkArg missing, Prom(8), e11.5
  17066. prom %21.4 = MkArg missing, Prom(9), e11.5
  17067. cp %21.5 = Checkpoint -> BB23 (by default) | BB22 (if coming from expect)
  17068. BB23
  17069. cls' %23.0 = LdConst function (depth, random) { if (d...
  17070. t %23.1 = Identical %21.2, %23.0
  17071. void Assume %23.1, %21.5
  17072. fs %23.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17073. fs %23.4 = FrameState 0x7f924457f3d0+290: [%17.3, %17.4, %18.3], env=e11.5, next=%23.3
  17074. val^ %23.5 = StaticCall buildTreeDepth[0x7f92446010b0](%21.3, %21.4) %23.4, e11.5
  17075. val^? %23.6 = LdVar array, e11.5
  17076. val %23.7 = Force %23.6, e11.5
  17077. val^? %23.8 = LdVar i, e11.5
  17078. val %23.9 = Force %23.8, e11.5
  17079. val^ %23.10 = EnsureNamed %23.5
  17080. val %23.11 = Force %23.10, e11.5
  17081. val %23.12 = Subassign2_1D %23.11, %23.7, %23.9, e11.5
  17082. void StVar array, %23.12, e11.5
  17083. goto BB18
  17084. BB22
  17085. fs %22.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17086. fs %22.1 = FrameState 0x7f924457f3d0+273: [%17.3, %17.4, %18.3, %21.2], env=e11.5, next=%22.0
  17087. void Deopt %22.1
  17088. Prom 2:
  17089. BB0
  17090. env e0.0 = LdFunctionEnv
  17091. val^? %0.1 = LdVar depth, e0.0
  17092. val %0.2 = Force %0.1, e0.0
  17093. real$' %0.3 = LdConst [1] 1
  17094. goto BB1
  17095. BB1
  17096. val %1.0 = Sub %0.2, %0.3, e0.0
  17097. void Return %1.0
  17098. Prom 3:
  17099. BB0
  17100. env e0.0 = LdFunctionEnv
  17101. val^? %0.1 = LdVar random, e0.0
  17102. val %0.2 = Force %0.1, e0.0
  17103. void Return %0.2
  17104. Prom 4:
  17105. BB0
  17106. env e0.0 = LdFunctionEnv
  17107. cls %0.1 = LdFun nextRandom, e0.0
  17108. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17109. t %0.3 = Identical %0.1, %0.2
  17110. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17111. BB2
  17112. void Assume %0.3, %0.4
  17113. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17114. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17115. real$' %2.3 = LdConst [1] 10
  17116. goto BB3
  17117. BB1
  17118. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17119. void Deopt %1.0
  17120. BB3
  17121. val %3.0 = Force %2.2, e0.0
  17122. val %3.1 = Mod %3.0, %2.3, e0.0
  17123. real$' %3.2 = LdConst [1] 1
  17124. goto BB4
  17125. BB4
  17126. val %4.0 = Add %3.1, %3.2, e0.0
  17127. void Return %4.0
  17128. Prom 5:
  17129. BB0
  17130. env e0.0 = LdFunctionEnv
  17131. cls %0.1 = LdFun nextRandom, e0.0
  17132. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17133. t %0.3 = Identical %0.1, %0.2
  17134. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17135. BB2
  17136. void Assume %0.3, %0.4
  17137. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17138. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17139. real$' %2.3 = LdConst [1] 10
  17140. goto BB3
  17141. BB1
  17142. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17143. void Deopt %1.0
  17144. BB3
  17145. val %3.0 = Force %2.2, e0.0
  17146. val %3.1 = Mod %3.0, %2.3, e0.0
  17147. real$' %3.2 = LdConst [1] 1
  17148. goto BB4
  17149. BB4
  17150. val %4.0 = Add %3.1, %3.2, e0.0
  17151. void Return %4.0
  17152. Prom 8:
  17153. BB0
  17154. env e0.0 = LdFunctionEnv
  17155. val^? %0.1 = LdVar depth, e0.0
  17156. val %0.2 = Force %0.1, e0.0
  17157. real$' %0.3 = LdConst [1] 1
  17158. goto BB1
  17159. BB1
  17160. val %1.0 = Sub %0.2, %0.3, e0.0
  17161. void Return %1.0
  17162. Prom 9:
  17163. BB0
  17164. env e0.0 = LdFunctionEnv
  17165. val^? %0.1 = LdVar random, e0.0
  17166. val %0.2 = Force %0.1, e0.0
  17167. void Return %0.2
  17168. ├────── Cleanup redundant operations: == 315
  17169. buildTreeDepth[0x7f92446010b0]
  17170. BB0
  17171. val^ %0.0 = LdArg 0
  17172. val^ %0.1 = LdArg 1
  17173. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  17174. val %0.3 = Force! %0.0, e0.2
  17175. real$' %0.4 = LdConst [1] 1
  17176. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17177. BB2
  17178. t %2.0 = IsObject %0.3
  17179. void AssumeNot %2.0, %0.5
  17180. lgl' %2.2 = Eq %0.3, %0.4, elided
  17181. lgl %2.3 = AsLogical %2.2
  17182. t %2.4 = AsTest %2.3
  17183. void Branch %2.4 -> BB26 (if true) | BB3 (if false)
  17184. BB1
  17185. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  17186. void Deopt %1.0
  17187. BB26
  17188. cls %26.0 = LdFun c, e0.2
  17189. prom %26.1 = MkArg missing, Prom(4), e0.2
  17190. fs %26.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  17191. val^ %26.3 = Call %26.0(%26.1) %26.2, e0.2
  17192. goto BB27
  17193. BB3
  17194. cls %3.0 = LdFun vector, e0.2
  17195. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  17196. BB27
  17197. val^ %27.0 = Phi %6.0:BB25, %26.3:BB26
  17198. val %27.1 = Force %27.0, e0.2
  17199. void Return %27.1
  17200. BB5
  17201. cls' %5.0 = LdConst function (mode = "logical", length = ...
  17202. t %5.1 = Identical %3.0, %5.0
  17203. void Assume %5.1, %3.1
  17204. real$' %5.3 = LdConst [1] 4
  17205. str$' %5.4 = LdConst [1] "list"
  17206. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  17207. void StVar array, %5.5, e0.2
  17208. real$' %5.7 = LdConst [1] 4
  17209. real$' %5.8 = LdConst [1] 1
  17210. val' %5.9 = Colon %5.8, %5.7, elided
  17211. val' %5.10 = SetShared %5.9
  17212. int$' %5.11 = ForSeqSize %5.10
  17213. int$' %5.12 = LdConst [1] 0
  17214. goto BB6
  17215. BB4
  17216. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  17217. void Deopt %4.0
  17218. BB6
  17219. val %6.0 = Phi %5.5:BB5, %28.7:BB28
  17220. int$' %6.1 = Phi %5.12:BB5, %6.3:BB28
  17221. int$' %6.2 = Inc %6.1
  17222. int$' %6.3 = EnsureNamed %6.2
  17223. lgl' %6.4 = Lt %5.11, %6.3, elided
  17224. t %6.5 = AsTest %6.4
  17225. void Branch %6.5 -> BB25 (if true) | BB7 (if false)
  17226. BB25
  17227. goto BB27
  17228. BB7
  17229. goto BB8
  17230. BB8
  17231. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  17232. void StVar i, %8.0, e0.2
  17233. cls %8.2 = LdFun buildTreeDepth, e0.2
  17234. prom %8.3 = MkArg missing, Prom(2), e0.2
  17235. prom %8.4 = MkArg missing, Prom(3), e0.2
  17236. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  17237. BB10
  17238. cls' %10.0 = LdConst function (depth, random) { if (d...
  17239. t %10.1 = Identical %8.2, %10.0
  17240. void Assume %10.1, %8.5
  17241. val^? %10.3 = CastType %8.3
  17242. val^? %10.4 = CastType %8.4
  17243. env e10.5 = MkEnv depth=%10.3, random=%10.4, parent=<environment: 0x7f9246b48c88>
  17244. val %10.6 = Force %10.3, e10.5
  17245. real$' %10.7 = LdConst [1] 1
  17246. cp %10.8 = Checkpoint -> BB12 (by default) | BB11 (if coming from expect)
  17247. BB9
  17248. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  17249. void Deopt %9.0
  17250. BB12
  17251. t %12.0 = IsObject %10.6
  17252. void AssumeNot %12.0, %10.8
  17253. lgl' %12.2 = Eq %10.6, %10.7, elided
  17254. lgl %12.3 = AsLogical %12.2
  17255. t %12.4 = AsTest %12.3
  17256. void Branch %12.4 -> BB24 (if true) | BB13 (if false)
  17257. BB11
  17258. fs %11.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17259. fs %11.1 = FrameState 0x7f924457f3d0+58: [%10.6, %10.7], env=e10.5, next=%11.0
  17260. void Deopt %11.1
  17261. BB24
  17262. cls %24.0 = LdFun c, e10.5
  17263. prom %24.1 = MkArg missing, Prom(5), e10.5
  17264. fs %24.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17265. fs %24.3 = FrameState 0x7f924457f3d0+410: [], env=e10.5, next=%24.2
  17266. val^ %24.4 = Call %24.0(%24.1) %24.3, e10.5
  17267. goto BB28
  17268. BB13
  17269. cls %13.0 = LdFun vector, e10.5
  17270. cp %13.1 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  17271. BB28
  17272. val^ %28.0 = Phi %17.0:BB23, %24.4:BB24
  17273. val %28.1 = Force %28.0, e10.5
  17274. val^? %28.2 = LdVar array, e0.2
  17275. val %28.3 = Force %28.2, e0.2
  17276. val^? %28.4 = LdVar i, e0.2
  17277. val %28.5 = Force %28.4, e0.2
  17278. val %28.6 = EnsureNamed %28.1
  17279. val %28.7 = Subassign2_1D %28.6, %28.3, %28.5, e0.2
  17280. void StVar array, %28.7, e0.2
  17281. goto BB6
  17282. BB15
  17283. cls' %15.0 = LdConst function (mode = "logical", length = ...
  17284. t %15.1 = Identical %13.0, %15.0
  17285. void Assume %15.1, %13.1
  17286. str$' %15.3 = LdConst [1] "list"
  17287. real$' %15.4 = LdConst [1] 4
  17288. val %15.5 = CallSafeBuiltin vector(%15.3, %15.4)
  17289. void StVar array, %15.5, e10.5
  17290. goto BB16
  17291. BB14
  17292. fs %14.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17293. fs %14.1 = FrameState 0x7f924457f3d0+113: [%13.0], env=e10.5, next=%14.0
  17294. void Deopt %14.1
  17295. BB16
  17296. real$' %16.0 = LdConst [1] 1
  17297. real$' %16.1 = LdConst [1] 4
  17298. val' %16.2 = Colon %16.0, %16.1, elided
  17299. val' %16.3 = SetShared %16.2
  17300. int$' %16.4 = ForSeqSize %16.3
  17301. int$' %16.5 = LdConst [1] 0
  17302. goto BB17
  17303. BB17
  17304. val %17.0 = Phi %15.5:BB15, %22.12:BB22
  17305. int$' %17.1 = Phi %16.5:BB16, %17.3:BB22
  17306. int$' %17.2 = Inc %17.1
  17307. int$' %17.3 = EnsureNamed %17.2
  17308. goto BB18
  17309. BB18
  17310. lgl' %18.0 = Lt %16.4, %17.3, elided
  17311. t %18.1 = AsTest %18.0
  17312. void Branch %18.1 -> BB23 (if true) | BB19 (if false)
  17313. BB23
  17314. goto BB28
  17315. BB19
  17316. goto BB20
  17317. BB20
  17318. val$' %20.0 = Extract2_1D %16.3, %17.3, elided
  17319. void StVar i, %20.0, e10.5
  17320. cls %20.2 = LdFun buildTreeDepth, e10.5
  17321. prom %20.3 = MkArg missing, Prom(8), e10.5
  17322. prom %20.4 = MkArg missing, Prom(9), e10.5
  17323. cp %20.5 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  17324. BB22
  17325. cls' %22.0 = LdConst function (depth, random) { if (d...
  17326. t %22.1 = Identical %20.2, %22.0
  17327. void Assume %22.1, %20.5
  17328. fs %22.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17329. fs %22.4 = FrameState 0x7f924457f3d0+290: [%16.3, %16.4, %17.3], env=e10.5, next=%22.3
  17330. val^ %22.5 = StaticCall buildTreeDepth[0x7f92446010b0](%20.3, %20.4) %22.4, e10.5
  17331. val^? %22.6 = LdVar array, e10.5
  17332. val %22.7 = Force %22.6, e10.5
  17333. val^? %22.8 = LdVar i, e10.5
  17334. val %22.9 = Force %22.8, e10.5
  17335. val^ %22.10 = EnsureNamed %22.5
  17336. val %22.11 = Force %22.10, e10.5
  17337. val %22.12 = Subassign2_1D %22.11, %22.7, %22.9, e10.5
  17338. void StVar array, %22.12, e10.5
  17339. goto BB17
  17340. BB21
  17341. fs %21.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17342. fs %21.1 = FrameState 0x7f924457f3d0+273: [%16.3, %16.4, %17.3, %20.2], env=e10.5, next=%21.0
  17343. void Deopt %21.1
  17344. Prom 2:
  17345. BB0
  17346. env e0.0 = LdFunctionEnv
  17347. val^? %0.1 = LdVar depth, e0.0
  17348. val %0.2 = Force %0.1, e0.0
  17349. real$' %0.3 = LdConst [1] 1
  17350. goto BB1
  17351. BB1
  17352. val %1.0 = Sub %0.2, %0.3, e0.0
  17353. void Return %1.0
  17354. Prom 3:
  17355. BB0
  17356. env e0.0 = LdFunctionEnv
  17357. val^? %0.1 = LdVar random, e0.0
  17358. val %0.2 = Force %0.1, e0.0
  17359. void Return %0.2
  17360. Prom 4:
  17361. BB0
  17362. env e0.0 = LdFunctionEnv
  17363. cls %0.1 = LdFun nextRandom, e0.0
  17364. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17365. t %0.3 = Identical %0.1, %0.2
  17366. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17367. BB2
  17368. void Assume %0.3, %0.4
  17369. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17370. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17371. real$' %2.3 = LdConst [1] 10
  17372. goto BB3
  17373. BB1
  17374. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17375. void Deopt %1.0
  17376. BB3
  17377. val %3.0 = Force %2.2, e0.0
  17378. val %3.1 = Mod %3.0, %2.3, e0.0
  17379. real$' %3.2 = LdConst [1] 1
  17380. goto BB4
  17381. BB4
  17382. val %4.0 = Add %3.1, %3.2, e0.0
  17383. void Return %4.0
  17384. Prom 5:
  17385. BB0
  17386. env e0.0 = LdFunctionEnv
  17387. cls %0.1 = LdFun nextRandom, e0.0
  17388. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17389. t %0.3 = Identical %0.1, %0.2
  17390. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17391. BB2
  17392. void Assume %0.3, %0.4
  17393. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17394. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17395. real$' %2.3 = LdConst [1] 10
  17396. goto BB3
  17397. BB1
  17398. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17399. void Deopt %1.0
  17400. BB3
  17401. val %3.0 = Force %2.2, e0.0
  17402. val %3.1 = Mod %3.0, %2.3, e0.0
  17403. real$' %3.2 = LdConst [1] 1
  17404. goto BB4
  17405. BB4
  17406. val %4.0 = Add %3.1, %3.2, e0.0
  17407. void Return %4.0
  17408. Prom 8:
  17409. BB0
  17410. env e0.0 = LdFunctionEnv
  17411. val^? %0.1 = LdVar depth, e0.0
  17412. val %0.2 = Force %0.1, e0.0
  17413. real$' %0.3 = LdConst [1] 1
  17414. goto BB1
  17415. BB1
  17416. val %1.0 = Sub %0.2, %0.3, e0.0
  17417. void Return %1.0
  17418. Prom 9:
  17419. BB0
  17420. env e0.0 = LdFunctionEnv
  17421. val^? %0.1 = LdVar random, e0.0
  17422. val %0.2 = Force %0.1, e0.0
  17423. void Return %0.2
  17424. ├────── Inline closures: == 322
  17425. buildTreeDepth[0x7f92446010b0]
  17426. BB0
  17427. val^ %0.0 = LdArg 0
  17428. val^ %0.1 = LdArg 1
  17429. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  17430. val %0.3 = Force! %0.0, e0.2
  17431. real$' %0.4 = LdConst [1] 1
  17432. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17433. BB2
  17434. t %2.0 = IsObject %0.3
  17435. void AssumeNot %2.0, %0.5
  17436. lgl' %2.2 = Eq %0.3, %0.4, elided
  17437. lgl %2.3 = AsLogical %2.2
  17438. t %2.4 = AsTest %2.3
  17439. void Branch %2.4 -> BB26 (if true) | BB3 (if false)
  17440. BB1
  17441. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  17442. void Deopt %1.0
  17443. BB26
  17444. cls %26.0 = LdFun c, e0.2
  17445. prom %26.1 = MkArg missing, Prom(4), e0.2
  17446. fs %26.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  17447. val^ %26.3 = Call %26.0(%26.1) %26.2, e0.2
  17448. goto BB27
  17449. BB3
  17450. cls %3.0 = LdFun vector, e0.2
  17451. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  17452. BB27
  17453. val^ %27.0 = Phi %6.0:BB25, %26.3:BB26
  17454. val %27.1 = Force %27.0, e0.2
  17455. void Return %27.1
  17456. BB5
  17457. cls' %5.0 = LdConst function (mode = "logical", length = ...
  17458. t %5.1 = Identical %3.0, %5.0
  17459. void Assume %5.1, %3.1
  17460. real$' %5.3 = LdConst [1] 4
  17461. str$' %5.4 = LdConst [1] "list"
  17462. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  17463. void StVar array, %5.5, e0.2
  17464. real$' %5.7 = LdConst [1] 4
  17465. real$' %5.8 = LdConst [1] 1
  17466. val' %5.9 = Colon %5.8, %5.7, elided
  17467. val' %5.10 = SetShared %5.9
  17468. int$' %5.11 = ForSeqSize %5.10
  17469. int$' %5.12 = LdConst [1] 0
  17470. goto BB6
  17471. BB4
  17472. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  17473. void Deopt %4.0
  17474. BB6
  17475. val %6.0 = Phi %5.5:BB5, %28.7:BB28
  17476. int$' %6.1 = Phi %5.12:BB5, %6.3:BB28
  17477. int$' %6.2 = Inc %6.1
  17478. int$' %6.3 = EnsureNamed %6.2
  17479. lgl' %6.4 = Lt %5.11, %6.3, elided
  17480. t %6.5 = AsTest %6.4
  17481. void Branch %6.5 -> BB25 (if true) | BB7 (if false)
  17482. BB25
  17483. goto BB27
  17484. BB7
  17485. goto BB8
  17486. BB8
  17487. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  17488. void StVar i, %8.0, e0.2
  17489. cls %8.2 = LdFun buildTreeDepth, e0.2
  17490. prom %8.3 = MkArg missing, Prom(2), e0.2
  17491. prom %8.4 = MkArg missing, Prom(3), e0.2
  17492. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  17493. BB10
  17494. cls' %10.0 = LdConst function (depth, random) { if (d...
  17495. t %10.1 = Identical %8.2, %10.0
  17496. void Assume %10.1, %8.5
  17497. val^? %10.3 = CastType %8.3
  17498. val^? %10.4 = CastType %8.4
  17499. env e10.5 = MkEnv depth=%10.3, random=%10.4, parent=<environment: 0x7f9246b48c88>
  17500. val %10.6 = Force %10.3, e10.5
  17501. real$' %10.7 = LdConst [1] 1
  17502. cp %10.8 = Checkpoint -> BB12 (by default) | BB11 (if coming from expect)
  17503. BB9
  17504. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  17505. void Deopt %9.0
  17506. BB12
  17507. t %12.0 = IsObject %10.6
  17508. void AssumeNot %12.0, %10.8
  17509. lgl' %12.2 = Eq %10.6, %10.7, elided
  17510. lgl %12.3 = AsLogical %12.2
  17511. t %12.4 = AsTest %12.3
  17512. void Branch %12.4 -> BB24 (if true) | BB13 (if false)
  17513. BB11
  17514. fs %11.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17515. fs %11.1 = FrameState 0x7f924457f3d0+58: [%10.6, %10.7], env=e10.5, next=%11.0
  17516. void Deopt %11.1
  17517. BB24
  17518. cls %24.0 = LdFun c, e10.5
  17519. prom %24.1 = MkArg missing, Prom(5), e10.5
  17520. fs %24.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17521. fs %24.3 = FrameState 0x7f924457f3d0+410: [], env=e10.5, next=%24.2
  17522. val^ %24.4 = Call %24.0(%24.1) %24.3, e10.5
  17523. goto BB28
  17524. BB13
  17525. cls %13.0 = LdFun vector, e10.5
  17526. cp %13.1 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  17527. BB28
  17528. val^ %28.0 = Phi %17.0:BB23, %24.4:BB24
  17529. val %28.1 = Force %28.0, e10.5
  17530. val^? %28.2 = LdVar array, e0.2
  17531. val %28.3 = Force %28.2, e0.2
  17532. val^? %28.4 = LdVar i, e0.2
  17533. val %28.5 = Force %28.4, e0.2
  17534. val %28.6 = EnsureNamed %28.1
  17535. val %28.7 = Subassign2_1D %28.6, %28.3, %28.5, e0.2
  17536. void StVar array, %28.7, e0.2
  17537. goto BB6
  17538. BB15
  17539. cls' %15.0 = LdConst function (mode = "logical", length = ...
  17540. t %15.1 = Identical %13.0, %15.0
  17541. void Assume %15.1, %13.1
  17542. str$' %15.3 = LdConst [1] "list"
  17543. real$' %15.4 = LdConst [1] 4
  17544. val %15.5 = CallSafeBuiltin vector(%15.3, %15.4)
  17545. void StVar array, %15.5, e10.5
  17546. goto BB16
  17547. BB14
  17548. fs %14.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17549. fs %14.1 = FrameState 0x7f924457f3d0+113: [%13.0], env=e10.5, next=%14.0
  17550. void Deopt %14.1
  17551. BB16
  17552. real$' %16.0 = LdConst [1] 1
  17553. real$' %16.1 = LdConst [1] 4
  17554. val' %16.2 = Colon %16.0, %16.1, elided
  17555. val' %16.3 = SetShared %16.2
  17556. int$' %16.4 = ForSeqSize %16.3
  17557. int$' %16.5 = LdConst [1] 0
  17558. goto BB17
  17559. BB17
  17560. val %17.0 = Phi %15.5:BB15, %22.12:BB22
  17561. int$' %17.1 = Phi %16.5:BB16, %17.3:BB22
  17562. int$' %17.2 = Inc %17.1
  17563. int$' %17.3 = EnsureNamed %17.2
  17564. goto BB18
  17565. BB18
  17566. lgl' %18.0 = Lt %16.4, %17.3, elided
  17567. t %18.1 = AsTest %18.0
  17568. void Branch %18.1 -> BB23 (if true) | BB19 (if false)
  17569. BB23
  17570. goto BB28
  17571. BB19
  17572. goto BB20
  17573. BB20
  17574. val$' %20.0 = Extract2_1D %16.3, %17.3, elided
  17575. void StVar i, %20.0, e10.5
  17576. cls %20.2 = LdFun buildTreeDepth, e10.5
  17577. prom %20.3 = MkArg missing, Prom(8), e10.5
  17578. prom %20.4 = MkArg missing, Prom(9), e10.5
  17579. cp %20.5 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  17580. BB22
  17581. cls' %22.0 = LdConst function (depth, random) { if (d...
  17582. t %22.1 = Identical %20.2, %22.0
  17583. void Assume %22.1, %20.5
  17584. fs %22.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17585. fs %22.4 = FrameState 0x7f924457f3d0+290: [%16.3, %16.4, %17.3], env=e10.5, next=%22.3
  17586. val^ %22.5 = StaticCall buildTreeDepth[0x7f92446010b0](%20.3, %20.4) %22.4, e10.5
  17587. val^? %22.6 = LdVar array, e10.5
  17588. val %22.7 = Force %22.6, e10.5
  17589. val^? %22.8 = LdVar i, e10.5
  17590. val %22.9 = Force %22.8, e10.5
  17591. val^ %22.10 = EnsureNamed %22.5
  17592. val %22.11 = Force %22.10, e10.5
  17593. val %22.12 = Subassign2_1D %22.11, %22.7, %22.9, e10.5
  17594. void StVar array, %22.12, e10.5
  17595. goto BB17
  17596. BB21
  17597. fs %21.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17598. fs %21.1 = FrameState 0x7f924457f3d0+273: [%16.3, %16.4, %17.3, %20.2], env=e10.5, next=%21.0
  17599. void Deopt %21.1
  17600. Prom 2:
  17601. BB0
  17602. env e0.0 = LdFunctionEnv
  17603. val^? %0.1 = LdVar depth, e0.0
  17604. val %0.2 = Force %0.1, e0.0
  17605. real$' %0.3 = LdConst [1] 1
  17606. goto BB1
  17607. BB1
  17608. val %1.0 = Sub %0.2, %0.3, e0.0
  17609. void Return %1.0
  17610. Prom 3:
  17611. BB0
  17612. env e0.0 = LdFunctionEnv
  17613. val^? %0.1 = LdVar random, e0.0
  17614. val %0.2 = Force %0.1, e0.0
  17615. void Return %0.2
  17616. Prom 4:
  17617. BB0
  17618. env e0.0 = LdFunctionEnv
  17619. cls %0.1 = LdFun nextRandom, e0.0
  17620. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17621. t %0.3 = Identical %0.1, %0.2
  17622. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17623. BB2
  17624. void Assume %0.3, %0.4
  17625. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17626. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17627. real$' %2.3 = LdConst [1] 10
  17628. goto BB3
  17629. BB1
  17630. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17631. void Deopt %1.0
  17632. BB3
  17633. val %3.0 = Force %2.2, e0.0
  17634. val %3.1 = Mod %3.0, %2.3, e0.0
  17635. real$' %3.2 = LdConst [1] 1
  17636. goto BB4
  17637. BB4
  17638. val %4.0 = Add %3.1, %3.2, e0.0
  17639. void Return %4.0
  17640. Prom 5:
  17641. BB0
  17642. env e0.0 = LdFunctionEnv
  17643. cls %0.1 = LdFun nextRandom, e0.0
  17644. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17645. t %0.3 = Identical %0.1, %0.2
  17646. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17647. BB2
  17648. void Assume %0.3, %0.4
  17649. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17650. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17651. real$' %2.3 = LdConst [1] 10
  17652. goto BB3
  17653. BB1
  17654. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17655. void Deopt %1.0
  17656. BB3
  17657. val %3.0 = Force %2.2, e0.0
  17658. val %3.1 = Mod %3.0, %2.3, e0.0
  17659. real$' %3.2 = LdConst [1] 1
  17660. goto BB4
  17661. BB4
  17662. val %4.0 = Add %3.1, %3.2, e0.0
  17663. void Return %4.0
  17664. Prom 8:
  17665. BB0
  17666. env e0.0 = LdFunctionEnv
  17667. val^? %0.1 = LdVar depth, e0.0
  17668. val %0.2 = Force %0.1, e0.0
  17669. real$' %0.3 = LdConst [1] 1
  17670. goto BB1
  17671. BB1
  17672. val %1.0 = Sub %0.2, %0.3, e0.0
  17673. void Return %1.0
  17674. Prom 9:
  17675. BB0
  17676. env e0.0 = LdFunctionEnv
  17677. val^? %0.1 = LdVar random, e0.0
  17678. val %0.2 = Force %0.1, e0.0
  17679. void Return %0.2
  17680. ├────── Inline Promises: == 329
  17681. buildTreeDepth[0x7f92446010b0]
  17682. BB0
  17683. val^ %0.0 = LdArg 0
  17684. val^ %0.1 = LdArg 1
  17685. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  17686. val %0.3 = Force! %0.0, e0.2
  17687. real$' %0.4 = LdConst [1] 1
  17688. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17689. BB2
  17690. t %2.0 = IsObject %0.3
  17691. void AssumeNot %2.0, %0.5
  17692. lgl' %2.2 = Eq %0.3, %0.4, elided
  17693. lgl %2.3 = AsLogical %2.2
  17694. t %2.4 = AsTest %2.3
  17695. void Branch %2.4 -> BB26 (if true) | BB3 (if false)
  17696. BB1
  17697. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  17698. void Deopt %1.0
  17699. BB26
  17700. cls %26.0 = LdFun c, e0.2
  17701. prom %26.1 = MkArg missing, Prom(4), e0.2
  17702. fs %26.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  17703. val^ %26.3 = Call %26.0(%26.1) %26.2, e0.2
  17704. goto BB27
  17705. BB3
  17706. cls %3.0 = LdFun vector, e0.2
  17707. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  17708. BB27
  17709. val^ %27.0 = Phi %6.0:BB25, %26.3:BB26
  17710. val %27.1 = Force %27.0, e0.2
  17711. void Return %27.1
  17712. BB5
  17713. cls' %5.0 = LdConst function (mode = "logical", length = ...
  17714. t %5.1 = Identical %3.0, %5.0
  17715. void Assume %5.1, %3.1
  17716. real$' %5.3 = LdConst [1] 4
  17717. str$' %5.4 = LdConst [1] "list"
  17718. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  17719. void StVar array, %5.5, e0.2
  17720. real$' %5.7 = LdConst [1] 4
  17721. real$' %5.8 = LdConst [1] 1
  17722. val' %5.9 = Colon %5.8, %5.7, elided
  17723. val' %5.10 = SetShared %5.9
  17724. int$' %5.11 = ForSeqSize %5.10
  17725. int$' %5.12 = LdConst [1] 0
  17726. goto BB6
  17727. BB4
  17728. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  17729. void Deopt %4.0
  17730. BB6
  17731. val %6.0 = Phi %5.5:BB5, %28.7:BB28
  17732. int$' %6.1 = Phi %5.12:BB5, %6.3:BB28
  17733. int$' %6.2 = Inc %6.1
  17734. int$' %6.3 = EnsureNamed %6.2
  17735. lgl' %6.4 = Lt %5.11, %6.3, elided
  17736. t %6.5 = AsTest %6.4
  17737. void Branch %6.5 -> BB25 (if true) | BB7 (if false)
  17738. BB25
  17739. goto BB27
  17740. BB7
  17741. goto BB8
  17742. BB8
  17743. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  17744. void StVar i, %8.0, e0.2
  17745. cls %8.2 = LdFun buildTreeDepth, e0.2
  17746. prom %8.3 = MkArg missing, Prom(2), e0.2
  17747. prom %8.4 = MkArg missing, Prom(3), e0.2
  17748. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  17749. BB10
  17750. cls' %10.0 = LdConst function (depth, random) { if (d...
  17751. t %10.1 = Identical %8.2, %10.0
  17752. void Assume %10.1, %8.5
  17753. val^? %10.3 = CastType %8.3
  17754. val^? %10.4 = CastType %8.4
  17755. env e10.5 = MkEnv depth=%10.3, random=%10.4, parent=<environment: 0x7f9246b48c88>
  17756. val %10.6 = Force %10.3, e10.5
  17757. real$' %10.7 = LdConst [1] 1
  17758. cp %10.8 = Checkpoint -> BB12 (by default) | BB11 (if coming from expect)
  17759. BB9
  17760. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  17761. void Deopt %9.0
  17762. BB12
  17763. t %12.0 = IsObject %10.6
  17764. void AssumeNot %12.0, %10.8
  17765. lgl' %12.2 = Eq %10.6, %10.7, elided
  17766. lgl %12.3 = AsLogical %12.2
  17767. t %12.4 = AsTest %12.3
  17768. void Branch %12.4 -> BB24 (if true) | BB13 (if false)
  17769. BB11
  17770. fs %11.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17771. fs %11.1 = FrameState 0x7f924457f3d0+58: [%10.6, %10.7], env=e10.5, next=%11.0
  17772. void Deopt %11.1
  17773. BB24
  17774. cls %24.0 = LdFun c, e10.5
  17775. prom %24.1 = MkArg missing, Prom(5), e10.5
  17776. fs %24.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17777. fs %24.3 = FrameState 0x7f924457f3d0+410: [], env=e10.5, next=%24.2
  17778. val^ %24.4 = Call %24.0(%24.1) %24.3, e10.5
  17779. goto BB28
  17780. BB13
  17781. cls %13.0 = LdFun vector, e10.5
  17782. cp %13.1 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  17783. BB28
  17784. val^ %28.0 = Phi %17.0:BB23, %24.4:BB24
  17785. val %28.1 = Force %28.0, e10.5
  17786. val^? %28.2 = LdVar array, e0.2
  17787. val %28.3 = Force %28.2, e0.2
  17788. val^? %28.4 = LdVar i, e0.2
  17789. val %28.5 = Force %28.4, e0.2
  17790. val %28.6 = EnsureNamed %28.1
  17791. val %28.7 = Subassign2_1D %28.6, %28.3, %28.5, e0.2
  17792. void StVar array, %28.7, e0.2
  17793. goto BB6
  17794. BB15
  17795. cls' %15.0 = LdConst function (mode = "logical", length = ...
  17796. t %15.1 = Identical %13.0, %15.0
  17797. void Assume %15.1, %13.1
  17798. str$' %15.3 = LdConst [1] "list"
  17799. real$' %15.4 = LdConst [1] 4
  17800. val %15.5 = CallSafeBuiltin vector(%15.3, %15.4)
  17801. void StVar array, %15.5, e10.5
  17802. goto BB16
  17803. BB14
  17804. fs %14.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17805. fs %14.1 = FrameState 0x7f924457f3d0+113: [%13.0], env=e10.5, next=%14.0
  17806. void Deopt %14.1
  17807. BB16
  17808. real$' %16.0 = LdConst [1] 1
  17809. real$' %16.1 = LdConst [1] 4
  17810. val' %16.2 = Colon %16.0, %16.1, elided
  17811. val' %16.3 = SetShared %16.2
  17812. int$' %16.4 = ForSeqSize %16.3
  17813. int$' %16.5 = LdConst [1] 0
  17814. goto BB17
  17815. BB17
  17816. val %17.0 = Phi %15.5:BB15, %22.12:BB22
  17817. int$' %17.1 = Phi %16.5:BB16, %17.3:BB22
  17818. int$' %17.2 = Inc %17.1
  17819. int$' %17.3 = EnsureNamed %17.2
  17820. goto BB18
  17821. BB18
  17822. lgl' %18.0 = Lt %16.4, %17.3, elided
  17823. t %18.1 = AsTest %18.0
  17824. void Branch %18.1 -> BB23 (if true) | BB19 (if false)
  17825. BB23
  17826. goto BB28
  17827. BB19
  17828. goto BB20
  17829. BB20
  17830. val$' %20.0 = Extract2_1D %16.3, %17.3, elided
  17831. void StVar i, %20.0, e10.5
  17832. cls %20.2 = LdFun buildTreeDepth, e10.5
  17833. prom %20.3 = MkArg missing, Prom(8), e10.5
  17834. prom %20.4 = MkArg missing, Prom(9), e10.5
  17835. cp %20.5 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  17836. BB22
  17837. cls' %22.0 = LdConst function (depth, random) { if (d...
  17838. t %22.1 = Identical %20.2, %22.0
  17839. void Assume %22.1, %20.5
  17840. fs %22.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17841. fs %22.4 = FrameState 0x7f924457f3d0+290: [%16.3, %16.4, %17.3], env=e10.5, next=%22.3
  17842. val^ %22.5 = StaticCall buildTreeDepth[0x7f92446010b0](%20.3, %20.4) %22.4, e10.5
  17843. val^? %22.6 = LdVar array, e10.5
  17844. val %22.7 = Force %22.6, e10.5
  17845. val^? %22.8 = LdVar i, e10.5
  17846. val %22.9 = Force %22.8, e10.5
  17847. val^ %22.10 = EnsureNamed %22.5
  17848. val %22.11 = Force %22.10, e10.5
  17849. val %22.12 = Subassign2_1D %22.11, %22.7, %22.9, e10.5
  17850. void StVar array, %22.12, e10.5
  17851. goto BB17
  17852. BB21
  17853. fs %21.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  17854. fs %21.1 = FrameState 0x7f924457f3d0+273: [%16.3, %16.4, %17.3, %20.2], env=e10.5, next=%21.0
  17855. void Deopt %21.1
  17856. Prom 2:
  17857. BB0
  17858. env e0.0 = LdFunctionEnv
  17859. val^? %0.1 = LdVar depth, e0.0
  17860. val %0.2 = Force %0.1, e0.0
  17861. real$' %0.3 = LdConst [1] 1
  17862. goto BB1
  17863. BB1
  17864. val %1.0 = Sub %0.2, %0.3, e0.0
  17865. void Return %1.0
  17866. Prom 3:
  17867. BB0
  17868. env e0.0 = LdFunctionEnv
  17869. val^? %0.1 = LdVar random, e0.0
  17870. val %0.2 = Force %0.1, e0.0
  17871. void Return %0.2
  17872. Prom 4:
  17873. BB0
  17874. env e0.0 = LdFunctionEnv
  17875. cls %0.1 = LdFun nextRandom, e0.0
  17876. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17877. t %0.3 = Identical %0.1, %0.2
  17878. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17879. BB2
  17880. void Assume %0.3, %0.4
  17881. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17882. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17883. real$' %2.3 = LdConst [1] 10
  17884. goto BB3
  17885. BB1
  17886. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17887. void Deopt %1.0
  17888. BB3
  17889. val %3.0 = Force %2.2, e0.0
  17890. val %3.1 = Mod %3.0, %2.3, e0.0
  17891. real$' %3.2 = LdConst [1] 1
  17892. goto BB4
  17893. BB4
  17894. val %4.0 = Add %3.1, %3.2, e0.0
  17895. void Return %4.0
  17896. Prom 5:
  17897. BB0
  17898. env e0.0 = LdFunctionEnv
  17899. cls %0.1 = LdFun nextRandom, e0.0
  17900. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  17901. t %0.3 = Identical %0.1, %0.2
  17902. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17903. BB2
  17904. void Assume %0.3, %0.4
  17905. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  17906. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  17907. real$' %2.3 = LdConst [1] 10
  17908. goto BB3
  17909. BB1
  17910. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  17911. void Deopt %1.0
  17912. BB3
  17913. val %3.0 = Force %2.2, e0.0
  17914. val %3.1 = Mod %3.0, %2.3, e0.0
  17915. real$' %3.2 = LdConst [1] 1
  17916. goto BB4
  17917. BB4
  17918. val %4.0 = Add %3.1, %3.2, e0.0
  17919. void Return %4.0
  17920. Prom 8:
  17921. BB0
  17922. env e0.0 = LdFunctionEnv
  17923. val^? %0.1 = LdVar depth, e0.0
  17924. val %0.2 = Force %0.1, e0.0
  17925. real$' %0.3 = LdConst [1] 1
  17926. goto BB1
  17927. BB1
  17928. val %1.0 = Sub %0.2, %0.3, e0.0
  17929. void Return %1.0
  17930. Prom 9:
  17931. BB0
  17932. env e0.0 = LdFunctionEnv
  17933. val^? %0.1 = LdVar random, e0.0
  17934. val %0.2 = Force %0.1, e0.0
  17935. void Return %0.2
  17936. ├────── Scope resolution: == 336
  17937. buildTreeDepth[0x7f92446010b0]
  17938. BB0
  17939. val^ %0.0 = LdArg 0
  17940. val^ %0.1 = LdArg 1
  17941. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  17942. val %0.3 = Force! %0.0, e0.2
  17943. real$' %0.4 = LdConst [1] 1
  17944. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  17945. BB2
  17946. t %2.0 = IsObject %0.3
  17947. void AssumeNot %2.0, %0.5
  17948. lgl' %2.2 = Eq %0.3, %0.4, elided
  17949. lgl %2.3 = AsLogical %2.2
  17950. t %2.4 = AsTest %2.3
  17951. void Branch %2.4 -> BB26 (if true) | BB3 (if false)
  17952. BB1
  17953. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  17954. void Deopt %1.0
  17955. BB26
  17956. cls %26.0 = LdFun c, e0.2
  17957. prom %26.1 = MkArg missing, Prom(4), e0.2
  17958. fs %26.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  17959. val^ %26.3 = Call %26.0(%26.1) %26.2, e0.2
  17960. goto BB27
  17961. BB3
  17962. cls %3.0 = LdFun vector, e0.2
  17963. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  17964. BB27
  17965. val^ %27.0 = Phi %6.0:BB25, %26.3:BB26
  17966. val %27.1 = Force %27.0, e0.2
  17967. void Return %27.1
  17968. BB5
  17969. cls' %5.0 = LdConst function (mode = "logical", length = ...
  17970. t %5.1 = Identical %3.0, %5.0
  17971. void Assume %5.1, %3.1
  17972. real$' %5.3 = LdConst [1] 4
  17973. str$' %5.4 = LdConst [1] "list"
  17974. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  17975. void StVar array, %5.5, e0.2
  17976. real$' %5.7 = LdConst [1] 4
  17977. real$' %5.8 = LdConst [1] 1
  17978. val' %5.9 = Colon %5.8, %5.7, elided
  17979. val' %5.10 = SetShared %5.9
  17980. int$' %5.11 = ForSeqSize %5.10
  17981. int$' %5.12 = LdConst [1] 0
  17982. goto BB6
  17983. BB4
  17984. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  17985. void Deopt %4.0
  17986. BB6
  17987. val %6.0 = Phi %5.5:BB5, %28.7:BB28
  17988. int$' %6.1 = Phi %5.12:BB5, %6.3:BB28
  17989. int$' %6.2 = Inc %6.1
  17990. int$' %6.3 = EnsureNamed %6.2
  17991. lgl' %6.4 = Lt %5.11, %6.3, elided
  17992. t %6.5 = AsTest %6.4
  17993. void Branch %6.5 -> BB25 (if true) | BB7 (if false)
  17994. BB25
  17995. goto BB27
  17996. BB7
  17997. goto BB8
  17998. BB8
  17999. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  18000. void StVar i, %8.0, e0.2
  18001. cls %8.2 = LdFun buildTreeDepth, e0.2
  18002. prom %8.3 = MkArg missing, Prom(2), e0.2
  18003. prom %8.4 = MkArg missing, Prom(3), e0.2
  18004. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  18005. BB10
  18006. cls' %10.0 = LdConst function (depth, random) { if (d...
  18007. t %10.1 = Identical %8.2, %10.0
  18008. void Assume %10.1, %8.5
  18009. val^? %10.3 = CastType %8.3
  18010. val^? %10.4 = CastType %8.4
  18011. env e10.5 = MkEnv depth=%10.3, random=%10.4, parent=<environment: 0x7f9246b48c88>
  18012. val %10.6 = Force %10.3, e10.5
  18013. real$' %10.7 = LdConst [1] 1
  18014. cp %10.8 = Checkpoint -> BB12 (by default) | BB11 (if coming from expect)
  18015. BB9
  18016. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  18017. void Deopt %9.0
  18018. BB12
  18019. t %12.0 = IsObject %10.6
  18020. void AssumeNot %12.0, %10.8
  18021. lgl' %12.2 = Eq %10.6, %10.7, elided
  18022. lgl %12.3 = AsLogical %12.2
  18023. t %12.4 = AsTest %12.3
  18024. void Branch %12.4 -> BB24 (if true) | BB13 (if false)
  18025. BB11
  18026. fs %11.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18027. fs %11.1 = FrameState 0x7f924457f3d0+58: [%10.6, %10.7], env=e10.5, next=%11.0
  18028. void Deopt %11.1
  18029. BB24
  18030. cls %24.0 = LdFun c, e10.5
  18031. prom %24.1 = MkArg missing, Prom(5), e10.5
  18032. fs %24.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18033. fs %24.3 = FrameState 0x7f924457f3d0+410: [], env=e10.5, next=%24.2
  18034. val^ %24.4 = Call %24.0(%24.1) %24.3, e10.5
  18035. goto BB28
  18036. BB13
  18037. cls %13.0 = LdFun vector, e10.5
  18038. cp %13.1 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  18039. BB28
  18040. val^ %28.0 = Phi %17.0:BB23, %24.4:BB24
  18041. val %28.1 = Force %28.0, e10.5
  18042. val^? %28.2 = LdVar array, e0.2
  18043. val %28.3 = Force %28.2, e0.2
  18044. val^? %28.4 = LdVar i, e0.2
  18045. val %28.5 = Force %28.4, e0.2
  18046. val %28.6 = EnsureNamed %28.1
  18047. val %28.7 = Subassign2_1D %28.6, %28.3, %28.5, e0.2
  18048. void StVar array, %28.7, e0.2
  18049. goto BB6
  18050. BB15
  18051. cls' %15.0 = LdConst function (mode = "logical", length = ...
  18052. t %15.1 = Identical %13.0, %15.0
  18053. void Assume %15.1, %13.1
  18054. str$' %15.3 = LdConst [1] "list"
  18055. real$' %15.4 = LdConst [1] 4
  18056. val %15.5 = CallSafeBuiltin vector(%15.3, %15.4)
  18057. void StVar array, %15.5, e10.5
  18058. goto BB16
  18059. BB14
  18060. fs %14.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18061. fs %14.1 = FrameState 0x7f924457f3d0+113: [%13.0], env=e10.5, next=%14.0
  18062. void Deopt %14.1
  18063. BB16
  18064. real$' %16.0 = LdConst [1] 1
  18065. real$' %16.1 = LdConst [1] 4
  18066. val' %16.2 = Colon %16.0, %16.1, elided
  18067. val' %16.3 = SetShared %16.2
  18068. int$' %16.4 = ForSeqSize %16.3
  18069. int$' %16.5 = LdConst [1] 0
  18070. goto BB17
  18071. BB17
  18072. val %17.0 = Phi %15.5:BB15, %22.12:BB22
  18073. int$' %17.1 = Phi %16.5:BB16, %17.3:BB22
  18074. int$' %17.2 = Inc %17.1
  18075. int$' %17.3 = EnsureNamed %17.2
  18076. goto BB18
  18077. BB18
  18078. lgl' %18.0 = Lt %16.4, %17.3, elided
  18079. t %18.1 = AsTest %18.0
  18080. void Branch %18.1 -> BB23 (if true) | BB19 (if false)
  18081. BB23
  18082. goto BB28
  18083. BB19
  18084. goto BB20
  18085. BB20
  18086. val$' %20.0 = Extract2_1D %16.3, %17.3, elided
  18087. void StVar i, %20.0, e10.5
  18088. cls %20.2 = LdFun buildTreeDepth, e10.5
  18089. prom %20.3 = MkArg missing, Prom(8), e10.5
  18090. prom %20.4 = MkArg missing, Prom(9), e10.5
  18091. cp %20.5 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  18092. BB22
  18093. cls' %22.0 = LdConst function (depth, random) { if (d...
  18094. t %22.1 = Identical %20.2, %22.0
  18095. void Assume %22.1, %20.5
  18096. fs %22.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18097. fs %22.4 = FrameState 0x7f924457f3d0+290: [%16.3, %16.4, %17.3], env=e10.5, next=%22.3
  18098. val^ %22.5 = StaticCall buildTreeDepth[0x7f92446010b0](%20.3, %20.4) %22.4, e10.5
  18099. val^? %22.6 = LdVar array, e10.5
  18100. val %22.7 = Force %22.6, e10.5
  18101. val^? %22.8 = LdVar i, e10.5
  18102. val %22.9 = Force %22.8, e10.5
  18103. val^ %22.10 = EnsureNamed %22.5
  18104. val %22.11 = Force %22.10, e10.5
  18105. val %22.12 = Subassign2_1D %22.11, %22.7, %22.9, e10.5
  18106. void StVar array, %22.12, e10.5
  18107. goto BB17
  18108. BB21
  18109. fs %21.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18110. fs %21.1 = FrameState 0x7f924457f3d0+273: [%16.3, %16.4, %17.3, %20.2], env=e10.5, next=%21.0
  18111. void Deopt %21.1
  18112. Prom 2:
  18113. BB0
  18114. env e0.0 = LdFunctionEnv
  18115. val^? %0.1 = LdVar depth, e0.0
  18116. val %0.2 = Force %0.1, e0.0
  18117. real$' %0.3 = LdConst [1] 1
  18118. goto BB1
  18119. BB1
  18120. val %1.0 = Sub %0.2, %0.3, e0.0
  18121. void Return %1.0
  18122. Prom 3:
  18123. BB0
  18124. env e0.0 = LdFunctionEnv
  18125. val^? %0.1 = LdVar random, e0.0
  18126. val %0.2 = Force %0.1, e0.0
  18127. void Return %0.2
  18128. Prom 4:
  18129. BB0
  18130. env e0.0 = LdFunctionEnv
  18131. cls %0.1 = LdFun nextRandom, e0.0
  18132. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18133. t %0.3 = Identical %0.1, %0.2
  18134. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18135. BB2
  18136. void Assume %0.3, %0.4
  18137. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18138. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18139. real$' %2.3 = LdConst [1] 10
  18140. goto BB3
  18141. BB1
  18142. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18143. void Deopt %1.0
  18144. BB3
  18145. val %3.0 = Force %2.2, e0.0
  18146. val %3.1 = Mod %3.0, %2.3, e0.0
  18147. real$' %3.2 = LdConst [1] 1
  18148. goto BB4
  18149. BB4
  18150. val %4.0 = Add %3.1, %3.2, e0.0
  18151. void Return %4.0
  18152. Prom 5:
  18153. BB0
  18154. env e0.0 = LdFunctionEnv
  18155. cls %0.1 = LdFun nextRandom, e0.0
  18156. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18157. t %0.3 = Identical %0.1, %0.2
  18158. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18159. BB2
  18160. void Assume %0.3, %0.4
  18161. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18162. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18163. real$' %2.3 = LdConst [1] 10
  18164. goto BB3
  18165. BB1
  18166. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18167. void Deopt %1.0
  18168. BB3
  18169. val %3.0 = Force %2.2, e0.0
  18170. val %3.1 = Mod %3.0, %2.3, e0.0
  18171. real$' %3.2 = LdConst [1] 1
  18172. goto BB4
  18173. BB4
  18174. val %4.0 = Add %3.1, %3.2, e0.0
  18175. void Return %4.0
  18176. Prom 8:
  18177. BB0
  18178. env e0.0 = LdFunctionEnv
  18179. val^? %0.1 = LdVar depth, e0.0
  18180. val %0.2 = Force %0.1, e0.0
  18181. real$' %0.3 = LdConst [1] 1
  18182. goto BB1
  18183. BB1
  18184. val %1.0 = Sub %0.2, %0.3, e0.0
  18185. void Return %1.0
  18186. Prom 9:
  18187. BB0
  18188. env e0.0 = LdFunctionEnv
  18189. val^? %0.1 = LdVar random, e0.0
  18190. val %0.2 = Force %0.1, e0.0
  18191. void Return %0.2
  18192. ├────── Constant folding: == 343
  18193. buildTreeDepth[0x7f92446010b0]
  18194. BB0
  18195. val^ %0.0 = LdArg 0
  18196. val^ %0.1 = LdArg 1
  18197. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  18198. val %0.3 = Force! %0.0, e0.2
  18199. real$' %0.4 = LdConst [1] 1
  18200. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18201. BB2
  18202. t %2.0 = IsObject %0.3
  18203. void AssumeNot %2.0, %0.5
  18204. lgl' %2.2 = Eq %0.3, %0.4, elided
  18205. lgl %2.3 = AsLogical %2.2
  18206. t %2.4 = AsTest %2.3
  18207. void Branch %2.4 -> BB26 (if true) | BB3 (if false)
  18208. BB1
  18209. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  18210. void Deopt %1.0
  18211. BB26
  18212. cls %26.0 = LdFun c, e0.2
  18213. prom %26.1 = MkArg missing, Prom(4), e0.2
  18214. fs %26.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  18215. val^ %26.3 = Call %26.0(%26.1) %26.2, e0.2
  18216. goto BB27
  18217. BB3
  18218. cls %3.0 = LdFun vector, e0.2
  18219. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  18220. BB27
  18221. val^ %27.0 = Phi %6.0:BB25, %26.3:BB26
  18222. val %27.1 = Force %27.0, e0.2
  18223. void Return %27.1
  18224. BB5
  18225. cls' %5.0 = LdConst function (mode = "logical", length = ...
  18226. t %5.1 = Identical %3.0, %5.0
  18227. void Assume %5.1, %3.1
  18228. real$' %5.3 = LdConst [1] 4
  18229. str$' %5.4 = LdConst [1] "list"
  18230. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  18231. void StVar array, %5.5, e0.2
  18232. real$' %5.7 = LdConst [1] 4
  18233. real$' %5.8 = LdConst [1] 1
  18234. val' %5.9 = Colon %5.8, %5.7, elided
  18235. val' %5.10 = SetShared %5.9
  18236. int$' %5.11 = ForSeqSize %5.10
  18237. int$' %5.12 = LdConst [1] 0
  18238. goto BB6
  18239. BB4
  18240. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  18241. void Deopt %4.0
  18242. BB6
  18243. val %6.0 = Phi %5.5:BB5, %28.7:BB28
  18244. int$' %6.1 = Phi %5.12:BB5, %6.3:BB28
  18245. int$' %6.2 = Inc %6.1
  18246. int$' %6.3 = EnsureNamed %6.2
  18247. lgl' %6.4 = Lt %5.11, %6.3, elided
  18248. t %6.5 = AsTest %6.4
  18249. void Branch %6.5 -> BB25 (if true) | BB7 (if false)
  18250. BB25
  18251. goto BB27
  18252. BB7
  18253. goto BB8
  18254. BB8
  18255. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  18256. void StVar i, %8.0, e0.2
  18257. cls %8.2 = LdFun buildTreeDepth, e0.2
  18258. prom %8.3 = MkArg missing, Prom(2), e0.2
  18259. prom %8.4 = MkArg missing, Prom(3), e0.2
  18260. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  18261. BB10
  18262. cls' %10.0 = LdConst function (depth, random) { if (d...
  18263. t %10.1 = Identical %8.2, %10.0
  18264. void Assume %10.1, %8.5
  18265. val^? %10.3 = CastType %8.3
  18266. val^? %10.4 = CastType %8.4
  18267. env e10.5 = MkEnv depth=%10.3, random=%10.4, parent=<environment: 0x7f9246b48c88>
  18268. val %10.6 = Force %10.3, e10.5
  18269. real$' %10.7 = LdConst [1] 1
  18270. cp %10.8 = Checkpoint -> BB12 (by default) | BB11 (if coming from expect)
  18271. BB9
  18272. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  18273. void Deopt %9.0
  18274. BB12
  18275. t %12.0 = IsObject %10.6
  18276. void AssumeNot %12.0, %10.8
  18277. lgl' %12.2 = Eq %10.6, %10.7, elided
  18278. lgl %12.3 = AsLogical %12.2
  18279. t %12.4 = AsTest %12.3
  18280. void Branch %12.4 -> BB24 (if true) | BB13 (if false)
  18281. BB11
  18282. fs %11.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18283. fs %11.1 = FrameState 0x7f924457f3d0+58: [%10.6, %10.7], env=e10.5, next=%11.0
  18284. void Deopt %11.1
  18285. BB24
  18286. cls %24.0 = LdFun c, e10.5
  18287. prom %24.1 = MkArg missing, Prom(5), e10.5
  18288. fs %24.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18289. fs %24.3 = FrameState 0x7f924457f3d0+410: [], env=e10.5, next=%24.2
  18290. val^ %24.4 = Call %24.0(%24.1) %24.3, e10.5
  18291. goto BB28
  18292. BB13
  18293. cls %13.0 = LdFun vector, e10.5
  18294. cp %13.1 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  18295. BB28
  18296. val^ %28.0 = Phi %17.0:BB23, %24.4:BB24
  18297. val %28.1 = Force %28.0, e10.5
  18298. val^? %28.2 = LdVar array, e0.2
  18299. val %28.3 = Force %28.2, e0.2
  18300. val^? %28.4 = LdVar i, e0.2
  18301. val %28.5 = Force %28.4, e0.2
  18302. val %28.6 = EnsureNamed %28.1
  18303. val %28.7 = Subassign2_1D %28.6, %28.3, %28.5, e0.2
  18304. void StVar array, %28.7, e0.2
  18305. goto BB6
  18306. BB15
  18307. cls' %15.0 = LdConst function (mode = "logical", length = ...
  18308. t %15.1 = Identical %13.0, %15.0
  18309. void Assume %15.1, %13.1
  18310. str$' %15.3 = LdConst [1] "list"
  18311. real$' %15.4 = LdConst [1] 4
  18312. val %15.5 = CallSafeBuiltin vector(%15.3, %15.4)
  18313. void StVar array, %15.5, e10.5
  18314. goto BB16
  18315. BB14
  18316. fs %14.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18317. fs %14.1 = FrameState 0x7f924457f3d0+113: [%13.0], env=e10.5, next=%14.0
  18318. void Deopt %14.1
  18319. BB16
  18320. real$' %16.0 = LdConst [1] 1
  18321. real$' %16.1 = LdConst [1] 4
  18322. val' %16.2 = Colon %16.0, %16.1, elided
  18323. val' %16.3 = SetShared %16.2
  18324. int$' %16.4 = ForSeqSize %16.3
  18325. int$' %16.5 = LdConst [1] 0
  18326. goto BB17
  18327. BB17
  18328. val %17.0 = Phi %15.5:BB15, %22.12:BB22
  18329. int$' %17.1 = Phi %16.5:BB16, %17.3:BB22
  18330. int$' %17.2 = Inc %17.1
  18331. int$' %17.3 = EnsureNamed %17.2
  18332. goto BB18
  18333. BB18
  18334. lgl' %18.0 = Lt %16.4, %17.3, elided
  18335. t %18.1 = AsTest %18.0
  18336. void Branch %18.1 -> BB23 (if true) | BB19 (if false)
  18337. BB23
  18338. goto BB28
  18339. BB19
  18340. goto BB20
  18341. BB20
  18342. val$' %20.0 = Extract2_1D %16.3, %17.3, elided
  18343. void StVar i, %20.0, e10.5
  18344. cls %20.2 = LdFun buildTreeDepth, e10.5
  18345. prom %20.3 = MkArg missing, Prom(8), e10.5
  18346. prom %20.4 = MkArg missing, Prom(9), e10.5
  18347. cp %20.5 = Checkpoint -> BB22 (by default) | BB21 (if coming from expect)
  18348. BB22
  18349. cls' %22.0 = LdConst function (depth, random) { if (d...
  18350. t %22.1 = Identical %20.2, %22.0
  18351. void Assume %22.1, %20.5
  18352. fs %22.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18353. fs %22.4 = FrameState 0x7f924457f3d0+290: [%16.3, %16.4, %17.3], env=e10.5, next=%22.3
  18354. val^ %22.5 = StaticCall buildTreeDepth[0x7f92446010b0](%20.3, %20.4) %22.4, e10.5
  18355. val^? %22.6 = LdVar array, e10.5
  18356. val %22.7 = Force %22.6, e10.5
  18357. val^? %22.8 = LdVar i, e10.5
  18358. val %22.9 = Force %22.8, e10.5
  18359. val^ %22.10 = EnsureNamed %22.5
  18360. val %22.11 = Force %22.10, e10.5
  18361. val %22.12 = Subassign2_1D %22.11, %22.7, %22.9, e10.5
  18362. void StVar array, %22.12, e10.5
  18363. goto BB17
  18364. BB21
  18365. fs %21.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18366. fs %21.1 = FrameState 0x7f924457f3d0+273: [%16.3, %16.4, %17.3, %20.2], env=e10.5, next=%21.0
  18367. void Deopt %21.1
  18368. Prom 2:
  18369. BB0
  18370. env e0.0 = LdFunctionEnv
  18371. val^? %0.1 = LdVar depth, e0.0
  18372. val %0.2 = Force %0.1, e0.0
  18373. real$' %0.3 = LdConst [1] 1
  18374. goto BB1
  18375. BB1
  18376. val %1.0 = Sub %0.2, %0.3, e0.0
  18377. void Return %1.0
  18378. Prom 3:
  18379. BB0
  18380. env e0.0 = LdFunctionEnv
  18381. val^? %0.1 = LdVar random, e0.0
  18382. val %0.2 = Force %0.1, e0.0
  18383. void Return %0.2
  18384. Prom 4:
  18385. BB0
  18386. env e0.0 = LdFunctionEnv
  18387. cls %0.1 = LdFun nextRandom, e0.0
  18388. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18389. t %0.3 = Identical %0.1, %0.2
  18390. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18391. BB2
  18392. void Assume %0.3, %0.4
  18393. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18394. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18395. real$' %2.3 = LdConst [1] 10
  18396. goto BB3
  18397. BB1
  18398. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18399. void Deopt %1.0
  18400. BB3
  18401. val %3.0 = Force %2.2, e0.0
  18402. val %3.1 = Mod %3.0, %2.3, e0.0
  18403. real$' %3.2 = LdConst [1] 1
  18404. goto BB4
  18405. BB4
  18406. val %4.0 = Add %3.1, %3.2, e0.0
  18407. void Return %4.0
  18408. Prom 5:
  18409. BB0
  18410. env e0.0 = LdFunctionEnv
  18411. cls %0.1 = LdFun nextRandom, e0.0
  18412. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18413. t %0.3 = Identical %0.1, %0.2
  18414. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18415. BB2
  18416. void Assume %0.3, %0.4
  18417. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18418. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18419. real$' %2.3 = LdConst [1] 10
  18420. goto BB3
  18421. BB1
  18422. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18423. void Deopt %1.0
  18424. BB3
  18425. val %3.0 = Force %2.2, e0.0
  18426. val %3.1 = Mod %3.0, %2.3, e0.0
  18427. real$' %3.2 = LdConst [1] 1
  18428. goto BB4
  18429. BB4
  18430. val %4.0 = Add %3.1, %3.2, e0.0
  18431. void Return %4.0
  18432. Prom 8:
  18433. BB0
  18434. env e0.0 = LdFunctionEnv
  18435. val^? %0.1 = LdVar depth, e0.0
  18436. val %0.2 = Force %0.1, e0.0
  18437. real$' %0.3 = LdConst [1] 1
  18438. goto BB1
  18439. BB1
  18440. val %1.0 = Sub %0.2, %0.3, e0.0
  18441. void Return %1.0
  18442. Prom 9:
  18443. BB0
  18444. env e0.0 = LdFunctionEnv
  18445. val^? %0.1 = LdVar random, e0.0
  18446. val %0.2 = Force %0.1, e0.0
  18447. void Return %0.2
  18448. ├────── Cleanup redundant operations: == 350
  18449. buildTreeDepth[0x7f92446010b0]
  18450. BB0
  18451. val^ %0.0 = LdArg 0
  18452. val^ %0.1 = LdArg 1
  18453. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  18454. val %0.3 = Force! %0.0, e0.2
  18455. real$' %0.4 = LdConst [1] 1
  18456. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18457. BB2
  18458. t %2.0 = IsObject %0.3
  18459. void AssumeNot %2.0, %0.5
  18460. lgl' %2.2 = Eq %0.3, %0.4, elided
  18461. lgl %2.3 = AsLogical %2.2
  18462. t %2.4 = AsTest %2.3
  18463. void Branch %2.4 -> BB25 (if true) | BB3 (if false)
  18464. BB1
  18465. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  18466. void Deopt %1.0
  18467. BB25
  18468. cls %25.0 = LdFun c, e0.2
  18469. prom %25.1 = MkArg missing, Prom(4), e0.2
  18470. fs %25.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  18471. val^ %25.3 = Call %25.0(%25.1) %25.2, e0.2
  18472. goto BB26
  18473. BB3
  18474. cls %3.0 = LdFun vector, e0.2
  18475. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  18476. BB26
  18477. val^ %26.0 = Phi %6.0:BB24, %25.3:BB25
  18478. val %26.1 = Force %26.0, e0.2
  18479. void Return %26.1
  18480. BB5
  18481. cls' %5.0 = LdConst function (mode = "logical", length = ...
  18482. t %5.1 = Identical %3.0, %5.0
  18483. void Assume %5.1, %3.1
  18484. real$' %5.3 = LdConst [1] 4
  18485. str$' %5.4 = LdConst [1] "list"
  18486. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  18487. void StVar array, %5.5, e0.2
  18488. real$' %5.7 = LdConst [1] 4
  18489. real$' %5.8 = LdConst [1] 1
  18490. val' %5.9 = Colon %5.8, %5.7, elided
  18491. val' %5.10 = SetShared %5.9
  18492. int$' %5.11 = ForSeqSize %5.10
  18493. int$' %5.12 = LdConst [1] 0
  18494. goto BB6
  18495. BB4
  18496. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  18497. void Deopt %4.0
  18498. BB6
  18499. val %6.0 = Phi %5.5:BB5, %27.7:BB27
  18500. int$' %6.1 = Phi %5.12:BB5, %6.3:BB27
  18501. int$' %6.2 = Inc %6.1
  18502. int$' %6.3 = EnsureNamed %6.2
  18503. lgl' %6.4 = Lt %5.11, %6.3, elided
  18504. t %6.5 = AsTest %6.4
  18505. void Branch %6.5 -> BB24 (if true) | BB7 (if false)
  18506. BB24
  18507. goto BB26
  18508. BB7
  18509. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  18510. void StVar i, %7.0, e0.2
  18511. cls %7.2 = LdFun buildTreeDepth, e0.2
  18512. prom %7.3 = MkArg missing, Prom(2), e0.2
  18513. prom %7.4 = MkArg missing, Prom(3), e0.2
  18514. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  18515. BB9
  18516. cls' %9.0 = LdConst function (depth, random) { if (d...
  18517. t %9.1 = Identical %7.2, %9.0
  18518. void Assume %9.1, %7.5
  18519. val^? %9.3 = CastType %7.3
  18520. val^? %9.4 = CastType %7.4
  18521. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  18522. val %9.6 = Force %9.3, e9.5
  18523. real$' %9.7 = LdConst [1] 1
  18524. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  18525. BB8
  18526. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  18527. void Deopt %8.0
  18528. BB11
  18529. t %11.0 = IsObject %9.6
  18530. void AssumeNot %11.0, %9.8
  18531. lgl' %11.2 = Eq %9.6, %9.7, elided
  18532. lgl %11.3 = AsLogical %11.2
  18533. t %11.4 = AsTest %11.3
  18534. void Branch %11.4 -> BB23 (if true) | BB12 (if false)
  18535. BB10
  18536. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18537. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  18538. void Deopt %10.1
  18539. BB23
  18540. cls %23.0 = LdFun c, e9.5
  18541. prom %23.1 = MkArg missing, Prom(5), e9.5
  18542. fs %23.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18543. fs %23.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%23.2
  18544. val^ %23.4 = Call %23.0(%23.1) %23.3, e9.5
  18545. goto BB27
  18546. BB12
  18547. cls %12.0 = LdFun vector, e9.5
  18548. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  18549. BB27
  18550. val^ %27.0 = Phi %16.0:BB22, %23.4:BB23
  18551. val %27.1 = Force %27.0, e9.5
  18552. val^? %27.2 = LdVar array, e0.2
  18553. val %27.3 = Force %27.2, e0.2
  18554. val^? %27.4 = LdVar i, e0.2
  18555. val %27.5 = Force %27.4, e0.2
  18556. val %27.6 = EnsureNamed %27.1
  18557. val %27.7 = Subassign2_1D %27.6, %27.3, %27.5, e0.2
  18558. void StVar array, %27.7, e0.2
  18559. goto BB6
  18560. BB14
  18561. cls' %14.0 = LdConst function (mode = "logical", length = ...
  18562. t %14.1 = Identical %12.0, %14.0
  18563. void Assume %14.1, %12.1
  18564. str$' %14.3 = LdConst [1] "list"
  18565. real$' %14.4 = LdConst [1] 4
  18566. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  18567. void StVar array, %14.5, e9.5
  18568. goto BB15
  18569. BB13
  18570. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18571. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  18572. void Deopt %13.1
  18573. BB15
  18574. real$' %15.0 = LdConst [1] 1
  18575. real$' %15.1 = LdConst [1] 4
  18576. val' %15.2 = Colon %15.0, %15.1, elided
  18577. val' %15.3 = SetShared %15.2
  18578. int$' %15.4 = ForSeqSize %15.3
  18579. int$' %15.5 = LdConst [1] 0
  18580. goto BB16
  18581. BB16
  18582. val %16.0 = Phi %14.5:BB14, %21.12:BB21
  18583. int$' %16.1 = Phi %15.5:BB15, %16.3:BB21
  18584. int$' %16.2 = Inc %16.1
  18585. int$' %16.3 = EnsureNamed %16.2
  18586. goto BB17
  18587. BB17
  18588. lgl' %17.0 = Lt %15.4, %16.3, elided
  18589. t %17.1 = AsTest %17.0
  18590. void Branch %17.1 -> BB22 (if true) | BB18 (if false)
  18591. BB22
  18592. goto BB27
  18593. BB18
  18594. goto BB19
  18595. BB19
  18596. val$' %19.0 = Extract2_1D %15.3, %16.3, elided
  18597. void StVar i, %19.0, e9.5
  18598. cls %19.2 = LdFun buildTreeDepth, e9.5
  18599. prom %19.3 = MkArg missing, Prom(8), e9.5
  18600. prom %19.4 = MkArg missing, Prom(9), e9.5
  18601. cp %19.5 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  18602. BB21
  18603. cls' %21.0 = LdConst function (depth, random) { if (d...
  18604. t %21.1 = Identical %19.2, %21.0
  18605. void Assume %21.1, %19.5
  18606. fs %21.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18607. fs %21.4 = FrameState 0x7f924457f3d0+290: [%15.3, %15.4, %16.3], env=e9.5, next=%21.3
  18608. val^ %21.5 = StaticCall buildTreeDepth[0x7f92446010b0](%19.3, %19.4) %21.4, e9.5
  18609. val^? %21.6 = LdVar array, e9.5
  18610. val %21.7 = Force %21.6, e9.5
  18611. val^? %21.8 = LdVar i, e9.5
  18612. val %21.9 = Force %21.8, e9.5
  18613. val^ %21.10 = EnsureNamed %21.5
  18614. val %21.11 = Force %21.10, e9.5
  18615. val %21.12 = Subassign2_1D %21.11, %21.7, %21.9, e9.5
  18616. void StVar array, %21.12, e9.5
  18617. goto BB16
  18618. BB20
  18619. fs %20.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18620. fs %20.1 = FrameState 0x7f924457f3d0+273: [%15.3, %15.4, %16.3, %19.2], env=e9.5, next=%20.0
  18621. void Deopt %20.1
  18622. Prom 2:
  18623. BB0
  18624. env e0.0 = LdFunctionEnv
  18625. val^? %0.1 = LdVar depth, e0.0
  18626. val %0.2 = Force %0.1, e0.0
  18627. real$' %0.3 = LdConst [1] 1
  18628. goto BB1
  18629. BB1
  18630. val %1.0 = Sub %0.2, %0.3, e0.0
  18631. void Return %1.0
  18632. Prom 3:
  18633. BB0
  18634. env e0.0 = LdFunctionEnv
  18635. val^? %0.1 = LdVar random, e0.0
  18636. val %0.2 = Force %0.1, e0.0
  18637. void Return %0.2
  18638. Prom 4:
  18639. BB0
  18640. env e0.0 = LdFunctionEnv
  18641. cls %0.1 = LdFun nextRandom, e0.0
  18642. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18643. t %0.3 = Identical %0.1, %0.2
  18644. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18645. BB2
  18646. void Assume %0.3, %0.4
  18647. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18648. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18649. real$' %2.3 = LdConst [1] 10
  18650. goto BB3
  18651. BB1
  18652. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18653. void Deopt %1.0
  18654. BB3
  18655. val %3.0 = Force %2.2, e0.0
  18656. val %3.1 = Mod %3.0, %2.3, e0.0
  18657. real$' %3.2 = LdConst [1] 1
  18658. goto BB4
  18659. BB4
  18660. val %4.0 = Add %3.1, %3.2, e0.0
  18661. void Return %4.0
  18662. Prom 5:
  18663. BB0
  18664. env e0.0 = LdFunctionEnv
  18665. cls %0.1 = LdFun nextRandom, e0.0
  18666. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18667. t %0.3 = Identical %0.1, %0.2
  18668. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18669. BB2
  18670. void Assume %0.3, %0.4
  18671. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18672. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18673. real$' %2.3 = LdConst [1] 10
  18674. goto BB3
  18675. BB1
  18676. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18677. void Deopt %1.0
  18678. BB3
  18679. val %3.0 = Force %2.2, e0.0
  18680. val %3.1 = Mod %3.0, %2.3, e0.0
  18681. real$' %3.2 = LdConst [1] 1
  18682. goto BB4
  18683. BB4
  18684. val %4.0 = Add %3.1, %3.2, e0.0
  18685. void Return %4.0
  18686. Prom 8:
  18687. BB0
  18688. env e0.0 = LdFunctionEnv
  18689. val^? %0.1 = LdVar depth, e0.0
  18690. val %0.2 = Force %0.1, e0.0
  18691. real$' %0.3 = LdConst [1] 1
  18692. goto BB1
  18693. BB1
  18694. val %1.0 = Sub %0.2, %0.3, e0.0
  18695. void Return %1.0
  18696. Prom 9:
  18697. BB0
  18698. env e0.0 = LdFunctionEnv
  18699. val^? %0.1 = LdVar random, e0.0
  18700. val %0.2 = Force %0.1, e0.0
  18701. void Return %0.2
  18702. ├────── Delay instructions: == 357
  18703. buildTreeDepth[0x7f92446010b0]
  18704. BB0
  18705. val^ %0.0 = LdArg 0
  18706. val^ %0.1 = LdArg 1
  18707. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  18708. val %0.3 = Force! %0.0, e0.2
  18709. real$' %0.4 = LdConst [1] 1
  18710. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18711. BB2
  18712. t %2.0 = IsObject %0.3
  18713. void AssumeNot %2.0, %0.5
  18714. lgl' %2.2 = Eq %0.3, %0.4, elided
  18715. lgl %2.3 = AsLogical %2.2
  18716. t %2.4 = AsTest %2.3
  18717. void Branch %2.4 -> BB25 (if true) | BB3 (if false)
  18718. BB1
  18719. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  18720. void Deopt %1.0
  18721. BB25
  18722. cls %25.0 = LdFun c, e0.2
  18723. prom %25.1 = MkArg missing, Prom(4), e0.2
  18724. fs %25.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  18725. val^ %25.3 = Call %25.0(%25.1) %25.2, e0.2
  18726. goto BB26
  18727. BB3
  18728. cls %3.0 = LdFun vector, e0.2
  18729. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  18730. BB26
  18731. val^ %26.0 = Phi %6.0:BB24, %25.3:BB25
  18732. val %26.1 = Force %26.0, e0.2
  18733. void Return %26.1
  18734. BB5
  18735. cls' %5.0 = LdConst function (mode = "logical", length = ...
  18736. t %5.1 = Identical %3.0, %5.0
  18737. void Assume %5.1, %3.1
  18738. str$' %5.3 = LdConst [1] "list"
  18739. real$' %5.4 = LdConst [1] 4
  18740. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  18741. void StVar array, %5.5, e0.2
  18742. real$' %5.7 = LdConst [1] 1
  18743. real$' %5.8 = LdConst [1] 4
  18744. val' %5.9 = Colon %5.7, %5.8, elided
  18745. val' %5.10 = SetShared %5.9
  18746. int$' %5.11 = ForSeqSize %5.10
  18747. int$' %5.12 = LdConst [1] 0
  18748. goto BB6
  18749. BB4
  18750. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  18751. void Deopt %4.0
  18752. BB6
  18753. val %6.0 = Phi %5.5:BB5, %27.7:BB27
  18754. int$' %6.1 = Phi %5.12:BB5, %6.3:BB27
  18755. int$' %6.2 = Inc %6.1
  18756. int$' %6.3 = EnsureNamed %6.2
  18757. lgl' %6.4 = Lt %5.11, %6.3, elided
  18758. t %6.5 = AsTest %6.4
  18759. void Branch %6.5 -> BB24 (if true) | BB7 (if false)
  18760. BB24
  18761. goto BB26
  18762. BB7
  18763. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  18764. void StVar i, %7.0, e0.2
  18765. cls %7.2 = LdFun buildTreeDepth, e0.2
  18766. prom %7.3 = MkArg missing, Prom(2), e0.2
  18767. prom %7.4 = MkArg missing, Prom(3), e0.2
  18768. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  18769. BB9
  18770. cls' %9.0 = LdConst function (depth, random) { if (d...
  18771. t %9.1 = Identical %7.2, %9.0
  18772. void Assume %9.1, %7.5
  18773. val^? %9.3 = CastType %7.3
  18774. val^? %9.4 = CastType %7.4
  18775. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  18776. val %9.6 = Force %9.3, e9.5
  18777. real$' %9.7 = LdConst [1] 1
  18778. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  18779. BB8
  18780. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  18781. void Deopt %8.0
  18782. BB11
  18783. t %11.0 = IsObject %9.6
  18784. void AssumeNot %11.0, %9.8
  18785. lgl' %11.2 = Eq %9.6, %9.7, elided
  18786. lgl %11.3 = AsLogical %11.2
  18787. t %11.4 = AsTest %11.3
  18788. void Branch %11.4 -> BB23 (if true) | BB12 (if false)
  18789. BB10
  18790. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18791. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  18792. void Deopt %10.1
  18793. BB23
  18794. cls %23.0 = LdFun c, e9.5
  18795. prom %23.1 = MkArg missing, Prom(5), e9.5
  18796. fs %23.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18797. fs %23.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%23.2
  18798. val^ %23.4 = Call %23.0(%23.1) %23.3, e9.5
  18799. goto BB27
  18800. BB12
  18801. cls %12.0 = LdFun vector, e9.5
  18802. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  18803. BB27
  18804. val^ %27.0 = Phi %16.0:BB22, %23.4:BB23
  18805. val %27.1 = Force %27.0, e9.5
  18806. val^? %27.2 = LdVar array, e0.2
  18807. val %27.3 = Force %27.2, e0.2
  18808. val^? %27.4 = LdVar i, e0.2
  18809. val %27.5 = Force %27.4, e0.2
  18810. val %27.6 = EnsureNamed %27.1
  18811. val %27.7 = Subassign2_1D %27.6, %27.3, %27.5, e0.2
  18812. void StVar array, %27.7, e0.2
  18813. goto BB6
  18814. BB14
  18815. cls' %14.0 = LdConst function (mode = "logical", length = ...
  18816. t %14.1 = Identical %12.0, %14.0
  18817. void Assume %14.1, %12.1
  18818. real$' %14.3 = LdConst [1] 4
  18819. str$' %14.4 = LdConst [1] "list"
  18820. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  18821. void StVar array, %14.5, e9.5
  18822. goto BB15
  18823. BB13
  18824. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18825. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  18826. void Deopt %13.1
  18827. BB15
  18828. real$' %15.0 = LdConst [1] 4
  18829. real$' %15.1 = LdConst [1] 1
  18830. val' %15.2 = Colon %15.1, %15.0, elided
  18831. val' %15.3 = SetShared %15.2
  18832. int$' %15.4 = ForSeqSize %15.3
  18833. int$' %15.5 = LdConst [1] 0
  18834. goto BB16
  18835. BB16
  18836. val %16.0 = Phi %14.5:BB14, %21.12:BB21
  18837. int$' %16.1 = Phi %15.5:BB15, %16.3:BB21
  18838. int$' %16.2 = Inc %16.1
  18839. int$' %16.3 = EnsureNamed %16.2
  18840. goto BB17
  18841. BB17
  18842. lgl' %17.0 = Lt %15.4, %16.3, elided
  18843. t %17.1 = AsTest %17.0
  18844. void Branch %17.1 -> BB22 (if true) | BB18 (if false)
  18845. BB22
  18846. goto BB27
  18847. BB18
  18848. goto BB19
  18849. BB19
  18850. val$' %19.0 = Extract2_1D %15.3, %16.3, elided
  18851. void StVar i, %19.0, e9.5
  18852. cls %19.2 = LdFun buildTreeDepth, e9.5
  18853. prom %19.3 = MkArg missing, Prom(8), e9.5
  18854. prom %19.4 = MkArg missing, Prom(9), e9.5
  18855. cp %19.5 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  18856. BB21
  18857. cls' %21.0 = LdConst function (depth, random) { if (d...
  18858. t %21.1 = Identical %19.2, %21.0
  18859. void Assume %21.1, %19.5
  18860. fs %21.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18861. fs %21.4 = FrameState 0x7f924457f3d0+290: [%15.3, %15.4, %16.3], env=e9.5, next=%21.3
  18862. val^ %21.5 = StaticCall buildTreeDepth[0x7f92446010b0](%19.3, %19.4) %21.4, e9.5
  18863. val^? %21.6 = LdVar array, e9.5
  18864. val %21.7 = Force %21.6, e9.5
  18865. val^? %21.8 = LdVar i, e9.5
  18866. val %21.9 = Force %21.8, e9.5
  18867. val^ %21.10 = EnsureNamed %21.5
  18868. val %21.11 = Force %21.10, e9.5
  18869. val %21.12 = Subassign2_1D %21.11, %21.7, %21.9, e9.5
  18870. void StVar array, %21.12, e9.5
  18871. goto BB16
  18872. BB20
  18873. fs %20.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  18874. fs %20.1 = FrameState 0x7f924457f3d0+273: [%15.3, %15.4, %16.3, %19.2], env=e9.5, next=%20.0
  18875. void Deopt %20.1
  18876. Prom 2:
  18877. BB0
  18878. env e0.0 = LdFunctionEnv
  18879. val^? %0.1 = LdVar depth, e0.0
  18880. val %0.2 = Force %0.1, e0.0
  18881. real$' %0.3 = LdConst [1] 1
  18882. goto BB1
  18883. BB1
  18884. val %1.0 = Sub %0.2, %0.3, e0.0
  18885. void Return %1.0
  18886. Prom 3:
  18887. BB0
  18888. env e0.0 = LdFunctionEnv
  18889. val^? %0.1 = LdVar random, e0.0
  18890. val %0.2 = Force %0.1, e0.0
  18891. void Return %0.2
  18892. Prom 4:
  18893. BB0
  18894. env e0.0 = LdFunctionEnv
  18895. cls %0.1 = LdFun nextRandom, e0.0
  18896. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18897. t %0.3 = Identical %0.1, %0.2
  18898. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18899. BB2
  18900. void Assume %0.3, %0.4
  18901. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18902. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18903. real$' %2.3 = LdConst [1] 10
  18904. goto BB3
  18905. BB1
  18906. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18907. void Deopt %1.0
  18908. BB3
  18909. val %3.0 = Force %2.2, e0.0
  18910. val %3.1 = Mod %3.0, %2.3, e0.0
  18911. real$' %3.2 = LdConst [1] 1
  18912. goto BB4
  18913. BB4
  18914. val %4.0 = Add %3.1, %3.2, e0.0
  18915. void Return %4.0
  18916. Prom 5:
  18917. BB0
  18918. env e0.0 = LdFunctionEnv
  18919. cls %0.1 = LdFun nextRandom, e0.0
  18920. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  18921. t %0.3 = Identical %0.1, %0.2
  18922. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18923. BB2
  18924. void Assume %0.3, %0.4
  18925. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  18926. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  18927. real$' %2.3 = LdConst [1] 10
  18928. goto BB3
  18929. BB1
  18930. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  18931. void Deopt %1.0
  18932. BB3
  18933. val %3.0 = Force %2.2, e0.0
  18934. val %3.1 = Mod %3.0, %2.3, e0.0
  18935. real$' %3.2 = LdConst [1] 1
  18936. goto BB4
  18937. BB4
  18938. val %4.0 = Add %3.1, %3.2, e0.0
  18939. void Return %4.0
  18940. Prom 8:
  18941. BB0
  18942. env e0.0 = LdFunctionEnv
  18943. val^? %0.1 = LdVar depth, e0.0
  18944. val %0.2 = Force %0.1, e0.0
  18945. real$' %0.3 = LdConst [1] 1
  18946. goto BB1
  18947. BB1
  18948. val %1.0 = Sub %0.2, %0.3, e0.0
  18949. void Return %1.0
  18950. Prom 9:
  18951. BB0
  18952. env e0.0 = LdFunctionEnv
  18953. val^? %0.1 = LdVar random, e0.0
  18954. val %0.2 = Force %0.1, e0.0
  18955. void Return %0.2
  18956. ├────── Elide environments not needed: == 364
  18957. buildTreeDepth[0x7f92446010b0]
  18958. BB0
  18959. val^ %0.0 = LdArg 0
  18960. val^ %0.1 = LdArg 1
  18961. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  18962. val %0.3 = Force! %0.0, e0.2
  18963. real$' %0.4 = LdConst [1] 1
  18964. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  18965. BB2
  18966. t %2.0 = IsObject %0.3
  18967. void AssumeNot %2.0, %0.5
  18968. lgl' %2.2 = Eq %0.3, %0.4, elided
  18969. lgl %2.3 = AsLogical %2.2
  18970. t %2.4 = AsTest %2.3
  18971. void Branch %2.4 -> BB25 (if true) | BB3 (if false)
  18972. BB1
  18973. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  18974. void Deopt %1.0
  18975. BB25
  18976. cls %25.0 = LdFun c, e0.2
  18977. prom %25.1 = MkArg missing, Prom(4), e0.2
  18978. fs %25.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  18979. val^ %25.3 = Call %25.0(%25.1) %25.2, e0.2
  18980. goto BB26
  18981. BB3
  18982. cls %3.0 = LdFun vector, e0.2
  18983. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  18984. BB26
  18985. val^ %26.0 = Phi %6.0:BB24, %25.3:BB25
  18986. val %26.1 = Force %26.0, e0.2
  18987. void Return %26.1
  18988. BB5
  18989. cls' %5.0 = LdConst function (mode = "logical", length = ...
  18990. t %5.1 = Identical %3.0, %5.0
  18991. void Assume %5.1, %3.1
  18992. str$' %5.3 = LdConst [1] "list"
  18993. real$' %5.4 = LdConst [1] 4
  18994. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  18995. void StVar array, %5.5, e0.2
  18996. real$' %5.7 = LdConst [1] 1
  18997. real$' %5.8 = LdConst [1] 4
  18998. val' %5.9 = Colon %5.7, %5.8, elided
  18999. val' %5.10 = SetShared %5.9
  19000. int$' %5.11 = ForSeqSize %5.10
  19001. int$' %5.12 = LdConst [1] 0
  19002. goto BB6
  19003. BB4
  19004. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  19005. void Deopt %4.0
  19006. BB6
  19007. val %6.0 = Phi %5.5:BB5, %27.7:BB27
  19008. int$' %6.1 = Phi %5.12:BB5, %6.3:BB27
  19009. int$' %6.2 = Inc %6.1
  19010. int$' %6.3 = EnsureNamed %6.2
  19011. lgl' %6.4 = Lt %5.11, %6.3, elided
  19012. t %6.5 = AsTest %6.4
  19013. void Branch %6.5 -> BB24 (if true) | BB7 (if false)
  19014. BB24
  19015. goto BB26
  19016. BB7
  19017. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  19018. void StVar i, %7.0, e0.2
  19019. cls %7.2 = LdFun buildTreeDepth, e0.2
  19020. prom %7.3 = MkArg missing, Prom(2), e0.2
  19021. prom %7.4 = MkArg missing, Prom(3), e0.2
  19022. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  19023. BB9
  19024. cls' %9.0 = LdConst function (depth, random) { if (d...
  19025. t %9.1 = Identical %7.2, %9.0
  19026. void Assume %9.1, %7.5
  19027. val^? %9.3 = CastType %7.3
  19028. val^? %9.4 = CastType %7.4
  19029. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  19030. val %9.6 = Force %9.3, e9.5
  19031. real$' %9.7 = LdConst [1] 1
  19032. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  19033. BB8
  19034. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  19035. void Deopt %8.0
  19036. BB11
  19037. t %11.0 = IsObject %9.6
  19038. void AssumeNot %11.0, %9.8
  19039. lgl' %11.2 = Eq %9.6, %9.7, elided
  19040. lgl %11.3 = AsLogical %11.2
  19041. t %11.4 = AsTest %11.3
  19042. void Branch %11.4 -> BB23 (if true) | BB12 (if false)
  19043. BB10
  19044. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19045. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  19046. void Deopt %10.1
  19047. BB23
  19048. cls %23.0 = LdFun c, e9.5
  19049. prom %23.1 = MkArg missing, Prom(5), e9.5
  19050. fs %23.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19051. fs %23.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%23.2
  19052. val^ %23.4 = Call %23.0(%23.1) %23.3, e9.5
  19053. goto BB27
  19054. BB12
  19055. cls %12.0 = LdFun vector, e9.5
  19056. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  19057. BB27
  19058. val^ %27.0 = Phi %16.0:BB22, %23.4:BB23
  19059. val %27.1 = Force %27.0, e9.5
  19060. val^? %27.2 = LdVar array, e0.2
  19061. val %27.3 = Force %27.2, e0.2
  19062. val^? %27.4 = LdVar i, e0.2
  19063. val %27.5 = Force %27.4, e0.2
  19064. val %27.6 = EnsureNamed %27.1
  19065. val %27.7 = Subassign2_1D %27.6, %27.3, %27.5, e0.2
  19066. void StVar array, %27.7, e0.2
  19067. goto BB6
  19068. BB14
  19069. cls' %14.0 = LdConst function (mode = "logical", length = ...
  19070. t %14.1 = Identical %12.0, %14.0
  19071. void Assume %14.1, %12.1
  19072. real$' %14.3 = LdConst [1] 4
  19073. str$' %14.4 = LdConst [1] "list"
  19074. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  19075. void StVar array, %14.5, e9.5
  19076. goto BB15
  19077. BB13
  19078. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19079. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  19080. void Deopt %13.1
  19081. BB15
  19082. real$' %15.0 = LdConst [1] 4
  19083. real$' %15.1 = LdConst [1] 1
  19084. val' %15.2 = Colon %15.1, %15.0, elided
  19085. val' %15.3 = SetShared %15.2
  19086. int$' %15.4 = ForSeqSize %15.3
  19087. int$' %15.5 = LdConst [1] 0
  19088. goto BB16
  19089. BB16
  19090. val %16.0 = Phi %14.5:BB14, %21.12:BB21
  19091. int$' %16.1 = Phi %15.5:BB15, %16.3:BB21
  19092. int$' %16.2 = Inc %16.1
  19093. int$' %16.3 = EnsureNamed %16.2
  19094. goto BB17
  19095. BB17
  19096. lgl' %17.0 = Lt %15.4, %16.3, elided
  19097. t %17.1 = AsTest %17.0
  19098. void Branch %17.1 -> BB22 (if true) | BB18 (if false)
  19099. BB22
  19100. goto BB27
  19101. BB18
  19102. goto BB19
  19103. BB19
  19104. val$' %19.0 = Extract2_1D %15.3, %16.3, elided
  19105. void StVar i, %19.0, e9.5
  19106. cls %19.2 = LdFun buildTreeDepth, e9.5
  19107. prom %19.3 = MkArg missing, Prom(8), e9.5
  19108. prom %19.4 = MkArg missing, Prom(9), e9.5
  19109. cp %19.5 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  19110. BB21
  19111. cls' %21.0 = LdConst function (depth, random) { if (d...
  19112. t %21.1 = Identical %19.2, %21.0
  19113. void Assume %21.1, %19.5
  19114. fs %21.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19115. fs %21.4 = FrameState 0x7f924457f3d0+290: [%15.3, %15.4, %16.3], env=e9.5, next=%21.3
  19116. val^ %21.5 = StaticCall buildTreeDepth[0x7f92446010b0](%19.3, %19.4) %21.4, e9.5
  19117. val^? %21.6 = LdVar array, e9.5
  19118. val %21.7 = Force %21.6, e9.5
  19119. val^? %21.8 = LdVar i, e9.5
  19120. val %21.9 = Force %21.8, e9.5
  19121. val^ %21.10 = EnsureNamed %21.5
  19122. val %21.11 = Force %21.10, e9.5
  19123. val %21.12 = Subassign2_1D %21.11, %21.7, %21.9, e9.5
  19124. void StVar array, %21.12, e9.5
  19125. goto BB16
  19126. BB20
  19127. fs %20.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19128. fs %20.1 = FrameState 0x7f924457f3d0+273: [%15.3, %15.4, %16.3, %19.2], env=e9.5, next=%20.0
  19129. void Deopt %20.1
  19130. Prom 2:
  19131. BB0
  19132. env e0.0 = LdFunctionEnv
  19133. val^? %0.1 = LdVar depth, e0.0
  19134. val %0.2 = Force %0.1, e0.0
  19135. real$' %0.3 = LdConst [1] 1
  19136. goto BB1
  19137. BB1
  19138. val %1.0 = Sub %0.2, %0.3, e0.0
  19139. void Return %1.0
  19140. Prom 3:
  19141. BB0
  19142. env e0.0 = LdFunctionEnv
  19143. val^? %0.1 = LdVar random, e0.0
  19144. val %0.2 = Force %0.1, e0.0
  19145. void Return %0.2
  19146. Prom 4:
  19147. BB0
  19148. env e0.0 = LdFunctionEnv
  19149. cls %0.1 = LdFun nextRandom, e0.0
  19150. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19151. t %0.3 = Identical %0.1, %0.2
  19152. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19153. BB2
  19154. void Assume %0.3, %0.4
  19155. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19156. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19157. real$' %2.3 = LdConst [1] 10
  19158. goto BB3
  19159. BB1
  19160. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19161. void Deopt %1.0
  19162. BB3
  19163. val %3.0 = Force %2.2, e0.0
  19164. val %3.1 = Mod %3.0, %2.3, e0.0
  19165. real$' %3.2 = LdConst [1] 1
  19166. goto BB4
  19167. BB4
  19168. val %4.0 = Add %3.1, %3.2, e0.0
  19169. void Return %4.0
  19170. Prom 5:
  19171. BB0
  19172. env e0.0 = LdFunctionEnv
  19173. cls %0.1 = LdFun nextRandom, e0.0
  19174. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19175. t %0.3 = Identical %0.1, %0.2
  19176. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19177. BB2
  19178. void Assume %0.3, %0.4
  19179. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19180. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19181. real$' %2.3 = LdConst [1] 10
  19182. goto BB3
  19183. BB1
  19184. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19185. void Deopt %1.0
  19186. BB3
  19187. val %3.0 = Force %2.2, e0.0
  19188. val %3.1 = Mod %3.0, %2.3, e0.0
  19189. real$' %3.2 = LdConst [1] 1
  19190. goto BB4
  19191. BB4
  19192. val %4.0 = Add %3.1, %3.2, e0.0
  19193. void Return %4.0
  19194. Prom 8:
  19195. BB0
  19196. env e0.0 = LdFunctionEnv
  19197. val^? %0.1 = LdVar depth, e0.0
  19198. val %0.2 = Force %0.1, e0.0
  19199. real$' %0.3 = LdConst [1] 1
  19200. goto BB1
  19201. BB1
  19202. val %1.0 = Sub %0.2, %0.3, e0.0
  19203. void Return %1.0
  19204. Prom 9:
  19205. BB0
  19206. env e0.0 = LdFunctionEnv
  19207. val^? %0.1 = LdVar random, e0.0
  19208. val %0.2 = Force %0.1, e0.0
  19209. void Return %0.2
  19210. ├────── Move environment creation as far as possible: == 371
  19211. buildTreeDepth[0x7f92446010b0]
  19212. BB0
  19213. val^ %0.0 = LdArg 0
  19214. val^ %0.1 = LdArg 1
  19215. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  19216. val %0.3 = Force! %0.0, e0.2
  19217. real$' %0.4 = LdConst [1] 1
  19218. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19219. BB2
  19220. t %2.0 = IsObject %0.3
  19221. void AssumeNot %2.0, %0.5
  19222. lgl' %2.2 = Eq %0.3, %0.4, elided
  19223. lgl %2.3 = AsLogical %2.2
  19224. t %2.4 = AsTest %2.3
  19225. void Branch %2.4 -> BB25 (if true) | BB3 (if false)
  19226. BB1
  19227. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  19228. void Deopt %1.0
  19229. BB25
  19230. cls %25.0 = LdFun c, e0.2
  19231. prom %25.1 = MkArg missing, Prom(4), e0.2
  19232. fs %25.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  19233. val^ %25.3 = Call %25.0(%25.1) %25.2, e0.2
  19234. goto BB26
  19235. BB3
  19236. cls %3.0 = LdFun vector, e0.2
  19237. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  19238. BB26
  19239. val^ %26.0 = Phi %6.0:BB24, %25.3:BB25
  19240. val %26.1 = Force %26.0, e0.2
  19241. void Return %26.1
  19242. BB5
  19243. cls' %5.0 = LdConst function (mode = "logical", length = ...
  19244. t %5.1 = Identical %3.0, %5.0
  19245. void Assume %5.1, %3.1
  19246. str$' %5.3 = LdConst [1] "list"
  19247. real$' %5.4 = LdConst [1] 4
  19248. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  19249. void StVar array, %5.5, e0.2
  19250. real$' %5.7 = LdConst [1] 1
  19251. real$' %5.8 = LdConst [1] 4
  19252. val' %5.9 = Colon %5.7, %5.8, elided
  19253. val' %5.10 = SetShared %5.9
  19254. int$' %5.11 = ForSeqSize %5.10
  19255. int$' %5.12 = LdConst [1] 0
  19256. goto BB6
  19257. BB4
  19258. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  19259. void Deopt %4.0
  19260. BB6
  19261. val %6.0 = Phi %5.5:BB5, %27.7:BB27
  19262. int$' %6.1 = Phi %5.12:BB5, %6.3:BB27
  19263. int$' %6.2 = Inc %6.1
  19264. int$' %6.3 = EnsureNamed %6.2
  19265. lgl' %6.4 = Lt %5.11, %6.3, elided
  19266. t %6.5 = AsTest %6.4
  19267. void Branch %6.5 -> BB24 (if true) | BB7 (if false)
  19268. BB24
  19269. goto BB26
  19270. BB7
  19271. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  19272. void StVar i, %7.0, e0.2
  19273. cls %7.2 = LdFun buildTreeDepth, e0.2
  19274. prom %7.3 = MkArg missing, Prom(2), e0.2
  19275. prom %7.4 = MkArg missing, Prom(3), e0.2
  19276. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  19277. BB9
  19278. cls' %9.0 = LdConst function (depth, random) { if (d...
  19279. t %9.1 = Identical %7.2, %9.0
  19280. void Assume %9.1, %7.5
  19281. val^? %9.3 = CastType %7.3
  19282. val^? %9.4 = CastType %7.4
  19283. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  19284. val %9.6 = Force %9.3, e9.5
  19285. real$' %9.7 = LdConst [1] 1
  19286. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  19287. BB8
  19288. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  19289. void Deopt %8.0
  19290. BB11
  19291. t %11.0 = IsObject %9.6
  19292. void AssumeNot %11.0, %9.8
  19293. lgl' %11.2 = Eq %9.6, %9.7, elided
  19294. lgl %11.3 = AsLogical %11.2
  19295. t %11.4 = AsTest %11.3
  19296. void Branch %11.4 -> BB23 (if true) | BB12 (if false)
  19297. BB10
  19298. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19299. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  19300. void Deopt %10.1
  19301. BB23
  19302. cls %23.0 = LdFun c, e9.5
  19303. prom %23.1 = MkArg missing, Prom(5), e9.5
  19304. fs %23.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19305. fs %23.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%23.2
  19306. val^ %23.4 = Call %23.0(%23.1) %23.3, e9.5
  19307. goto BB27
  19308. BB12
  19309. cls %12.0 = LdFun vector, e9.5
  19310. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  19311. BB27
  19312. val^ %27.0 = Phi %16.0:BB22, %23.4:BB23
  19313. val %27.1 = Force %27.0, e9.5
  19314. val^? %27.2 = LdVar array, e0.2
  19315. val %27.3 = Force %27.2, e0.2
  19316. val^? %27.4 = LdVar i, e0.2
  19317. val %27.5 = Force %27.4, e0.2
  19318. val %27.6 = EnsureNamed %27.1
  19319. val %27.7 = Subassign2_1D %27.6, %27.3, %27.5, e0.2
  19320. void StVar array, %27.7, e0.2
  19321. goto BB6
  19322. BB14
  19323. cls' %14.0 = LdConst function (mode = "logical", length = ...
  19324. t %14.1 = Identical %12.0, %14.0
  19325. void Assume %14.1, %12.1
  19326. real$' %14.3 = LdConst [1] 4
  19327. str$' %14.4 = LdConst [1] "list"
  19328. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  19329. void StVar array, %14.5, e9.5
  19330. goto BB15
  19331. BB13
  19332. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19333. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  19334. void Deopt %13.1
  19335. BB15
  19336. real$' %15.0 = LdConst [1] 4
  19337. real$' %15.1 = LdConst [1] 1
  19338. val' %15.2 = Colon %15.1, %15.0, elided
  19339. val' %15.3 = SetShared %15.2
  19340. int$' %15.4 = ForSeqSize %15.3
  19341. int$' %15.5 = LdConst [1] 0
  19342. goto BB16
  19343. BB16
  19344. val %16.0 = Phi %14.5:BB14, %21.12:BB21
  19345. int$' %16.1 = Phi %15.5:BB15, %16.3:BB21
  19346. int$' %16.2 = Inc %16.1
  19347. int$' %16.3 = EnsureNamed %16.2
  19348. goto BB17
  19349. BB17
  19350. lgl' %17.0 = Lt %15.4, %16.3, elided
  19351. t %17.1 = AsTest %17.0
  19352. void Branch %17.1 -> BB22 (if true) | BB18 (if false)
  19353. BB22
  19354. goto BB27
  19355. BB18
  19356. goto BB19
  19357. BB19
  19358. val$' %19.0 = Extract2_1D %15.3, %16.3, elided
  19359. void StVar i, %19.0, e9.5
  19360. cls %19.2 = LdFun buildTreeDepth, e9.5
  19361. prom %19.3 = MkArg missing, Prom(8), e9.5
  19362. prom %19.4 = MkArg missing, Prom(9), e9.5
  19363. cp %19.5 = Checkpoint -> BB21 (by default) | BB20 (if coming from expect)
  19364. BB21
  19365. cls' %21.0 = LdConst function (depth, random) { if (d...
  19366. t %21.1 = Identical %19.2, %21.0
  19367. void Assume %21.1, %19.5
  19368. fs %21.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19369. fs %21.4 = FrameState 0x7f924457f3d0+290: [%15.3, %15.4, %16.3], env=e9.5, next=%21.3
  19370. val^ %21.5 = StaticCall buildTreeDepth[0x7f92446010b0](%19.3, %19.4) %21.4, e9.5
  19371. val^? %21.6 = LdVar array, e9.5
  19372. val %21.7 = Force %21.6, e9.5
  19373. val^? %21.8 = LdVar i, e9.5
  19374. val %21.9 = Force %21.8, e9.5
  19375. val^ %21.10 = EnsureNamed %21.5
  19376. val %21.11 = Force %21.10, e9.5
  19377. val %21.12 = Subassign2_1D %21.11, %21.7, %21.9, e9.5
  19378. void StVar array, %21.12, e9.5
  19379. goto BB16
  19380. BB20
  19381. fs %20.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19382. fs %20.1 = FrameState 0x7f924457f3d0+273: [%15.3, %15.4, %16.3, %19.2], env=e9.5, next=%20.0
  19383. void Deopt %20.1
  19384. Prom 2:
  19385. BB0
  19386. env e0.0 = LdFunctionEnv
  19387. val^? %0.1 = LdVar depth, e0.0
  19388. val %0.2 = Force %0.1, e0.0
  19389. real$' %0.3 = LdConst [1] 1
  19390. goto BB1
  19391. BB1
  19392. val %1.0 = Sub %0.2, %0.3, e0.0
  19393. void Return %1.0
  19394. Prom 3:
  19395. BB0
  19396. env e0.0 = LdFunctionEnv
  19397. val^? %0.1 = LdVar random, e0.0
  19398. val %0.2 = Force %0.1, e0.0
  19399. void Return %0.2
  19400. Prom 4:
  19401. BB0
  19402. env e0.0 = LdFunctionEnv
  19403. cls %0.1 = LdFun nextRandom, e0.0
  19404. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19405. t %0.3 = Identical %0.1, %0.2
  19406. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19407. BB2
  19408. void Assume %0.3, %0.4
  19409. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19410. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19411. real$' %2.3 = LdConst [1] 10
  19412. goto BB3
  19413. BB1
  19414. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19415. void Deopt %1.0
  19416. BB3
  19417. val %3.0 = Force %2.2, e0.0
  19418. val %3.1 = Mod %3.0, %2.3, e0.0
  19419. real$' %3.2 = LdConst [1] 1
  19420. goto BB4
  19421. BB4
  19422. val %4.0 = Add %3.1, %3.2, e0.0
  19423. void Return %4.0
  19424. Prom 5:
  19425. BB0
  19426. env e0.0 = LdFunctionEnv
  19427. cls %0.1 = LdFun nextRandom, e0.0
  19428. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19429. t %0.3 = Identical %0.1, %0.2
  19430. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19431. BB2
  19432. void Assume %0.3, %0.4
  19433. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19434. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19435. real$' %2.3 = LdConst [1] 10
  19436. goto BB3
  19437. BB1
  19438. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19439. void Deopt %1.0
  19440. BB3
  19441. val %3.0 = Force %2.2, e0.0
  19442. val %3.1 = Mod %3.0, %2.3, e0.0
  19443. real$' %3.2 = LdConst [1] 1
  19444. goto BB4
  19445. BB4
  19446. val %4.0 = Add %3.1, %3.2, e0.0
  19447. void Return %4.0
  19448. Prom 8:
  19449. BB0
  19450. env e0.0 = LdFunctionEnv
  19451. val^? %0.1 = LdVar depth, e0.0
  19452. val %0.2 = Force %0.1, e0.0
  19453. real$' %0.3 = LdConst [1] 1
  19454. goto BB1
  19455. BB1
  19456. val %1.0 = Sub %0.2, %0.3, e0.0
  19457. void Return %1.0
  19458. Prom 9:
  19459. BB0
  19460. env e0.0 = LdFunctionEnv
  19461. val^? %0.1 = LdVar random, e0.0
  19462. val %0.2 = Force %0.1, e0.0
  19463. void Return %0.2
  19464. ├────── Cleanup redundant operations: == 378
  19465. buildTreeDepth[0x7f92446010b0]
  19466. BB0
  19467. val^ %0.0 = LdArg 0
  19468. val^ %0.1 = LdArg 1
  19469. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  19470. val %0.3 = Force! %0.0, e0.2
  19471. real$' %0.4 = LdConst [1] 1
  19472. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19473. BB2
  19474. t %2.0 = IsObject %0.3
  19475. void AssumeNot %2.0, %0.5
  19476. lgl' %2.2 = Eq %0.3, %0.4, elided
  19477. lgl %2.3 = AsLogical %2.2
  19478. t %2.4 = AsTest %2.3
  19479. void Branch %2.4 -> BB24 (if true) | BB3 (if false)
  19480. BB1
  19481. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  19482. void Deopt %1.0
  19483. BB24
  19484. cls %24.0 = LdFun c, e0.2
  19485. prom %24.1 = MkArg missing, Prom(4), e0.2
  19486. fs %24.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  19487. val^ %24.3 = Call %24.0(%24.1) %24.2, e0.2
  19488. goto BB25
  19489. BB3
  19490. cls %3.0 = LdFun vector, e0.2
  19491. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  19492. BB25
  19493. val^ %25.0 = Phi %6.0:BB23, %24.3:BB24
  19494. val %25.1 = Force %25.0, e0.2
  19495. void Return %25.1
  19496. BB5
  19497. cls' %5.0 = LdConst function (mode = "logical", length = ...
  19498. t %5.1 = Identical %3.0, %5.0
  19499. void Assume %5.1, %3.1
  19500. str$' %5.3 = LdConst [1] "list"
  19501. real$' %5.4 = LdConst [1] 4
  19502. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  19503. void StVar array, %5.5, e0.2
  19504. real$' %5.7 = LdConst [1] 1
  19505. real$' %5.8 = LdConst [1] 4
  19506. val' %5.9 = Colon %5.7, %5.8, elided
  19507. val' %5.10 = SetShared %5.9
  19508. int$' %5.11 = ForSeqSize %5.10
  19509. int$' %5.12 = LdConst [1] 0
  19510. goto BB6
  19511. BB4
  19512. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  19513. void Deopt %4.0
  19514. BB6
  19515. val %6.0 = Phi %5.5:BB5, %26.7:BB26
  19516. int$' %6.1 = Phi %5.12:BB5, %6.3:BB26
  19517. int$' %6.2 = Inc %6.1
  19518. int$' %6.3 = EnsureNamed %6.2
  19519. lgl' %6.4 = Lt %5.11, %6.3, elided
  19520. t %6.5 = AsTest %6.4
  19521. void Branch %6.5 -> BB23 (if true) | BB7 (if false)
  19522. BB23
  19523. goto BB25
  19524. BB7
  19525. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  19526. void StVar i, %7.0, e0.2
  19527. cls %7.2 = LdFun buildTreeDepth, e0.2
  19528. prom %7.3 = MkArg missing, Prom(2), e0.2
  19529. prom %7.4 = MkArg missing, Prom(3), e0.2
  19530. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  19531. BB9
  19532. cls' %9.0 = LdConst function (depth, random) { if (d...
  19533. t %9.1 = Identical %7.2, %9.0
  19534. void Assume %9.1, %7.5
  19535. val^? %9.3 = CastType %7.3
  19536. val^? %9.4 = CastType %7.4
  19537. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  19538. val %9.6 = Force %9.3, e9.5
  19539. real$' %9.7 = LdConst [1] 1
  19540. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  19541. BB8
  19542. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  19543. void Deopt %8.0
  19544. BB11
  19545. t %11.0 = IsObject %9.6
  19546. void AssumeNot %11.0, %9.8
  19547. lgl' %11.2 = Eq %9.6, %9.7, elided
  19548. lgl %11.3 = AsLogical %11.2
  19549. t %11.4 = AsTest %11.3
  19550. void Branch %11.4 -> BB22 (if true) | BB12 (if false)
  19551. BB10
  19552. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19553. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  19554. void Deopt %10.1
  19555. BB22
  19556. cls %22.0 = LdFun c, e9.5
  19557. prom %22.1 = MkArg missing, Prom(5), e9.5
  19558. fs %22.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19559. fs %22.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%22.2
  19560. val^ %22.4 = Call %22.0(%22.1) %22.3, e9.5
  19561. goto BB26
  19562. BB12
  19563. cls %12.0 = LdFun vector, e9.5
  19564. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  19565. BB26
  19566. val^ %26.0 = Phi %15.0:BB21, %22.4:BB22
  19567. val %26.1 = Force %26.0, e9.5
  19568. val^? %26.2 = LdVar array, e0.2
  19569. val %26.3 = Force %26.2, e0.2
  19570. val^? %26.4 = LdVar i, e0.2
  19571. val %26.5 = Force %26.4, e0.2
  19572. val %26.6 = EnsureNamed %26.1
  19573. val %26.7 = Subassign2_1D %26.6, %26.3, %26.5, e0.2
  19574. void StVar array, %26.7, e0.2
  19575. goto BB6
  19576. BB14
  19577. cls' %14.0 = LdConst function (mode = "logical", length = ...
  19578. t %14.1 = Identical %12.0, %14.0
  19579. void Assume %14.1, %12.1
  19580. real$' %14.3 = LdConst [1] 4
  19581. str$' %14.4 = LdConst [1] "list"
  19582. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  19583. void StVar array, %14.5, e9.5
  19584. real$' %14.7 = LdConst [1] 4
  19585. real$' %14.8 = LdConst [1] 1
  19586. val' %14.9 = Colon %14.8, %14.7, elided
  19587. val' %14.10 = SetShared %14.9
  19588. int$' %14.11 = ForSeqSize %14.10
  19589. int$' %14.12 = LdConst [1] 0
  19590. goto BB15
  19591. BB13
  19592. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19593. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  19594. void Deopt %13.1
  19595. BB15
  19596. val %15.0 = Phi %14.5:BB14, %20.12:BB20
  19597. int$' %15.1 = Phi %14.12:BB14, %15.3:BB20
  19598. int$' %15.2 = Inc %15.1
  19599. int$' %15.3 = EnsureNamed %15.2
  19600. goto BB16
  19601. BB16
  19602. lgl' %16.0 = Lt %14.11, %15.3, elided
  19603. t %16.1 = AsTest %16.0
  19604. void Branch %16.1 -> BB21 (if true) | BB17 (if false)
  19605. BB21
  19606. goto BB26
  19607. BB17
  19608. goto BB18
  19609. BB18
  19610. val$' %18.0 = Extract2_1D %14.10, %15.3, elided
  19611. void StVar i, %18.0, e9.5
  19612. cls %18.2 = LdFun buildTreeDepth, e9.5
  19613. prom %18.3 = MkArg missing, Prom(8), e9.5
  19614. prom %18.4 = MkArg missing, Prom(9), e9.5
  19615. cp %18.5 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  19616. BB20
  19617. cls' %20.0 = LdConst function (depth, random) { if (d...
  19618. t %20.1 = Identical %18.2, %20.0
  19619. void Assume %20.1, %18.5
  19620. fs %20.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19621. fs %20.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%20.3
  19622. val^ %20.5 = StaticCall buildTreeDepth[0x7f92446010b0](%18.3, %18.4) %20.4, e9.5
  19623. val^? %20.6 = LdVar array, e9.5
  19624. val %20.7 = Force %20.6, e9.5
  19625. val^? %20.8 = LdVar i, e9.5
  19626. val %20.9 = Force %20.8, e9.5
  19627. val^ %20.10 = EnsureNamed %20.5
  19628. val %20.11 = Force %20.10, e9.5
  19629. val %20.12 = Subassign2_1D %20.11, %20.7, %20.9, e9.5
  19630. void StVar array, %20.12, e9.5
  19631. goto BB15
  19632. BB19
  19633. fs %19.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19634. fs %19.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %18.2], env=e9.5, next=%19.0
  19635. void Deopt %19.1
  19636. Prom 2:
  19637. BB0
  19638. env e0.0 = LdFunctionEnv
  19639. val^? %0.1 = LdVar depth, e0.0
  19640. val %0.2 = Force %0.1, e0.0
  19641. real$' %0.3 = LdConst [1] 1
  19642. goto BB1
  19643. BB1
  19644. val %1.0 = Sub %0.2, %0.3, e0.0
  19645. void Return %1.0
  19646. Prom 3:
  19647. BB0
  19648. env e0.0 = LdFunctionEnv
  19649. val^? %0.1 = LdVar random, e0.0
  19650. val %0.2 = Force %0.1, e0.0
  19651. void Return %0.2
  19652. Prom 4:
  19653. BB0
  19654. env e0.0 = LdFunctionEnv
  19655. cls %0.1 = LdFun nextRandom, e0.0
  19656. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19657. t %0.3 = Identical %0.1, %0.2
  19658. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19659. BB2
  19660. void Assume %0.3, %0.4
  19661. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19662. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19663. real$' %2.3 = LdConst [1] 10
  19664. goto BB3
  19665. BB1
  19666. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19667. void Deopt %1.0
  19668. BB3
  19669. val %3.0 = Force %2.2, e0.0
  19670. val %3.1 = Mod %3.0, %2.3, e0.0
  19671. real$' %3.2 = LdConst [1] 1
  19672. goto BB4
  19673. BB4
  19674. val %4.0 = Add %3.1, %3.2, e0.0
  19675. void Return %4.0
  19676. Prom 5:
  19677. BB0
  19678. env e0.0 = LdFunctionEnv
  19679. cls %0.1 = LdFun nextRandom, e0.0
  19680. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19681. t %0.3 = Identical %0.1, %0.2
  19682. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19683. BB2
  19684. void Assume %0.3, %0.4
  19685. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19686. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19687. real$' %2.3 = LdConst [1] 10
  19688. goto BB3
  19689. BB1
  19690. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19691. void Deopt %1.0
  19692. BB3
  19693. val %3.0 = Force %2.2, e0.0
  19694. val %3.1 = Mod %3.0, %2.3, e0.0
  19695. real$' %3.2 = LdConst [1] 1
  19696. goto BB4
  19697. BB4
  19698. val %4.0 = Add %3.1, %3.2, e0.0
  19699. void Return %4.0
  19700. Prom 8:
  19701. BB0
  19702. env e0.0 = LdFunctionEnv
  19703. val^? %0.1 = LdVar depth, e0.0
  19704. val %0.2 = Force %0.1, e0.0
  19705. real$' %0.3 = LdConst [1] 1
  19706. goto BB1
  19707. BB1
  19708. val %1.0 = Sub %0.2, %0.3, e0.0
  19709. void Return %1.0
  19710. Prom 9:
  19711. BB0
  19712. env e0.0 = LdFunctionEnv
  19713. val^? %0.1 = LdVar random, e0.0
  19714. val %0.2 = Force %0.1, e0.0
  19715. void Return %0.2
  19716. ├────── Inline closures: == 385
  19717. buildTreeDepth[0x7f92446010b0]
  19718. BB0
  19719. val^ %0.0 = LdArg 0
  19720. val^ %0.1 = LdArg 1
  19721. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  19722. val %0.3 = Force! %0.0, e0.2
  19723. real$' %0.4 = LdConst [1] 1
  19724. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19725. BB2
  19726. t %2.0 = IsObject %0.3
  19727. void AssumeNot %2.0, %0.5
  19728. lgl' %2.2 = Eq %0.3, %0.4, elided
  19729. lgl %2.3 = AsLogical %2.2
  19730. t %2.4 = AsTest %2.3
  19731. void Branch %2.4 -> BB24 (if true) | BB3 (if false)
  19732. BB1
  19733. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  19734. void Deopt %1.0
  19735. BB24
  19736. cls %24.0 = LdFun c, e0.2
  19737. prom %24.1 = MkArg missing, Prom(4), e0.2
  19738. fs %24.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  19739. val^ %24.3 = Call %24.0(%24.1) %24.2, e0.2
  19740. goto BB25
  19741. BB3
  19742. cls %3.0 = LdFun vector, e0.2
  19743. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  19744. BB25
  19745. val^ %25.0 = Phi %6.0:BB23, %24.3:BB24
  19746. val %25.1 = Force %25.0, e0.2
  19747. void Return %25.1
  19748. BB5
  19749. cls' %5.0 = LdConst function (mode = "logical", length = ...
  19750. t %5.1 = Identical %3.0, %5.0
  19751. void Assume %5.1, %3.1
  19752. str$' %5.3 = LdConst [1] "list"
  19753. real$' %5.4 = LdConst [1] 4
  19754. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  19755. void StVar array, %5.5, e0.2
  19756. real$' %5.7 = LdConst [1] 1
  19757. real$' %5.8 = LdConst [1] 4
  19758. val' %5.9 = Colon %5.7, %5.8, elided
  19759. val' %5.10 = SetShared %5.9
  19760. int$' %5.11 = ForSeqSize %5.10
  19761. int$' %5.12 = LdConst [1] 0
  19762. goto BB6
  19763. BB4
  19764. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  19765. void Deopt %4.0
  19766. BB6
  19767. val %6.0 = Phi %5.5:BB5, %26.7:BB26
  19768. int$' %6.1 = Phi %5.12:BB5, %6.3:BB26
  19769. int$' %6.2 = Inc %6.1
  19770. int$' %6.3 = EnsureNamed %6.2
  19771. lgl' %6.4 = Lt %5.11, %6.3, elided
  19772. t %6.5 = AsTest %6.4
  19773. void Branch %6.5 -> BB23 (if true) | BB7 (if false)
  19774. BB23
  19775. goto BB25
  19776. BB7
  19777. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  19778. void StVar i, %7.0, e0.2
  19779. cls %7.2 = LdFun buildTreeDepth, e0.2
  19780. prom %7.3 = MkArg missing, Prom(2), e0.2
  19781. prom %7.4 = MkArg missing, Prom(3), e0.2
  19782. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  19783. BB9
  19784. cls' %9.0 = LdConst function (depth, random) { if (d...
  19785. t %9.1 = Identical %7.2, %9.0
  19786. void Assume %9.1, %7.5
  19787. val^? %9.3 = CastType %7.3
  19788. val^? %9.4 = CastType %7.4
  19789. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  19790. val %9.6 = Force %9.3, e9.5
  19791. real$' %9.7 = LdConst [1] 1
  19792. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  19793. BB8
  19794. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  19795. void Deopt %8.0
  19796. BB11
  19797. t %11.0 = IsObject %9.6
  19798. void AssumeNot %11.0, %9.8
  19799. lgl' %11.2 = Eq %9.6, %9.7, elided
  19800. lgl %11.3 = AsLogical %11.2
  19801. t %11.4 = AsTest %11.3
  19802. void Branch %11.4 -> BB22 (if true) | BB12 (if false)
  19803. BB10
  19804. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19805. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  19806. void Deopt %10.1
  19807. BB22
  19808. cls %22.0 = LdFun c, e9.5
  19809. prom %22.1 = MkArg missing, Prom(5), e9.5
  19810. fs %22.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19811. fs %22.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%22.2
  19812. val^ %22.4 = Call %22.0(%22.1) %22.3, e9.5
  19813. goto BB26
  19814. BB12
  19815. cls %12.0 = LdFun vector, e9.5
  19816. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  19817. BB26
  19818. val^ %26.0 = Phi %15.0:BB21, %22.4:BB22
  19819. val %26.1 = Force %26.0, e9.5
  19820. val^? %26.2 = LdVar array, e0.2
  19821. val %26.3 = Force %26.2, e0.2
  19822. val^? %26.4 = LdVar i, e0.2
  19823. val %26.5 = Force %26.4, e0.2
  19824. val %26.6 = EnsureNamed %26.1
  19825. val %26.7 = Subassign2_1D %26.6, %26.3, %26.5, e0.2
  19826. void StVar array, %26.7, e0.2
  19827. goto BB6
  19828. BB14
  19829. cls' %14.0 = LdConst function (mode = "logical", length = ...
  19830. t %14.1 = Identical %12.0, %14.0
  19831. void Assume %14.1, %12.1
  19832. real$' %14.3 = LdConst [1] 4
  19833. str$' %14.4 = LdConst [1] "list"
  19834. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  19835. void StVar array, %14.5, e9.5
  19836. real$' %14.7 = LdConst [1] 4
  19837. real$' %14.8 = LdConst [1] 1
  19838. val' %14.9 = Colon %14.8, %14.7, elided
  19839. val' %14.10 = SetShared %14.9
  19840. int$' %14.11 = ForSeqSize %14.10
  19841. int$' %14.12 = LdConst [1] 0
  19842. goto BB15
  19843. BB13
  19844. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19845. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  19846. void Deopt %13.1
  19847. BB15
  19848. val %15.0 = Phi %14.5:BB14, %20.12:BB20
  19849. int$' %15.1 = Phi %14.12:BB14, %15.3:BB20
  19850. int$' %15.2 = Inc %15.1
  19851. int$' %15.3 = EnsureNamed %15.2
  19852. goto BB16
  19853. BB16
  19854. lgl' %16.0 = Lt %14.11, %15.3, elided
  19855. t %16.1 = AsTest %16.0
  19856. void Branch %16.1 -> BB21 (if true) | BB17 (if false)
  19857. BB21
  19858. goto BB26
  19859. BB17
  19860. goto BB18
  19861. BB18
  19862. val$' %18.0 = Extract2_1D %14.10, %15.3, elided
  19863. void StVar i, %18.0, e9.5
  19864. cls %18.2 = LdFun buildTreeDepth, e9.5
  19865. prom %18.3 = MkArg missing, Prom(8), e9.5
  19866. prom %18.4 = MkArg missing, Prom(9), e9.5
  19867. cp %18.5 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  19868. BB20
  19869. cls' %20.0 = LdConst function (depth, random) { if (d...
  19870. t %20.1 = Identical %18.2, %20.0
  19871. void Assume %20.1, %18.5
  19872. fs %20.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19873. fs %20.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%20.3
  19874. val^ %20.5 = StaticCall buildTreeDepth[0x7f92446010b0](%18.3, %18.4) %20.4, e9.5
  19875. val^? %20.6 = LdVar array, e9.5
  19876. val %20.7 = Force %20.6, e9.5
  19877. val^? %20.8 = LdVar i, e9.5
  19878. val %20.9 = Force %20.8, e9.5
  19879. val^ %20.10 = EnsureNamed %20.5
  19880. val %20.11 = Force %20.10, e9.5
  19881. val %20.12 = Subassign2_1D %20.11, %20.7, %20.9, e9.5
  19882. void StVar array, %20.12, e9.5
  19883. goto BB15
  19884. BB19
  19885. fs %19.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  19886. fs %19.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %18.2], env=e9.5, next=%19.0
  19887. void Deopt %19.1
  19888. Prom 2:
  19889. BB0
  19890. env e0.0 = LdFunctionEnv
  19891. val^? %0.1 = LdVar depth, e0.0
  19892. val %0.2 = Force %0.1, e0.0
  19893. real$' %0.3 = LdConst [1] 1
  19894. goto BB1
  19895. BB1
  19896. val %1.0 = Sub %0.2, %0.3, e0.0
  19897. void Return %1.0
  19898. Prom 3:
  19899. BB0
  19900. env e0.0 = LdFunctionEnv
  19901. val^? %0.1 = LdVar random, e0.0
  19902. val %0.2 = Force %0.1, e0.0
  19903. void Return %0.2
  19904. Prom 4:
  19905. BB0
  19906. env e0.0 = LdFunctionEnv
  19907. cls %0.1 = LdFun nextRandom, e0.0
  19908. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19909. t %0.3 = Identical %0.1, %0.2
  19910. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19911. BB2
  19912. void Assume %0.3, %0.4
  19913. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19914. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19915. real$' %2.3 = LdConst [1] 10
  19916. goto BB3
  19917. BB1
  19918. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19919. void Deopt %1.0
  19920. BB3
  19921. val %3.0 = Force %2.2, e0.0
  19922. val %3.1 = Mod %3.0, %2.3, e0.0
  19923. real$' %3.2 = LdConst [1] 1
  19924. goto BB4
  19925. BB4
  19926. val %4.0 = Add %3.1, %3.2, e0.0
  19927. void Return %4.0
  19928. Prom 5:
  19929. BB0
  19930. env e0.0 = LdFunctionEnv
  19931. cls %0.1 = LdFun nextRandom, e0.0
  19932. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  19933. t %0.3 = Identical %0.1, %0.2
  19934. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19935. BB2
  19936. void Assume %0.3, %0.4
  19937. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  19938. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  19939. real$' %2.3 = LdConst [1] 10
  19940. goto BB3
  19941. BB1
  19942. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  19943. void Deopt %1.0
  19944. BB3
  19945. val %3.0 = Force %2.2, e0.0
  19946. val %3.1 = Mod %3.0, %2.3, e0.0
  19947. real$' %3.2 = LdConst [1] 1
  19948. goto BB4
  19949. BB4
  19950. val %4.0 = Add %3.1, %3.2, e0.0
  19951. void Return %4.0
  19952. Prom 8:
  19953. BB0
  19954. env e0.0 = LdFunctionEnv
  19955. val^? %0.1 = LdVar depth, e0.0
  19956. val %0.2 = Force %0.1, e0.0
  19957. real$' %0.3 = LdConst [1] 1
  19958. goto BB1
  19959. BB1
  19960. val %1.0 = Sub %0.2, %0.3, e0.0
  19961. void Return %1.0
  19962. Prom 9:
  19963. BB0
  19964. env e0.0 = LdFunctionEnv
  19965. val^? %0.1 = LdVar random, e0.0
  19966. val %0.2 = Force %0.1, e0.0
  19967. void Return %0.2
  19968. ├────── Inline Promises: == 392
  19969. buildTreeDepth[0x7f92446010b0]
  19970. BB0
  19971. val^ %0.0 = LdArg 0
  19972. val^ %0.1 = LdArg 1
  19973. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  19974. val %0.3 = Force! %0.0, e0.2
  19975. real$' %0.4 = LdConst [1] 1
  19976. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  19977. BB2
  19978. t %2.0 = IsObject %0.3
  19979. void AssumeNot %2.0, %0.5
  19980. lgl' %2.2 = Eq %0.3, %0.4, elided
  19981. lgl %2.3 = AsLogical %2.2
  19982. t %2.4 = AsTest %2.3
  19983. void Branch %2.4 -> BB24 (if true) | BB3 (if false)
  19984. BB1
  19985. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  19986. void Deopt %1.0
  19987. BB24
  19988. cls %24.0 = LdFun c, e0.2
  19989. prom %24.1 = MkArg missing, Prom(4), e0.2
  19990. fs %24.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  19991. val^ %24.3 = Call %24.0(%24.1) %24.2, e0.2
  19992. goto BB25
  19993. BB3
  19994. cls %3.0 = LdFun vector, e0.2
  19995. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  19996. BB25
  19997. val^ %25.0 = Phi %6.0:BB23, %24.3:BB24
  19998. val %25.1 = Force %25.0, e0.2
  19999. void Return %25.1
  20000. BB5
  20001. cls' %5.0 = LdConst function (mode = "logical", length = ...
  20002. t %5.1 = Identical %3.0, %5.0
  20003. void Assume %5.1, %3.1
  20004. str$' %5.3 = LdConst [1] "list"
  20005. real$' %5.4 = LdConst [1] 4
  20006. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  20007. void StVar array, %5.5, e0.2
  20008. real$' %5.7 = LdConst [1] 1
  20009. real$' %5.8 = LdConst [1] 4
  20010. val' %5.9 = Colon %5.7, %5.8, elided
  20011. val' %5.10 = SetShared %5.9
  20012. int$' %5.11 = ForSeqSize %5.10
  20013. int$' %5.12 = LdConst [1] 0
  20014. goto BB6
  20015. BB4
  20016. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  20017. void Deopt %4.0
  20018. BB6
  20019. val %6.0 = Phi %5.5:BB5, %26.7:BB26
  20020. int$' %6.1 = Phi %5.12:BB5, %6.3:BB26
  20021. int$' %6.2 = Inc %6.1
  20022. int$' %6.3 = EnsureNamed %6.2
  20023. lgl' %6.4 = Lt %5.11, %6.3, elided
  20024. t %6.5 = AsTest %6.4
  20025. void Branch %6.5 -> BB23 (if true) | BB7 (if false)
  20026. BB23
  20027. goto BB25
  20028. BB7
  20029. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  20030. void StVar i, %7.0, e0.2
  20031. cls %7.2 = LdFun buildTreeDepth, e0.2
  20032. prom %7.3 = MkArg missing, Prom(2), e0.2
  20033. prom %7.4 = MkArg missing, Prom(3), e0.2
  20034. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  20035. BB9
  20036. cls' %9.0 = LdConst function (depth, random) { if (d...
  20037. t %9.1 = Identical %7.2, %9.0
  20038. void Assume %9.1, %7.5
  20039. val^? %9.3 = CastType %7.3
  20040. val^? %9.4 = CastType %7.4
  20041. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  20042. val %9.6 = Force %9.3, e9.5
  20043. real$' %9.7 = LdConst [1] 1
  20044. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  20045. BB8
  20046. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  20047. void Deopt %8.0
  20048. BB11
  20049. t %11.0 = IsObject %9.6
  20050. void AssumeNot %11.0, %9.8
  20051. lgl' %11.2 = Eq %9.6, %9.7, elided
  20052. lgl %11.3 = AsLogical %11.2
  20053. t %11.4 = AsTest %11.3
  20054. void Branch %11.4 -> BB22 (if true) | BB12 (if false)
  20055. BB10
  20056. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20057. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  20058. void Deopt %10.1
  20059. BB22
  20060. cls %22.0 = LdFun c, e9.5
  20061. prom %22.1 = MkArg missing, Prom(5), e9.5
  20062. fs %22.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20063. fs %22.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%22.2
  20064. val^ %22.4 = Call %22.0(%22.1) %22.3, e9.5
  20065. goto BB26
  20066. BB12
  20067. cls %12.0 = LdFun vector, e9.5
  20068. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  20069. BB26
  20070. val^ %26.0 = Phi %15.0:BB21, %22.4:BB22
  20071. val %26.1 = Force %26.0, e9.5
  20072. val^? %26.2 = LdVar array, e0.2
  20073. val %26.3 = Force %26.2, e0.2
  20074. val^? %26.4 = LdVar i, e0.2
  20075. val %26.5 = Force %26.4, e0.2
  20076. val %26.6 = EnsureNamed %26.1
  20077. val %26.7 = Subassign2_1D %26.6, %26.3, %26.5, e0.2
  20078. void StVar array, %26.7, e0.2
  20079. goto BB6
  20080. BB14
  20081. cls' %14.0 = LdConst function (mode = "logical", length = ...
  20082. t %14.1 = Identical %12.0, %14.0
  20083. void Assume %14.1, %12.1
  20084. real$' %14.3 = LdConst [1] 4
  20085. str$' %14.4 = LdConst [1] "list"
  20086. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  20087. void StVar array, %14.5, e9.5
  20088. real$' %14.7 = LdConst [1] 4
  20089. real$' %14.8 = LdConst [1] 1
  20090. val' %14.9 = Colon %14.8, %14.7, elided
  20091. val' %14.10 = SetShared %14.9
  20092. int$' %14.11 = ForSeqSize %14.10
  20093. int$' %14.12 = LdConst [1] 0
  20094. goto BB15
  20095. BB13
  20096. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20097. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  20098. void Deopt %13.1
  20099. BB15
  20100. val %15.0 = Phi %14.5:BB14, %20.12:BB20
  20101. int$' %15.1 = Phi %14.12:BB14, %15.3:BB20
  20102. int$' %15.2 = Inc %15.1
  20103. int$' %15.3 = EnsureNamed %15.2
  20104. goto BB16
  20105. BB16
  20106. lgl' %16.0 = Lt %14.11, %15.3, elided
  20107. t %16.1 = AsTest %16.0
  20108. void Branch %16.1 -> BB21 (if true) | BB17 (if false)
  20109. BB21
  20110. goto BB26
  20111. BB17
  20112. goto BB18
  20113. BB18
  20114. val$' %18.0 = Extract2_1D %14.10, %15.3, elided
  20115. void StVar i, %18.0, e9.5
  20116. cls %18.2 = LdFun buildTreeDepth, e9.5
  20117. prom %18.3 = MkArg missing, Prom(8), e9.5
  20118. prom %18.4 = MkArg missing, Prom(9), e9.5
  20119. cp %18.5 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  20120. BB20
  20121. cls' %20.0 = LdConst function (depth, random) { if (d...
  20122. t %20.1 = Identical %18.2, %20.0
  20123. void Assume %20.1, %18.5
  20124. fs %20.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20125. fs %20.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%20.3
  20126. val^ %20.5 = StaticCall buildTreeDepth[0x7f92446010b0](%18.3, %18.4) %20.4, e9.5
  20127. val^? %20.6 = LdVar array, e9.5
  20128. val %20.7 = Force %20.6, e9.5
  20129. val^? %20.8 = LdVar i, e9.5
  20130. val %20.9 = Force %20.8, e9.5
  20131. val^ %20.10 = EnsureNamed %20.5
  20132. val %20.11 = Force %20.10, e9.5
  20133. val %20.12 = Subassign2_1D %20.11, %20.7, %20.9, e9.5
  20134. void StVar array, %20.12, e9.5
  20135. goto BB15
  20136. BB19
  20137. fs %19.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20138. fs %19.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %18.2], env=e9.5, next=%19.0
  20139. void Deopt %19.1
  20140. Prom 2:
  20141. BB0
  20142. env e0.0 = LdFunctionEnv
  20143. val^? %0.1 = LdVar depth, e0.0
  20144. val %0.2 = Force %0.1, e0.0
  20145. real$' %0.3 = LdConst [1] 1
  20146. goto BB1
  20147. BB1
  20148. val %1.0 = Sub %0.2, %0.3, e0.0
  20149. void Return %1.0
  20150. Prom 3:
  20151. BB0
  20152. env e0.0 = LdFunctionEnv
  20153. val^? %0.1 = LdVar random, e0.0
  20154. val %0.2 = Force %0.1, e0.0
  20155. void Return %0.2
  20156. Prom 4:
  20157. BB0
  20158. env e0.0 = LdFunctionEnv
  20159. cls %0.1 = LdFun nextRandom, e0.0
  20160. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20161. t %0.3 = Identical %0.1, %0.2
  20162. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20163. BB2
  20164. void Assume %0.3, %0.4
  20165. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20166. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20167. real$' %2.3 = LdConst [1] 10
  20168. goto BB3
  20169. BB1
  20170. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20171. void Deopt %1.0
  20172. BB3
  20173. val %3.0 = Force %2.2, e0.0
  20174. val %3.1 = Mod %3.0, %2.3, e0.0
  20175. real$' %3.2 = LdConst [1] 1
  20176. goto BB4
  20177. BB4
  20178. val %4.0 = Add %3.1, %3.2, e0.0
  20179. void Return %4.0
  20180. Prom 5:
  20181. BB0
  20182. env e0.0 = LdFunctionEnv
  20183. cls %0.1 = LdFun nextRandom, e0.0
  20184. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20185. t %0.3 = Identical %0.1, %0.2
  20186. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20187. BB2
  20188. void Assume %0.3, %0.4
  20189. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20190. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20191. real$' %2.3 = LdConst [1] 10
  20192. goto BB3
  20193. BB1
  20194. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20195. void Deopt %1.0
  20196. BB3
  20197. val %3.0 = Force %2.2, e0.0
  20198. val %3.1 = Mod %3.0, %2.3, e0.0
  20199. real$' %3.2 = LdConst [1] 1
  20200. goto BB4
  20201. BB4
  20202. val %4.0 = Add %3.1, %3.2, e0.0
  20203. void Return %4.0
  20204. Prom 8:
  20205. BB0
  20206. env e0.0 = LdFunctionEnv
  20207. val^? %0.1 = LdVar depth, e0.0
  20208. val %0.2 = Force %0.1, e0.0
  20209. real$' %0.3 = LdConst [1] 1
  20210. goto BB1
  20211. BB1
  20212. val %1.0 = Sub %0.2, %0.3, e0.0
  20213. void Return %1.0
  20214. Prom 9:
  20215. BB0
  20216. env e0.0 = LdFunctionEnv
  20217. val^? %0.1 = LdVar random, e0.0
  20218. val %0.2 = Force %0.1, e0.0
  20219. void Return %0.2
  20220. ├────── Scope resolution: == 399
  20221. buildTreeDepth[0x7f92446010b0]
  20222. BB0
  20223. val^ %0.0 = LdArg 0
  20224. val^ %0.1 = LdArg 1
  20225. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  20226. val %0.3 = Force! %0.0, e0.2
  20227. real$' %0.4 = LdConst [1] 1
  20228. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20229. BB2
  20230. t %2.0 = IsObject %0.3
  20231. void AssumeNot %2.0, %0.5
  20232. lgl' %2.2 = Eq %0.3, %0.4, elided
  20233. lgl %2.3 = AsLogical %2.2
  20234. t %2.4 = AsTest %2.3
  20235. void Branch %2.4 -> BB24 (if true) | BB3 (if false)
  20236. BB1
  20237. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  20238. void Deopt %1.0
  20239. BB24
  20240. cls %24.0 = LdFun c, e0.2
  20241. prom %24.1 = MkArg missing, Prom(4), e0.2
  20242. fs %24.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  20243. val^ %24.3 = Call %24.0(%24.1) %24.2, e0.2
  20244. goto BB25
  20245. BB3
  20246. cls %3.0 = LdFun vector, e0.2
  20247. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  20248. BB25
  20249. val^ %25.0 = Phi %6.0:BB23, %24.3:BB24
  20250. val %25.1 = Force %25.0, e0.2
  20251. void Return %25.1
  20252. BB5
  20253. cls' %5.0 = LdConst function (mode = "logical", length = ...
  20254. t %5.1 = Identical %3.0, %5.0
  20255. void Assume %5.1, %3.1
  20256. str$' %5.3 = LdConst [1] "list"
  20257. real$' %5.4 = LdConst [1] 4
  20258. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  20259. void StVar array, %5.5, e0.2
  20260. real$' %5.7 = LdConst [1] 1
  20261. real$' %5.8 = LdConst [1] 4
  20262. val' %5.9 = Colon %5.7, %5.8, elided
  20263. val' %5.10 = SetShared %5.9
  20264. int$' %5.11 = ForSeqSize %5.10
  20265. int$' %5.12 = LdConst [1] 0
  20266. goto BB6
  20267. BB4
  20268. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  20269. void Deopt %4.0
  20270. BB6
  20271. val %6.0 = Phi %5.5:BB5, %26.7:BB26
  20272. int$' %6.1 = Phi %5.12:BB5, %6.3:BB26
  20273. int$' %6.2 = Inc %6.1
  20274. int$' %6.3 = EnsureNamed %6.2
  20275. lgl' %6.4 = Lt %5.11, %6.3, elided
  20276. t %6.5 = AsTest %6.4
  20277. void Branch %6.5 -> BB23 (if true) | BB7 (if false)
  20278. BB23
  20279. goto BB25
  20280. BB7
  20281. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  20282. void StVar i, %7.0, e0.2
  20283. cls %7.2 = LdFun buildTreeDepth, e0.2
  20284. prom %7.3 = MkArg missing, Prom(2), e0.2
  20285. prom %7.4 = MkArg missing, Prom(3), e0.2
  20286. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  20287. BB9
  20288. cls' %9.0 = LdConst function (depth, random) { if (d...
  20289. t %9.1 = Identical %7.2, %9.0
  20290. void Assume %9.1, %7.5
  20291. val^? %9.3 = CastType %7.3
  20292. val^? %9.4 = CastType %7.4
  20293. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  20294. val %9.6 = Force %9.3, e9.5
  20295. real$' %9.7 = LdConst [1] 1
  20296. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  20297. BB8
  20298. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  20299. void Deopt %8.0
  20300. BB11
  20301. t %11.0 = IsObject %9.6
  20302. void AssumeNot %11.0, %9.8
  20303. lgl' %11.2 = Eq %9.6, %9.7, elided
  20304. lgl %11.3 = AsLogical %11.2
  20305. t %11.4 = AsTest %11.3
  20306. void Branch %11.4 -> BB22 (if true) | BB12 (if false)
  20307. BB10
  20308. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20309. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  20310. void Deopt %10.1
  20311. BB22
  20312. cls %22.0 = LdFun c, e9.5
  20313. prom %22.1 = MkArg missing, Prom(5), e9.5
  20314. fs %22.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20315. fs %22.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%22.2
  20316. val^ %22.4 = Call %22.0(%22.1) %22.3, e9.5
  20317. goto BB26
  20318. BB12
  20319. cls %12.0 = LdFun vector, e9.5
  20320. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  20321. BB26
  20322. val^ %26.0 = Phi %15.0:BB21, %22.4:BB22
  20323. val %26.1 = Force %26.0, e9.5
  20324. val^? %26.2 = LdVar array, e0.2
  20325. val %26.3 = Force %26.2, e0.2
  20326. val^? %26.4 = LdVar i, e0.2
  20327. val %26.5 = Force %26.4, e0.2
  20328. val %26.6 = EnsureNamed %26.1
  20329. val %26.7 = Subassign2_1D %26.6, %26.3, %26.5, e0.2
  20330. void StVar array, %26.7, e0.2
  20331. goto BB6
  20332. BB14
  20333. cls' %14.0 = LdConst function (mode = "logical", length = ...
  20334. t %14.1 = Identical %12.0, %14.0
  20335. void Assume %14.1, %12.1
  20336. real$' %14.3 = LdConst [1] 4
  20337. str$' %14.4 = LdConst [1] "list"
  20338. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  20339. void StVar array, %14.5, e9.5
  20340. real$' %14.7 = LdConst [1] 4
  20341. real$' %14.8 = LdConst [1] 1
  20342. val' %14.9 = Colon %14.8, %14.7, elided
  20343. val' %14.10 = SetShared %14.9
  20344. int$' %14.11 = ForSeqSize %14.10
  20345. int$' %14.12 = LdConst [1] 0
  20346. goto BB15
  20347. BB13
  20348. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20349. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  20350. void Deopt %13.1
  20351. BB15
  20352. val %15.0 = Phi %14.5:BB14, %20.12:BB20
  20353. int$' %15.1 = Phi %14.12:BB14, %15.3:BB20
  20354. int$' %15.2 = Inc %15.1
  20355. int$' %15.3 = EnsureNamed %15.2
  20356. goto BB16
  20357. BB16
  20358. lgl' %16.0 = Lt %14.11, %15.3, elided
  20359. t %16.1 = AsTest %16.0
  20360. void Branch %16.1 -> BB21 (if true) | BB17 (if false)
  20361. BB21
  20362. goto BB26
  20363. BB17
  20364. goto BB18
  20365. BB18
  20366. val$' %18.0 = Extract2_1D %14.10, %15.3, elided
  20367. void StVar i, %18.0, e9.5
  20368. cls %18.2 = LdFun buildTreeDepth, e9.5
  20369. prom %18.3 = MkArg missing, Prom(8), e9.5
  20370. prom %18.4 = MkArg missing, Prom(9), e9.5
  20371. cp %18.5 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  20372. BB20
  20373. cls' %20.0 = LdConst function (depth, random) { if (d...
  20374. t %20.1 = Identical %18.2, %20.0
  20375. void Assume %20.1, %18.5
  20376. fs %20.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20377. fs %20.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%20.3
  20378. val^ %20.5 = StaticCall buildTreeDepth[0x7f92446010b0](%18.3, %18.4) %20.4, e9.5
  20379. val^? %20.6 = LdVar array, e9.5
  20380. val %20.7 = Force %20.6, e9.5
  20381. val^? %20.8 = LdVar i, e9.5
  20382. val %20.9 = Force %20.8, e9.5
  20383. val^ %20.10 = EnsureNamed %20.5
  20384. val %20.11 = Force %20.10, e9.5
  20385. val %20.12 = Subassign2_1D %20.11, %20.7, %20.9, e9.5
  20386. void StVar array, %20.12, e9.5
  20387. goto BB15
  20388. BB19
  20389. fs %19.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20390. fs %19.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %18.2], env=e9.5, next=%19.0
  20391. void Deopt %19.1
  20392. Prom 2:
  20393. BB0
  20394. env e0.0 = LdFunctionEnv
  20395. val^? %0.1 = LdVar depth, e0.0
  20396. val %0.2 = Force %0.1, e0.0
  20397. real$' %0.3 = LdConst [1] 1
  20398. goto BB1
  20399. BB1
  20400. val %1.0 = Sub %0.2, %0.3, e0.0
  20401. void Return %1.0
  20402. Prom 3:
  20403. BB0
  20404. env e0.0 = LdFunctionEnv
  20405. val^? %0.1 = LdVar random, e0.0
  20406. val %0.2 = Force %0.1, e0.0
  20407. void Return %0.2
  20408. Prom 4:
  20409. BB0
  20410. env e0.0 = LdFunctionEnv
  20411. cls %0.1 = LdFun nextRandom, e0.0
  20412. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20413. t %0.3 = Identical %0.1, %0.2
  20414. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20415. BB2
  20416. void Assume %0.3, %0.4
  20417. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20418. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20419. real$' %2.3 = LdConst [1] 10
  20420. goto BB3
  20421. BB1
  20422. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20423. void Deopt %1.0
  20424. BB3
  20425. val %3.0 = Force %2.2, e0.0
  20426. val %3.1 = Mod %3.0, %2.3, e0.0
  20427. real$' %3.2 = LdConst [1] 1
  20428. goto BB4
  20429. BB4
  20430. val %4.0 = Add %3.1, %3.2, e0.0
  20431. void Return %4.0
  20432. Prom 5:
  20433. BB0
  20434. env e0.0 = LdFunctionEnv
  20435. cls %0.1 = LdFun nextRandom, e0.0
  20436. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20437. t %0.3 = Identical %0.1, %0.2
  20438. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20439. BB2
  20440. void Assume %0.3, %0.4
  20441. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20442. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20443. real$' %2.3 = LdConst [1] 10
  20444. goto BB3
  20445. BB1
  20446. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20447. void Deopt %1.0
  20448. BB3
  20449. val %3.0 = Force %2.2, e0.0
  20450. val %3.1 = Mod %3.0, %2.3, e0.0
  20451. real$' %3.2 = LdConst [1] 1
  20452. goto BB4
  20453. BB4
  20454. val %4.0 = Add %3.1, %3.2, e0.0
  20455. void Return %4.0
  20456. Prom 8:
  20457. BB0
  20458. env e0.0 = LdFunctionEnv
  20459. val^? %0.1 = LdVar depth, e0.0
  20460. val %0.2 = Force %0.1, e0.0
  20461. real$' %0.3 = LdConst [1] 1
  20462. goto BB1
  20463. BB1
  20464. val %1.0 = Sub %0.2, %0.3, e0.0
  20465. void Return %1.0
  20466. Prom 9:
  20467. BB0
  20468. env e0.0 = LdFunctionEnv
  20469. val^? %0.1 = LdVar random, e0.0
  20470. val %0.2 = Force %0.1, e0.0
  20471. void Return %0.2
  20472. ├────── Constant folding: == 406
  20473. buildTreeDepth[0x7f92446010b0]
  20474. BB0
  20475. val^ %0.0 = LdArg 0
  20476. val^ %0.1 = LdArg 1
  20477. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  20478. val %0.3 = Force! %0.0, e0.2
  20479. real$' %0.4 = LdConst [1] 1
  20480. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20481. BB2
  20482. t %2.0 = IsObject %0.3
  20483. void AssumeNot %2.0, %0.5
  20484. lgl' %2.2 = Eq %0.3, %0.4, elided
  20485. lgl %2.3 = AsLogical %2.2
  20486. t %2.4 = AsTest %2.3
  20487. void Branch %2.4 -> BB24 (if true) | BB3 (if false)
  20488. BB1
  20489. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  20490. void Deopt %1.0
  20491. BB24
  20492. cls %24.0 = LdFun c, e0.2
  20493. prom %24.1 = MkArg missing, Prom(4), e0.2
  20494. fs %24.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  20495. val^ %24.3 = Call %24.0(%24.1) %24.2, e0.2
  20496. goto BB25
  20497. BB3
  20498. cls %3.0 = LdFun vector, e0.2
  20499. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  20500. BB25
  20501. val^ %25.0 = Phi %6.0:BB23, %24.3:BB24
  20502. val %25.1 = Force %25.0, e0.2
  20503. void Return %25.1
  20504. BB5
  20505. cls' %5.0 = LdConst function (mode = "logical", length = ...
  20506. t %5.1 = Identical %3.0, %5.0
  20507. void Assume %5.1, %3.1
  20508. str$' %5.3 = LdConst [1] "list"
  20509. real$' %5.4 = LdConst [1] 4
  20510. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  20511. void StVar array, %5.5, e0.2
  20512. real$' %5.7 = LdConst [1] 1
  20513. real$' %5.8 = LdConst [1] 4
  20514. val' %5.9 = Colon %5.7, %5.8, elided
  20515. val' %5.10 = SetShared %5.9
  20516. int$' %5.11 = ForSeqSize %5.10
  20517. int$' %5.12 = LdConst [1] 0
  20518. goto BB6
  20519. BB4
  20520. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  20521. void Deopt %4.0
  20522. BB6
  20523. val %6.0 = Phi %5.5:BB5, %26.7:BB26
  20524. int$' %6.1 = Phi %5.12:BB5, %6.3:BB26
  20525. int$' %6.2 = Inc %6.1
  20526. int$' %6.3 = EnsureNamed %6.2
  20527. lgl' %6.4 = Lt %5.11, %6.3, elided
  20528. t %6.5 = AsTest %6.4
  20529. void Branch %6.5 -> BB23 (if true) | BB7 (if false)
  20530. BB23
  20531. goto BB25
  20532. BB7
  20533. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  20534. void StVar i, %7.0, e0.2
  20535. cls %7.2 = LdFun buildTreeDepth, e0.2
  20536. prom %7.3 = MkArg missing, Prom(2), e0.2
  20537. prom %7.4 = MkArg missing, Prom(3), e0.2
  20538. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  20539. BB9
  20540. cls' %9.0 = LdConst function (depth, random) { if (d...
  20541. t %9.1 = Identical %7.2, %9.0
  20542. void Assume %9.1, %7.5
  20543. val^? %9.3 = CastType %7.3
  20544. val^? %9.4 = CastType %7.4
  20545. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  20546. val %9.6 = Force %9.3, e9.5
  20547. real$' %9.7 = LdConst [1] 1
  20548. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  20549. BB8
  20550. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  20551. void Deopt %8.0
  20552. BB11
  20553. t %11.0 = IsObject %9.6
  20554. void AssumeNot %11.0, %9.8
  20555. lgl' %11.2 = Eq %9.6, %9.7, elided
  20556. lgl %11.3 = AsLogical %11.2
  20557. t %11.4 = AsTest %11.3
  20558. void Branch %11.4 -> BB22 (if true) | BB12 (if false)
  20559. BB10
  20560. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20561. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  20562. void Deopt %10.1
  20563. BB22
  20564. cls %22.0 = LdFun c, e9.5
  20565. prom %22.1 = MkArg missing, Prom(5), e9.5
  20566. fs %22.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20567. fs %22.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%22.2
  20568. val^ %22.4 = Call %22.0(%22.1) %22.3, e9.5
  20569. goto BB26
  20570. BB12
  20571. cls %12.0 = LdFun vector, e9.5
  20572. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  20573. BB26
  20574. val^ %26.0 = Phi %15.0:BB21, %22.4:BB22
  20575. val %26.1 = Force %26.0, e9.5
  20576. val^? %26.2 = LdVar array, e0.2
  20577. val %26.3 = Force %26.2, e0.2
  20578. val^? %26.4 = LdVar i, e0.2
  20579. val %26.5 = Force %26.4, e0.2
  20580. val %26.6 = EnsureNamed %26.1
  20581. val %26.7 = Subassign2_1D %26.6, %26.3, %26.5, e0.2
  20582. void StVar array, %26.7, e0.2
  20583. goto BB6
  20584. BB14
  20585. cls' %14.0 = LdConst function (mode = "logical", length = ...
  20586. t %14.1 = Identical %12.0, %14.0
  20587. void Assume %14.1, %12.1
  20588. real$' %14.3 = LdConst [1] 4
  20589. str$' %14.4 = LdConst [1] "list"
  20590. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  20591. void StVar array, %14.5, e9.5
  20592. real$' %14.7 = LdConst [1] 4
  20593. real$' %14.8 = LdConst [1] 1
  20594. val' %14.9 = Colon %14.8, %14.7, elided
  20595. val' %14.10 = SetShared %14.9
  20596. int$' %14.11 = ForSeqSize %14.10
  20597. int$' %14.12 = LdConst [1] 0
  20598. goto BB15
  20599. BB13
  20600. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20601. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  20602. void Deopt %13.1
  20603. BB15
  20604. val %15.0 = Phi %14.5:BB14, %20.12:BB20
  20605. int$' %15.1 = Phi %14.12:BB14, %15.3:BB20
  20606. int$' %15.2 = Inc %15.1
  20607. int$' %15.3 = EnsureNamed %15.2
  20608. goto BB16
  20609. BB16
  20610. lgl' %16.0 = Lt %14.11, %15.3, elided
  20611. t %16.1 = AsTest %16.0
  20612. void Branch %16.1 -> BB21 (if true) | BB17 (if false)
  20613. BB21
  20614. goto BB26
  20615. BB17
  20616. goto BB18
  20617. BB18
  20618. val$' %18.0 = Extract2_1D %14.10, %15.3, elided
  20619. void StVar i, %18.0, e9.5
  20620. cls %18.2 = LdFun buildTreeDepth, e9.5
  20621. prom %18.3 = MkArg missing, Prom(8), e9.5
  20622. prom %18.4 = MkArg missing, Prom(9), e9.5
  20623. cp %18.5 = Checkpoint -> BB20 (by default) | BB19 (if coming from expect)
  20624. BB20
  20625. cls' %20.0 = LdConst function (depth, random) { if (d...
  20626. t %20.1 = Identical %18.2, %20.0
  20627. void Assume %20.1, %18.5
  20628. fs %20.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20629. fs %20.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%20.3
  20630. val^ %20.5 = StaticCall buildTreeDepth[0x7f92446010b0](%18.3, %18.4) %20.4, e9.5
  20631. val^? %20.6 = LdVar array, e9.5
  20632. val %20.7 = Force %20.6, e9.5
  20633. val^? %20.8 = LdVar i, e9.5
  20634. val %20.9 = Force %20.8, e9.5
  20635. val^ %20.10 = EnsureNamed %20.5
  20636. val %20.11 = Force %20.10, e9.5
  20637. val %20.12 = Subassign2_1D %20.11, %20.7, %20.9, e9.5
  20638. void StVar array, %20.12, e9.5
  20639. goto BB15
  20640. BB19
  20641. fs %19.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20642. fs %19.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %18.2], env=e9.5, next=%19.0
  20643. void Deopt %19.1
  20644. Prom 2:
  20645. BB0
  20646. env e0.0 = LdFunctionEnv
  20647. val^? %0.1 = LdVar depth, e0.0
  20648. val %0.2 = Force %0.1, e0.0
  20649. real$' %0.3 = LdConst [1] 1
  20650. goto BB1
  20651. BB1
  20652. val %1.0 = Sub %0.2, %0.3, e0.0
  20653. void Return %1.0
  20654. Prom 3:
  20655. BB0
  20656. env e0.0 = LdFunctionEnv
  20657. val^? %0.1 = LdVar random, e0.0
  20658. val %0.2 = Force %0.1, e0.0
  20659. void Return %0.2
  20660. Prom 4:
  20661. BB0
  20662. env e0.0 = LdFunctionEnv
  20663. cls %0.1 = LdFun nextRandom, e0.0
  20664. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20665. t %0.3 = Identical %0.1, %0.2
  20666. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20667. BB2
  20668. void Assume %0.3, %0.4
  20669. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20670. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20671. real$' %2.3 = LdConst [1] 10
  20672. goto BB3
  20673. BB1
  20674. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20675. void Deopt %1.0
  20676. BB3
  20677. val %3.0 = Force %2.2, e0.0
  20678. val %3.1 = Mod %3.0, %2.3, e0.0
  20679. real$' %3.2 = LdConst [1] 1
  20680. goto BB4
  20681. BB4
  20682. val %4.0 = Add %3.1, %3.2, e0.0
  20683. void Return %4.0
  20684. Prom 5:
  20685. BB0
  20686. env e0.0 = LdFunctionEnv
  20687. cls %0.1 = LdFun nextRandom, e0.0
  20688. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20689. t %0.3 = Identical %0.1, %0.2
  20690. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20691. BB2
  20692. void Assume %0.3, %0.4
  20693. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20694. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20695. real$' %2.3 = LdConst [1] 10
  20696. goto BB3
  20697. BB1
  20698. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20699. void Deopt %1.0
  20700. BB3
  20701. val %3.0 = Force %2.2, e0.0
  20702. val %3.1 = Mod %3.0, %2.3, e0.0
  20703. real$' %3.2 = LdConst [1] 1
  20704. goto BB4
  20705. BB4
  20706. val %4.0 = Add %3.1, %3.2, e0.0
  20707. void Return %4.0
  20708. Prom 8:
  20709. BB0
  20710. env e0.0 = LdFunctionEnv
  20711. val^? %0.1 = LdVar depth, e0.0
  20712. val %0.2 = Force %0.1, e0.0
  20713. real$' %0.3 = LdConst [1] 1
  20714. goto BB1
  20715. BB1
  20716. val %1.0 = Sub %0.2, %0.3, e0.0
  20717. void Return %1.0
  20718. Prom 9:
  20719. BB0
  20720. env e0.0 = LdFunctionEnv
  20721. val^? %0.1 = LdVar random, e0.0
  20722. val %0.2 = Force %0.1, e0.0
  20723. void Return %0.2
  20724. ├────── Cleanup redundant operations: == 413
  20725. buildTreeDepth[0x7f92446010b0]
  20726. BB0
  20727. val^ %0.0 = LdArg 0
  20728. val^ %0.1 = LdArg 1
  20729. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  20730. val %0.3 = Force! %0.0, e0.2
  20731. real$' %0.4 = LdConst [1] 1
  20732. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20733. BB2
  20734. t %2.0 = IsObject %0.3
  20735. void AssumeNot %2.0, %0.5
  20736. lgl' %2.2 = Eq %0.3, %0.4, elided
  20737. lgl %2.3 = AsLogical %2.2
  20738. t %2.4 = AsTest %2.3
  20739. void Branch %2.4 -> BB23 (if true) | BB3 (if false)
  20740. BB1
  20741. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  20742. void Deopt %1.0
  20743. BB23
  20744. cls %23.0 = LdFun c, e0.2
  20745. prom %23.1 = MkArg missing, Prom(4), e0.2
  20746. fs %23.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  20747. val^ %23.3 = Call %23.0(%23.1) %23.2, e0.2
  20748. goto BB24
  20749. BB3
  20750. cls %3.0 = LdFun vector, e0.2
  20751. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  20752. BB24
  20753. val^ %24.0 = Phi %6.0:BB22, %23.3:BB23
  20754. val %24.1 = Force %24.0, e0.2
  20755. void Return %24.1
  20756. BB5
  20757. cls' %5.0 = LdConst function (mode = "logical", length = ...
  20758. t %5.1 = Identical %3.0, %5.0
  20759. void Assume %5.1, %3.1
  20760. str$' %5.3 = LdConst [1] "list"
  20761. real$' %5.4 = LdConst [1] 4
  20762. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  20763. void StVar array, %5.5, e0.2
  20764. real$' %5.7 = LdConst [1] 1
  20765. real$' %5.8 = LdConst [1] 4
  20766. val' %5.9 = Colon %5.7, %5.8, elided
  20767. val' %5.10 = SetShared %5.9
  20768. int$' %5.11 = ForSeqSize %5.10
  20769. int$' %5.12 = LdConst [1] 0
  20770. goto BB6
  20771. BB4
  20772. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  20773. void Deopt %4.0
  20774. BB6
  20775. val %6.0 = Phi %5.5:BB5, %25.7:BB25
  20776. int$' %6.1 = Phi %5.12:BB5, %6.3:BB25
  20777. int$' %6.2 = Inc %6.1
  20778. int$' %6.3 = EnsureNamed %6.2
  20779. lgl' %6.4 = Lt %5.11, %6.3, elided
  20780. t %6.5 = AsTest %6.4
  20781. void Branch %6.5 -> BB22 (if true) | BB7 (if false)
  20782. BB22
  20783. goto BB24
  20784. BB7
  20785. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  20786. void StVar i, %7.0, e0.2
  20787. cls %7.2 = LdFun buildTreeDepth, e0.2
  20788. prom %7.3 = MkArg missing, Prom(2), e0.2
  20789. prom %7.4 = MkArg missing, Prom(3), e0.2
  20790. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  20791. BB9
  20792. cls' %9.0 = LdConst function (depth, random) { if (d...
  20793. t %9.1 = Identical %7.2, %9.0
  20794. void Assume %9.1, %7.5
  20795. val^? %9.3 = CastType %7.3
  20796. val^? %9.4 = CastType %7.4
  20797. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  20798. val %9.6 = Force %9.3, e9.5
  20799. real$' %9.7 = LdConst [1] 1
  20800. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  20801. BB8
  20802. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  20803. void Deopt %8.0
  20804. BB11
  20805. t %11.0 = IsObject %9.6
  20806. void AssumeNot %11.0, %9.8
  20807. lgl' %11.2 = Eq %9.6, %9.7, elided
  20808. lgl %11.3 = AsLogical %11.2
  20809. t %11.4 = AsTest %11.3
  20810. void Branch %11.4 -> BB21 (if true) | BB12 (if false)
  20811. BB10
  20812. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20813. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  20814. void Deopt %10.1
  20815. BB21
  20816. cls %21.0 = LdFun c, e9.5
  20817. prom %21.1 = MkArg missing, Prom(5), e9.5
  20818. fs %21.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20819. fs %21.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%21.2
  20820. val^ %21.4 = Call %21.0(%21.1) %21.3, e9.5
  20821. goto BB25
  20822. BB12
  20823. cls %12.0 = LdFun vector, e9.5
  20824. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  20825. BB25
  20826. val^ %25.0 = Phi %15.0:BB20, %21.4:BB21
  20827. val %25.1 = Force %25.0, e9.5
  20828. val^? %25.2 = LdVar array, e0.2
  20829. val %25.3 = Force %25.2, e0.2
  20830. val^? %25.4 = LdVar i, e0.2
  20831. val %25.5 = Force %25.4, e0.2
  20832. val %25.6 = EnsureNamed %25.1
  20833. val %25.7 = Subassign2_1D %25.6, %25.3, %25.5, e0.2
  20834. void StVar array, %25.7, e0.2
  20835. goto BB6
  20836. BB14
  20837. cls' %14.0 = LdConst function (mode = "logical", length = ...
  20838. t %14.1 = Identical %12.0, %14.0
  20839. void Assume %14.1, %12.1
  20840. real$' %14.3 = LdConst [1] 4
  20841. str$' %14.4 = LdConst [1] "list"
  20842. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  20843. void StVar array, %14.5, e9.5
  20844. real$' %14.7 = LdConst [1] 4
  20845. real$' %14.8 = LdConst [1] 1
  20846. val' %14.9 = Colon %14.8, %14.7, elided
  20847. val' %14.10 = SetShared %14.9
  20848. int$' %14.11 = ForSeqSize %14.10
  20849. int$' %14.12 = LdConst [1] 0
  20850. goto BB15
  20851. BB13
  20852. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20853. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  20854. void Deopt %13.1
  20855. BB15
  20856. val %15.0 = Phi %14.5:BB14, %19.12:BB19
  20857. int$' %15.1 = Phi %14.12:BB14, %15.3:BB19
  20858. int$' %15.2 = Inc %15.1
  20859. int$' %15.3 = EnsureNamed %15.2
  20860. lgl' %15.4 = Lt %14.11, %15.3, elided
  20861. t %15.5 = AsTest %15.4
  20862. void Branch %15.5 -> BB20 (if true) | BB16 (if false)
  20863. BB20
  20864. goto BB25
  20865. BB16
  20866. goto BB17
  20867. BB17
  20868. val$' %17.0 = Extract2_1D %14.10, %15.3, elided
  20869. void StVar i, %17.0, e9.5
  20870. cls %17.2 = LdFun buildTreeDepth, e9.5
  20871. prom %17.3 = MkArg missing, Prom(8), e9.5
  20872. prom %17.4 = MkArg missing, Prom(9), e9.5
  20873. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  20874. BB19
  20875. cls' %19.0 = LdConst function (depth, random) { if (d...
  20876. t %19.1 = Identical %17.2, %19.0
  20877. void Assume %19.1, %17.5
  20878. fs %19.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20879. fs %19.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%19.3
  20880. val^ %19.5 = StaticCall buildTreeDepth[0x7f92446010b0](%17.3, %17.4) %19.4, e9.5
  20881. val^? %19.6 = LdVar array, e9.5
  20882. val %19.7 = Force %19.6, e9.5
  20883. val^? %19.8 = LdVar i, e9.5
  20884. val %19.9 = Force %19.8, e9.5
  20885. val^ %19.10 = EnsureNamed %19.5
  20886. val %19.11 = Force %19.10, e9.5
  20887. val %19.12 = Subassign2_1D %19.11, %19.7, %19.9, e9.5
  20888. void StVar array, %19.12, e9.5
  20889. goto BB15
  20890. BB18
  20891. fs %18.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  20892. fs %18.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %17.2], env=e9.5, next=%18.0
  20893. void Deopt %18.1
  20894. Prom 2:
  20895. BB0
  20896. env e0.0 = LdFunctionEnv
  20897. val^? %0.1 = LdVar depth, e0.0
  20898. val %0.2 = Force %0.1, e0.0
  20899. real$' %0.3 = LdConst [1] 1
  20900. goto BB1
  20901. BB1
  20902. val %1.0 = Sub %0.2, %0.3, e0.0
  20903. void Return %1.0
  20904. Prom 3:
  20905. BB0
  20906. env e0.0 = LdFunctionEnv
  20907. val^? %0.1 = LdVar random, e0.0
  20908. val %0.2 = Force %0.1, e0.0
  20909. void Return %0.2
  20910. Prom 4:
  20911. BB0
  20912. env e0.0 = LdFunctionEnv
  20913. cls %0.1 = LdFun nextRandom, e0.0
  20914. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20915. t %0.3 = Identical %0.1, %0.2
  20916. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20917. BB2
  20918. void Assume %0.3, %0.4
  20919. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20920. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20921. real$' %2.3 = LdConst [1] 10
  20922. goto BB3
  20923. BB1
  20924. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20925. void Deopt %1.0
  20926. BB3
  20927. val %3.0 = Force %2.2, e0.0
  20928. val %3.1 = Mod %3.0, %2.3, e0.0
  20929. real$' %3.2 = LdConst [1] 1
  20930. goto BB4
  20931. BB4
  20932. val %4.0 = Add %3.1, %3.2, e0.0
  20933. void Return %4.0
  20934. Prom 5:
  20935. BB0
  20936. env e0.0 = LdFunctionEnv
  20937. cls %0.1 = LdFun nextRandom, e0.0
  20938. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  20939. t %0.3 = Identical %0.1, %0.2
  20940. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20941. BB2
  20942. void Assume %0.3, %0.4
  20943. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  20944. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  20945. real$' %2.3 = LdConst [1] 10
  20946. goto BB3
  20947. BB1
  20948. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  20949. void Deopt %1.0
  20950. BB3
  20951. val %3.0 = Force %2.2, e0.0
  20952. val %3.1 = Mod %3.0, %2.3, e0.0
  20953. real$' %3.2 = LdConst [1] 1
  20954. goto BB4
  20955. BB4
  20956. val %4.0 = Add %3.1, %3.2, e0.0
  20957. void Return %4.0
  20958. Prom 8:
  20959. BB0
  20960. env e0.0 = LdFunctionEnv
  20961. val^? %0.1 = LdVar depth, e0.0
  20962. val %0.2 = Force %0.1, e0.0
  20963. real$' %0.3 = LdConst [1] 1
  20964. goto BB1
  20965. BB1
  20966. val %1.0 = Sub %0.2, %0.3, e0.0
  20967. void Return %1.0
  20968. Prom 9:
  20969. BB0
  20970. env e0.0 = LdFunctionEnv
  20971. val^? %0.1 = LdVar random, e0.0
  20972. val %0.2 = Force %0.1, e0.0
  20973. void Return %0.2
  20974. ├────── Delay instructions: == 420
  20975. buildTreeDepth[0x7f92446010b0]
  20976. BB0
  20977. val^ %0.0 = LdArg 0
  20978. val^ %0.1 = LdArg 1
  20979. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  20980. val %0.3 = Force! %0.0, e0.2
  20981. real$' %0.4 = LdConst [1] 1
  20982. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  20983. BB2
  20984. t %2.0 = IsObject %0.3
  20985. void AssumeNot %2.0, %0.5
  20986. lgl' %2.2 = Eq %0.3, %0.4, elided
  20987. lgl %2.3 = AsLogical %2.2
  20988. t %2.4 = AsTest %2.3
  20989. void Branch %2.4 -> BB23 (if true) | BB3 (if false)
  20990. BB1
  20991. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  20992. void Deopt %1.0
  20993. BB23
  20994. cls %23.0 = LdFun c, e0.2
  20995. prom %23.1 = MkArg missing, Prom(4), e0.2
  20996. fs %23.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  20997. val^ %23.3 = Call %23.0(%23.1) %23.2, e0.2
  20998. goto BB24
  20999. BB3
  21000. cls %3.0 = LdFun vector, e0.2
  21001. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  21002. BB24
  21003. val^ %24.0 = Phi %6.0:BB22, %23.3:BB23
  21004. val %24.1 = Force %24.0, e0.2
  21005. void Return %24.1
  21006. BB5
  21007. cls' %5.0 = LdConst function (mode = "logical", length = ...
  21008. t %5.1 = Identical %3.0, %5.0
  21009. void Assume %5.1, %3.1
  21010. real$' %5.3 = LdConst [1] 4
  21011. str$' %5.4 = LdConst [1] "list"
  21012. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  21013. void StVar array, %5.5, e0.2
  21014. real$' %5.7 = LdConst [1] 4
  21015. real$' %5.8 = LdConst [1] 1
  21016. val' %5.9 = Colon %5.8, %5.7, elided
  21017. val' %5.10 = SetShared %5.9
  21018. int$' %5.11 = ForSeqSize %5.10
  21019. int$' %5.12 = LdConst [1] 0
  21020. goto BB6
  21021. BB4
  21022. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  21023. void Deopt %4.0
  21024. BB6
  21025. val %6.0 = Phi %5.5:BB5, %25.7:BB25
  21026. int$' %6.1 = Phi %5.12:BB5, %6.3:BB25
  21027. int$' %6.2 = Inc %6.1
  21028. int$' %6.3 = EnsureNamed %6.2
  21029. lgl' %6.4 = Lt %5.11, %6.3, elided
  21030. t %6.5 = AsTest %6.4
  21031. void Branch %6.5 -> BB22 (if true) | BB7 (if false)
  21032. BB22
  21033. goto BB24
  21034. BB7
  21035. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  21036. void StVar i, %7.0, e0.2
  21037. cls %7.2 = LdFun buildTreeDepth, e0.2
  21038. prom %7.3 = MkArg missing, Prom(2), e0.2
  21039. prom %7.4 = MkArg missing, Prom(3), e0.2
  21040. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  21041. BB9
  21042. cls' %9.0 = LdConst function (depth, random) { if (d...
  21043. t %9.1 = Identical %7.2, %9.0
  21044. void Assume %9.1, %7.5
  21045. val^? %9.3 = CastType %7.3
  21046. val^? %9.4 = CastType %7.4
  21047. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  21048. val %9.6 = Force %9.3, e9.5
  21049. real$' %9.7 = LdConst [1] 1
  21050. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  21051. BB8
  21052. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  21053. void Deopt %8.0
  21054. BB11
  21055. t %11.0 = IsObject %9.6
  21056. void AssumeNot %11.0, %9.8
  21057. lgl' %11.2 = Eq %9.6, %9.7, elided
  21058. lgl %11.3 = AsLogical %11.2
  21059. t %11.4 = AsTest %11.3
  21060. void Branch %11.4 -> BB21 (if true) | BB12 (if false)
  21061. BB10
  21062. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21063. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  21064. void Deopt %10.1
  21065. BB21
  21066. cls %21.0 = LdFun c, e9.5
  21067. prom %21.1 = MkArg missing, Prom(5), e9.5
  21068. fs %21.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21069. fs %21.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%21.2
  21070. val^ %21.4 = Call %21.0(%21.1) %21.3, e9.5
  21071. goto BB25
  21072. BB12
  21073. cls %12.0 = LdFun vector, e9.5
  21074. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  21075. BB25
  21076. val^ %25.0 = Phi %15.0:BB20, %21.4:BB21
  21077. val %25.1 = Force %25.0, e9.5
  21078. val^? %25.2 = LdVar array, e0.2
  21079. val %25.3 = Force %25.2, e0.2
  21080. val^? %25.4 = LdVar i, e0.2
  21081. val %25.5 = Force %25.4, e0.2
  21082. val %25.6 = EnsureNamed %25.1
  21083. val %25.7 = Subassign2_1D %25.6, %25.3, %25.5, e0.2
  21084. void StVar array, %25.7, e0.2
  21085. goto BB6
  21086. BB14
  21087. cls' %14.0 = LdConst function (mode = "logical", length = ...
  21088. t %14.1 = Identical %12.0, %14.0
  21089. void Assume %14.1, %12.1
  21090. str$' %14.3 = LdConst [1] "list"
  21091. real$' %14.4 = LdConst [1] 4
  21092. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  21093. void StVar array, %14.5, e9.5
  21094. real$' %14.7 = LdConst [1] 1
  21095. real$' %14.8 = LdConst [1] 4
  21096. val' %14.9 = Colon %14.7, %14.8, elided
  21097. val' %14.10 = SetShared %14.9
  21098. int$' %14.11 = ForSeqSize %14.10
  21099. int$' %14.12 = LdConst [1] 0
  21100. goto BB15
  21101. BB13
  21102. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21103. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  21104. void Deopt %13.1
  21105. BB15
  21106. val %15.0 = Phi %14.5:BB14, %19.12:BB19
  21107. int$' %15.1 = Phi %14.12:BB14, %15.3:BB19
  21108. int$' %15.2 = Inc %15.1
  21109. int$' %15.3 = EnsureNamed %15.2
  21110. lgl' %15.4 = Lt %14.11, %15.3, elided
  21111. t %15.5 = AsTest %15.4
  21112. void Branch %15.5 -> BB20 (if true) | BB16 (if false)
  21113. BB20
  21114. goto BB25
  21115. BB16
  21116. goto BB17
  21117. BB17
  21118. val$' %17.0 = Extract2_1D %14.10, %15.3, elided
  21119. void StVar i, %17.0, e9.5
  21120. cls %17.2 = LdFun buildTreeDepth, e9.5
  21121. prom %17.3 = MkArg missing, Prom(8), e9.5
  21122. prom %17.4 = MkArg missing, Prom(9), e9.5
  21123. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  21124. BB19
  21125. cls' %19.0 = LdConst function (depth, random) { if (d...
  21126. t %19.1 = Identical %17.2, %19.0
  21127. void Assume %19.1, %17.5
  21128. fs %19.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21129. fs %19.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%19.3
  21130. val^ %19.5 = StaticCall buildTreeDepth[0x7f92446010b0](%17.3, %17.4) %19.4, e9.5
  21131. val^? %19.6 = LdVar array, e9.5
  21132. val %19.7 = Force %19.6, e9.5
  21133. val^? %19.8 = LdVar i, e9.5
  21134. val %19.9 = Force %19.8, e9.5
  21135. val^ %19.10 = EnsureNamed %19.5
  21136. val %19.11 = Force %19.10, e9.5
  21137. val %19.12 = Subassign2_1D %19.11, %19.7, %19.9, e9.5
  21138. void StVar array, %19.12, e9.5
  21139. goto BB15
  21140. BB18
  21141. fs %18.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21142. fs %18.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %17.2], env=e9.5, next=%18.0
  21143. void Deopt %18.1
  21144. Prom 2:
  21145. BB0
  21146. env e0.0 = LdFunctionEnv
  21147. val^? %0.1 = LdVar depth, e0.0
  21148. val %0.2 = Force %0.1, e0.0
  21149. real$' %0.3 = LdConst [1] 1
  21150. goto BB1
  21151. BB1
  21152. val %1.0 = Sub %0.2, %0.3, e0.0
  21153. void Return %1.0
  21154. Prom 3:
  21155. BB0
  21156. env e0.0 = LdFunctionEnv
  21157. val^? %0.1 = LdVar random, e0.0
  21158. val %0.2 = Force %0.1, e0.0
  21159. void Return %0.2
  21160. Prom 4:
  21161. BB0
  21162. env e0.0 = LdFunctionEnv
  21163. cls %0.1 = LdFun nextRandom, e0.0
  21164. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21165. t %0.3 = Identical %0.1, %0.2
  21166. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21167. BB2
  21168. void Assume %0.3, %0.4
  21169. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21170. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21171. real$' %2.3 = LdConst [1] 10
  21172. goto BB3
  21173. BB1
  21174. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21175. void Deopt %1.0
  21176. BB3
  21177. val %3.0 = Force %2.2, e0.0
  21178. val %3.1 = Mod %3.0, %2.3, e0.0
  21179. real$' %3.2 = LdConst [1] 1
  21180. goto BB4
  21181. BB4
  21182. val %4.0 = Add %3.1, %3.2, e0.0
  21183. void Return %4.0
  21184. Prom 5:
  21185. BB0
  21186. env e0.0 = LdFunctionEnv
  21187. cls %0.1 = LdFun nextRandom, e0.0
  21188. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21189. t %0.3 = Identical %0.1, %0.2
  21190. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21191. BB2
  21192. void Assume %0.3, %0.4
  21193. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21194. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21195. real$' %2.3 = LdConst [1] 10
  21196. goto BB3
  21197. BB1
  21198. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21199. void Deopt %1.0
  21200. BB3
  21201. val %3.0 = Force %2.2, e0.0
  21202. val %3.1 = Mod %3.0, %2.3, e0.0
  21203. real$' %3.2 = LdConst [1] 1
  21204. goto BB4
  21205. BB4
  21206. val %4.0 = Add %3.1, %3.2, e0.0
  21207. void Return %4.0
  21208. Prom 8:
  21209. BB0
  21210. env e0.0 = LdFunctionEnv
  21211. val^? %0.1 = LdVar depth, e0.0
  21212. val %0.2 = Force %0.1, e0.0
  21213. real$' %0.3 = LdConst [1] 1
  21214. goto BB1
  21215. BB1
  21216. val %1.0 = Sub %0.2, %0.3, e0.0
  21217. void Return %1.0
  21218. Prom 9:
  21219. BB0
  21220. env e0.0 = LdFunctionEnv
  21221. val^? %0.1 = LdVar random, e0.0
  21222. val %0.2 = Force %0.1, e0.0
  21223. void Return %0.2
  21224. ├────── Elide environments not needed: == 427
  21225. buildTreeDepth[0x7f92446010b0]
  21226. BB0
  21227. val^ %0.0 = LdArg 0
  21228. val^ %0.1 = LdArg 1
  21229. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  21230. val %0.3 = Force! %0.0, e0.2
  21231. real$' %0.4 = LdConst [1] 1
  21232. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21233. BB2
  21234. t %2.0 = IsObject %0.3
  21235. void AssumeNot %2.0, %0.5
  21236. lgl' %2.2 = Eq %0.3, %0.4, elided
  21237. lgl %2.3 = AsLogical %2.2
  21238. t %2.4 = AsTest %2.3
  21239. void Branch %2.4 -> BB23 (if true) | BB3 (if false)
  21240. BB1
  21241. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  21242. void Deopt %1.0
  21243. BB23
  21244. cls %23.0 = LdFun c, e0.2
  21245. prom %23.1 = MkArg missing, Prom(4), e0.2
  21246. fs %23.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  21247. val^ %23.3 = Call %23.0(%23.1) %23.2, e0.2
  21248. goto BB24
  21249. BB3
  21250. cls %3.0 = LdFun vector, e0.2
  21251. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  21252. BB24
  21253. val^ %24.0 = Phi %6.0:BB22, %23.3:BB23
  21254. val %24.1 = Force %24.0, e0.2
  21255. void Return %24.1
  21256. BB5
  21257. cls' %5.0 = LdConst function (mode = "logical", length = ...
  21258. t %5.1 = Identical %3.0, %5.0
  21259. void Assume %5.1, %3.1
  21260. real$' %5.3 = LdConst [1] 4
  21261. str$' %5.4 = LdConst [1] "list"
  21262. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  21263. void StVar array, %5.5, e0.2
  21264. real$' %5.7 = LdConst [1] 4
  21265. real$' %5.8 = LdConst [1] 1
  21266. val' %5.9 = Colon %5.8, %5.7, elided
  21267. val' %5.10 = SetShared %5.9
  21268. int$' %5.11 = ForSeqSize %5.10
  21269. int$' %5.12 = LdConst [1] 0
  21270. goto BB6
  21271. BB4
  21272. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  21273. void Deopt %4.0
  21274. BB6
  21275. val %6.0 = Phi %5.5:BB5, %25.7:BB25
  21276. int$' %6.1 = Phi %5.12:BB5, %6.3:BB25
  21277. int$' %6.2 = Inc %6.1
  21278. int$' %6.3 = EnsureNamed %6.2
  21279. lgl' %6.4 = Lt %5.11, %6.3, elided
  21280. t %6.5 = AsTest %6.4
  21281. void Branch %6.5 -> BB22 (if true) | BB7 (if false)
  21282. BB22
  21283. goto BB24
  21284. BB7
  21285. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  21286. void StVar i, %7.0, e0.2
  21287. cls %7.2 = LdFun buildTreeDepth, e0.2
  21288. prom %7.3 = MkArg missing, Prom(2), e0.2
  21289. prom %7.4 = MkArg missing, Prom(3), e0.2
  21290. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  21291. BB9
  21292. cls' %9.0 = LdConst function (depth, random) { if (d...
  21293. t %9.1 = Identical %7.2, %9.0
  21294. void Assume %9.1, %7.5
  21295. val^? %9.3 = CastType %7.3
  21296. val^? %9.4 = CastType %7.4
  21297. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  21298. val %9.6 = Force %9.3, e9.5
  21299. real$' %9.7 = LdConst [1] 1
  21300. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  21301. BB8
  21302. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  21303. void Deopt %8.0
  21304. BB11
  21305. t %11.0 = IsObject %9.6
  21306. void AssumeNot %11.0, %9.8
  21307. lgl' %11.2 = Eq %9.6, %9.7, elided
  21308. lgl %11.3 = AsLogical %11.2
  21309. t %11.4 = AsTest %11.3
  21310. void Branch %11.4 -> BB21 (if true) | BB12 (if false)
  21311. BB10
  21312. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21313. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  21314. void Deopt %10.1
  21315. BB21
  21316. cls %21.0 = LdFun c, e9.5
  21317. prom %21.1 = MkArg missing, Prom(5), e9.5
  21318. fs %21.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21319. fs %21.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%21.2
  21320. val^ %21.4 = Call %21.0(%21.1) %21.3, e9.5
  21321. goto BB25
  21322. BB12
  21323. cls %12.0 = LdFun vector, e9.5
  21324. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  21325. BB25
  21326. val^ %25.0 = Phi %15.0:BB20, %21.4:BB21
  21327. val %25.1 = Force %25.0, e9.5
  21328. val^? %25.2 = LdVar array, e0.2
  21329. val %25.3 = Force %25.2, e0.2
  21330. val^? %25.4 = LdVar i, e0.2
  21331. val %25.5 = Force %25.4, e0.2
  21332. val %25.6 = EnsureNamed %25.1
  21333. val %25.7 = Subassign2_1D %25.6, %25.3, %25.5, e0.2
  21334. void StVar array, %25.7, e0.2
  21335. goto BB6
  21336. BB14
  21337. cls' %14.0 = LdConst function (mode = "logical", length = ...
  21338. t %14.1 = Identical %12.0, %14.0
  21339. void Assume %14.1, %12.1
  21340. str$' %14.3 = LdConst [1] "list"
  21341. real$' %14.4 = LdConst [1] 4
  21342. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  21343. void StVar array, %14.5, e9.5
  21344. real$' %14.7 = LdConst [1] 1
  21345. real$' %14.8 = LdConst [1] 4
  21346. val' %14.9 = Colon %14.7, %14.8, elided
  21347. val' %14.10 = SetShared %14.9
  21348. int$' %14.11 = ForSeqSize %14.10
  21349. int$' %14.12 = LdConst [1] 0
  21350. goto BB15
  21351. BB13
  21352. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21353. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  21354. void Deopt %13.1
  21355. BB15
  21356. val %15.0 = Phi %14.5:BB14, %19.12:BB19
  21357. int$' %15.1 = Phi %14.12:BB14, %15.3:BB19
  21358. int$' %15.2 = Inc %15.1
  21359. int$' %15.3 = EnsureNamed %15.2
  21360. lgl' %15.4 = Lt %14.11, %15.3, elided
  21361. t %15.5 = AsTest %15.4
  21362. void Branch %15.5 -> BB20 (if true) | BB16 (if false)
  21363. BB20
  21364. goto BB25
  21365. BB16
  21366. goto BB17
  21367. BB17
  21368. val$' %17.0 = Extract2_1D %14.10, %15.3, elided
  21369. void StVar i, %17.0, e9.5
  21370. cls %17.2 = LdFun buildTreeDepth, e9.5
  21371. prom %17.3 = MkArg missing, Prom(8), e9.5
  21372. prom %17.4 = MkArg missing, Prom(9), e9.5
  21373. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  21374. BB19
  21375. cls' %19.0 = LdConst function (depth, random) { if (d...
  21376. t %19.1 = Identical %17.2, %19.0
  21377. void Assume %19.1, %17.5
  21378. fs %19.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21379. fs %19.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%19.3
  21380. val^ %19.5 = StaticCall buildTreeDepth[0x7f92446010b0](%17.3, %17.4) %19.4, e9.5
  21381. val^? %19.6 = LdVar array, e9.5
  21382. val %19.7 = Force %19.6, e9.5
  21383. val^? %19.8 = LdVar i, e9.5
  21384. val %19.9 = Force %19.8, e9.5
  21385. val^ %19.10 = EnsureNamed %19.5
  21386. val %19.11 = Force %19.10, e9.5
  21387. val %19.12 = Subassign2_1D %19.11, %19.7, %19.9, e9.5
  21388. void StVar array, %19.12, e9.5
  21389. goto BB15
  21390. BB18
  21391. fs %18.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21392. fs %18.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %17.2], env=e9.5, next=%18.0
  21393. void Deopt %18.1
  21394. Prom 2:
  21395. BB0
  21396. env e0.0 = LdFunctionEnv
  21397. val^? %0.1 = LdVar depth, e0.0
  21398. val %0.2 = Force %0.1, e0.0
  21399. real$' %0.3 = LdConst [1] 1
  21400. goto BB1
  21401. BB1
  21402. val %1.0 = Sub %0.2, %0.3, e0.0
  21403. void Return %1.0
  21404. Prom 3:
  21405. BB0
  21406. env e0.0 = LdFunctionEnv
  21407. val^? %0.1 = LdVar random, e0.0
  21408. val %0.2 = Force %0.1, e0.0
  21409. void Return %0.2
  21410. Prom 4:
  21411. BB0
  21412. env e0.0 = LdFunctionEnv
  21413. cls %0.1 = LdFun nextRandom, e0.0
  21414. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21415. t %0.3 = Identical %0.1, %0.2
  21416. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21417. BB2
  21418. void Assume %0.3, %0.4
  21419. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21420. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21421. real$' %2.3 = LdConst [1] 10
  21422. goto BB3
  21423. BB1
  21424. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21425. void Deopt %1.0
  21426. BB3
  21427. val %3.0 = Force %2.2, e0.0
  21428. val %3.1 = Mod %3.0, %2.3, e0.0
  21429. real$' %3.2 = LdConst [1] 1
  21430. goto BB4
  21431. BB4
  21432. val %4.0 = Add %3.1, %3.2, e0.0
  21433. void Return %4.0
  21434. Prom 5:
  21435. BB0
  21436. env e0.0 = LdFunctionEnv
  21437. cls %0.1 = LdFun nextRandom, e0.0
  21438. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21439. t %0.3 = Identical %0.1, %0.2
  21440. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21441. BB2
  21442. void Assume %0.3, %0.4
  21443. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21444. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21445. real$' %2.3 = LdConst [1] 10
  21446. goto BB3
  21447. BB1
  21448. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21449. void Deopt %1.0
  21450. BB3
  21451. val %3.0 = Force %2.2, e0.0
  21452. val %3.1 = Mod %3.0, %2.3, e0.0
  21453. real$' %3.2 = LdConst [1] 1
  21454. goto BB4
  21455. BB4
  21456. val %4.0 = Add %3.1, %3.2, e0.0
  21457. void Return %4.0
  21458. Prom 8:
  21459. BB0
  21460. env e0.0 = LdFunctionEnv
  21461. val^? %0.1 = LdVar depth, e0.0
  21462. val %0.2 = Force %0.1, e0.0
  21463. real$' %0.3 = LdConst [1] 1
  21464. goto BB1
  21465. BB1
  21466. val %1.0 = Sub %0.2, %0.3, e0.0
  21467. void Return %1.0
  21468. Prom 9:
  21469. BB0
  21470. env e0.0 = LdFunctionEnv
  21471. val^? %0.1 = LdVar random, e0.0
  21472. val %0.2 = Force %0.1, e0.0
  21473. void Return %0.2
  21474. ├────── Move environment creation as far as possible: == 434
  21475. buildTreeDepth[0x7f92446010b0]
  21476. BB0
  21477. val^ %0.0 = LdArg 0
  21478. val^ %0.1 = LdArg 1
  21479. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  21480. val %0.3 = Force! %0.0, e0.2
  21481. real$' %0.4 = LdConst [1] 1
  21482. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21483. BB2
  21484. t %2.0 = IsObject %0.3
  21485. void AssumeNot %2.0, %0.5
  21486. lgl' %2.2 = Eq %0.3, %0.4, elided
  21487. lgl %2.3 = AsLogical %2.2
  21488. t %2.4 = AsTest %2.3
  21489. void Branch %2.4 -> BB23 (if true) | BB3 (if false)
  21490. BB1
  21491. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  21492. void Deopt %1.0
  21493. BB23
  21494. cls %23.0 = LdFun c, e0.2
  21495. prom %23.1 = MkArg missing, Prom(4), e0.2
  21496. fs %23.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  21497. val^ %23.3 = Call %23.0(%23.1) %23.2, e0.2
  21498. goto BB24
  21499. BB3
  21500. cls %3.0 = LdFun vector, e0.2
  21501. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  21502. BB24
  21503. val^ %24.0 = Phi %6.0:BB22, %23.3:BB23
  21504. val %24.1 = Force %24.0, e0.2
  21505. void Return %24.1
  21506. BB5
  21507. cls' %5.0 = LdConst function (mode = "logical", length = ...
  21508. t %5.1 = Identical %3.0, %5.0
  21509. void Assume %5.1, %3.1
  21510. real$' %5.3 = LdConst [1] 4
  21511. str$' %5.4 = LdConst [1] "list"
  21512. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  21513. void StVar array, %5.5, e0.2
  21514. real$' %5.7 = LdConst [1] 4
  21515. real$' %5.8 = LdConst [1] 1
  21516. val' %5.9 = Colon %5.8, %5.7, elided
  21517. val' %5.10 = SetShared %5.9
  21518. int$' %5.11 = ForSeqSize %5.10
  21519. int$' %5.12 = LdConst [1] 0
  21520. goto BB6
  21521. BB4
  21522. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  21523. void Deopt %4.0
  21524. BB6
  21525. val %6.0 = Phi %5.5:BB5, %25.7:BB25
  21526. int$' %6.1 = Phi %5.12:BB5, %6.3:BB25
  21527. int$' %6.2 = Inc %6.1
  21528. int$' %6.3 = EnsureNamed %6.2
  21529. lgl' %6.4 = Lt %5.11, %6.3, elided
  21530. t %6.5 = AsTest %6.4
  21531. void Branch %6.5 -> BB22 (if true) | BB7 (if false)
  21532. BB22
  21533. goto BB24
  21534. BB7
  21535. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  21536. void StVar i, %7.0, e0.2
  21537. cls %7.2 = LdFun buildTreeDepth, e0.2
  21538. prom %7.3 = MkArg missing, Prom(2), e0.2
  21539. prom %7.4 = MkArg missing, Prom(3), e0.2
  21540. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  21541. BB9
  21542. cls' %9.0 = LdConst function (depth, random) { if (d...
  21543. t %9.1 = Identical %7.2, %9.0
  21544. void Assume %9.1, %7.5
  21545. val^? %9.3 = CastType %7.3
  21546. val^? %9.4 = CastType %7.4
  21547. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  21548. val %9.6 = Force %9.3, e9.5
  21549. real$' %9.7 = LdConst [1] 1
  21550. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  21551. BB8
  21552. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  21553. void Deopt %8.0
  21554. BB11
  21555. t %11.0 = IsObject %9.6
  21556. void AssumeNot %11.0, %9.8
  21557. lgl' %11.2 = Eq %9.6, %9.7, elided
  21558. lgl %11.3 = AsLogical %11.2
  21559. t %11.4 = AsTest %11.3
  21560. void Branch %11.4 -> BB21 (if true) | BB12 (if false)
  21561. BB10
  21562. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21563. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  21564. void Deopt %10.1
  21565. BB21
  21566. cls %21.0 = LdFun c, e9.5
  21567. prom %21.1 = MkArg missing, Prom(5), e9.5
  21568. fs %21.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21569. fs %21.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%21.2
  21570. val^ %21.4 = Call %21.0(%21.1) %21.3, e9.5
  21571. goto BB25
  21572. BB12
  21573. cls %12.0 = LdFun vector, e9.5
  21574. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  21575. BB25
  21576. val^ %25.0 = Phi %15.0:BB20, %21.4:BB21
  21577. val %25.1 = Force %25.0, e9.5
  21578. val^? %25.2 = LdVar array, e0.2
  21579. val %25.3 = Force %25.2, e0.2
  21580. val^? %25.4 = LdVar i, e0.2
  21581. val %25.5 = Force %25.4, e0.2
  21582. val %25.6 = EnsureNamed %25.1
  21583. val %25.7 = Subassign2_1D %25.6, %25.3, %25.5, e0.2
  21584. void StVar array, %25.7, e0.2
  21585. goto BB6
  21586. BB14
  21587. cls' %14.0 = LdConst function (mode = "logical", length = ...
  21588. t %14.1 = Identical %12.0, %14.0
  21589. void Assume %14.1, %12.1
  21590. str$' %14.3 = LdConst [1] "list"
  21591. real$' %14.4 = LdConst [1] 4
  21592. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  21593. void StVar array, %14.5, e9.5
  21594. real$' %14.7 = LdConst [1] 1
  21595. real$' %14.8 = LdConst [1] 4
  21596. val' %14.9 = Colon %14.7, %14.8, elided
  21597. val' %14.10 = SetShared %14.9
  21598. int$' %14.11 = ForSeqSize %14.10
  21599. int$' %14.12 = LdConst [1] 0
  21600. goto BB15
  21601. BB13
  21602. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21603. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  21604. void Deopt %13.1
  21605. BB15
  21606. val %15.0 = Phi %14.5:BB14, %19.12:BB19
  21607. int$' %15.1 = Phi %14.12:BB14, %15.3:BB19
  21608. int$' %15.2 = Inc %15.1
  21609. int$' %15.3 = EnsureNamed %15.2
  21610. lgl' %15.4 = Lt %14.11, %15.3, elided
  21611. t %15.5 = AsTest %15.4
  21612. void Branch %15.5 -> BB20 (if true) | BB16 (if false)
  21613. BB20
  21614. goto BB25
  21615. BB16
  21616. goto BB17
  21617. BB17
  21618. val$' %17.0 = Extract2_1D %14.10, %15.3, elided
  21619. void StVar i, %17.0, e9.5
  21620. cls %17.2 = LdFun buildTreeDepth, e9.5
  21621. prom %17.3 = MkArg missing, Prom(8), e9.5
  21622. prom %17.4 = MkArg missing, Prom(9), e9.5
  21623. cp %17.5 = Checkpoint -> BB19 (by default) | BB18 (if coming from expect)
  21624. BB19
  21625. cls' %19.0 = LdConst function (depth, random) { if (d...
  21626. t %19.1 = Identical %17.2, %19.0
  21627. void Assume %19.1, %17.5
  21628. fs %19.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21629. fs %19.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%19.3
  21630. val^ %19.5 = StaticCall buildTreeDepth[0x7f92446010b0](%17.3, %17.4) %19.4, e9.5
  21631. val^? %19.6 = LdVar array, e9.5
  21632. val %19.7 = Force %19.6, e9.5
  21633. val^? %19.8 = LdVar i, e9.5
  21634. val %19.9 = Force %19.8, e9.5
  21635. val^ %19.10 = EnsureNamed %19.5
  21636. val %19.11 = Force %19.10, e9.5
  21637. val %19.12 = Subassign2_1D %19.11, %19.7, %19.9, e9.5
  21638. void StVar array, %19.12, e9.5
  21639. goto BB15
  21640. BB18
  21641. fs %18.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21642. fs %18.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %17.2], env=e9.5, next=%18.0
  21643. void Deopt %18.1
  21644. Prom 2:
  21645. BB0
  21646. env e0.0 = LdFunctionEnv
  21647. val^? %0.1 = LdVar depth, e0.0
  21648. val %0.2 = Force %0.1, e0.0
  21649. real$' %0.3 = LdConst [1] 1
  21650. goto BB1
  21651. BB1
  21652. val %1.0 = Sub %0.2, %0.3, e0.0
  21653. void Return %1.0
  21654. Prom 3:
  21655. BB0
  21656. env e0.0 = LdFunctionEnv
  21657. val^? %0.1 = LdVar random, e0.0
  21658. val %0.2 = Force %0.1, e0.0
  21659. void Return %0.2
  21660. Prom 4:
  21661. BB0
  21662. env e0.0 = LdFunctionEnv
  21663. cls %0.1 = LdFun nextRandom, e0.0
  21664. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21665. t %0.3 = Identical %0.1, %0.2
  21666. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21667. BB2
  21668. void Assume %0.3, %0.4
  21669. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21670. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21671. real$' %2.3 = LdConst [1] 10
  21672. goto BB3
  21673. BB1
  21674. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21675. void Deopt %1.0
  21676. BB3
  21677. val %3.0 = Force %2.2, e0.0
  21678. val %3.1 = Mod %3.0, %2.3, e0.0
  21679. real$' %3.2 = LdConst [1] 1
  21680. goto BB4
  21681. BB4
  21682. val %4.0 = Add %3.1, %3.2, e0.0
  21683. void Return %4.0
  21684. Prom 5:
  21685. BB0
  21686. env e0.0 = LdFunctionEnv
  21687. cls %0.1 = LdFun nextRandom, e0.0
  21688. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21689. t %0.3 = Identical %0.1, %0.2
  21690. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21691. BB2
  21692. void Assume %0.3, %0.4
  21693. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21694. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21695. real$' %2.3 = LdConst [1] 10
  21696. goto BB3
  21697. BB1
  21698. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21699. void Deopt %1.0
  21700. BB3
  21701. val %3.0 = Force %2.2, e0.0
  21702. val %3.1 = Mod %3.0, %2.3, e0.0
  21703. real$' %3.2 = LdConst [1] 1
  21704. goto BB4
  21705. BB4
  21706. val %4.0 = Add %3.1, %3.2, e0.0
  21707. void Return %4.0
  21708. Prom 8:
  21709. BB0
  21710. env e0.0 = LdFunctionEnv
  21711. val^? %0.1 = LdVar depth, e0.0
  21712. val %0.2 = Force %0.1, e0.0
  21713. real$' %0.3 = LdConst [1] 1
  21714. goto BB1
  21715. BB1
  21716. val %1.0 = Sub %0.2, %0.3, e0.0
  21717. void Return %1.0
  21718. Prom 9:
  21719. BB0
  21720. env e0.0 = LdFunctionEnv
  21721. val^? %0.1 = LdVar random, e0.0
  21722. val %0.2 = Force %0.1, e0.0
  21723. void Return %0.2
  21724. ├────── Cleanup redundant operations: == 441
  21725. buildTreeDepth[0x7f92446010b0]
  21726. BB0
  21727. val^ %0.0 = LdArg 0
  21728. val^ %0.1 = LdArg 1
  21729. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  21730. val %0.3 = Force! %0.0, e0.2
  21731. real$' %0.4 = LdConst [1] 1
  21732. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21733. BB2
  21734. t %2.0 = IsObject %0.3
  21735. void AssumeNot %2.0, %0.5
  21736. lgl' %2.2 = Eq %0.3, %0.4, elided
  21737. lgl %2.3 = AsLogical %2.2
  21738. t %2.4 = AsTest %2.3
  21739. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  21740. BB1
  21741. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  21742. void Deopt %1.0
  21743. BB22
  21744. cls %22.0 = LdFun c, e0.2
  21745. prom %22.1 = MkArg missing, Prom(4), e0.2
  21746. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  21747. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  21748. goto BB23
  21749. BB3
  21750. cls %3.0 = LdFun vector, e0.2
  21751. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  21752. BB23
  21753. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  21754. val %23.1 = Force %23.0, e0.2
  21755. void Return %23.1
  21756. BB5
  21757. cls' %5.0 = LdConst function (mode = "logical", length = ...
  21758. t %5.1 = Identical %3.0, %5.0
  21759. void Assume %5.1, %3.1
  21760. real$' %5.3 = LdConst [1] 4
  21761. str$' %5.4 = LdConst [1] "list"
  21762. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  21763. void StVar array, %5.5, e0.2
  21764. real$' %5.7 = LdConst [1] 4
  21765. real$' %5.8 = LdConst [1] 1
  21766. val' %5.9 = Colon %5.8, %5.7, elided
  21767. val' %5.10 = SetShared %5.9
  21768. int$' %5.11 = ForSeqSize %5.10
  21769. int$' %5.12 = LdConst [1] 0
  21770. goto BB6
  21771. BB4
  21772. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  21773. void Deopt %4.0
  21774. BB6
  21775. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  21776. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  21777. int$' %6.2 = Inc %6.1
  21778. int$' %6.3 = EnsureNamed %6.2
  21779. lgl' %6.4 = Lt %5.11, %6.3, elided
  21780. t %6.5 = AsTest %6.4
  21781. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  21782. BB21
  21783. goto BB23
  21784. BB7
  21785. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  21786. void StVar i, %7.0, e0.2
  21787. cls %7.2 = LdFun buildTreeDepth, e0.2
  21788. prom %7.3 = MkArg missing, Prom(2), e0.2
  21789. prom %7.4 = MkArg missing, Prom(3), e0.2
  21790. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  21791. BB9
  21792. cls' %9.0 = LdConst function (depth, random) { if (d...
  21793. t %9.1 = Identical %7.2, %9.0
  21794. void Assume %9.1, %7.5
  21795. val^? %9.3 = CastType %7.3
  21796. val^? %9.4 = CastType %7.4
  21797. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  21798. val %9.6 = Force %9.3, e9.5
  21799. real$' %9.7 = LdConst [1] 1
  21800. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  21801. BB8
  21802. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  21803. void Deopt %8.0
  21804. BB11
  21805. t %11.0 = IsObject %9.6
  21806. void AssumeNot %11.0, %9.8
  21807. lgl' %11.2 = Eq %9.6, %9.7, elided
  21808. lgl %11.3 = AsLogical %11.2
  21809. t %11.4 = AsTest %11.3
  21810. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  21811. BB10
  21812. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21813. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  21814. void Deopt %10.1
  21815. BB20
  21816. cls %20.0 = LdFun c, e9.5
  21817. prom %20.1 = MkArg missing, Prom(5), e9.5
  21818. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21819. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  21820. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  21821. goto BB24
  21822. BB12
  21823. cls %12.0 = LdFun vector, e9.5
  21824. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  21825. BB24
  21826. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  21827. val %24.1 = Force %24.0, e9.5
  21828. val^? %24.2 = LdVar array, e0.2
  21829. val %24.3 = Force %24.2, e0.2
  21830. val^? %24.4 = LdVar i, e0.2
  21831. val %24.5 = Force %24.4, e0.2
  21832. val %24.6 = EnsureNamed %24.1
  21833. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  21834. void StVar array, %24.7, e0.2
  21835. goto BB6
  21836. BB14
  21837. cls' %14.0 = LdConst function (mode = "logical", length = ...
  21838. t %14.1 = Identical %12.0, %14.0
  21839. void Assume %14.1, %12.1
  21840. str$' %14.3 = LdConst [1] "list"
  21841. real$' %14.4 = LdConst [1] 4
  21842. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  21843. void StVar array, %14.5, e9.5
  21844. real$' %14.7 = LdConst [1] 1
  21845. real$' %14.8 = LdConst [1] 4
  21846. val' %14.9 = Colon %14.7, %14.8, elided
  21847. val' %14.10 = SetShared %14.9
  21848. int$' %14.11 = ForSeqSize %14.10
  21849. int$' %14.12 = LdConst [1] 0
  21850. goto BB15
  21851. BB13
  21852. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21853. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  21854. void Deopt %13.1
  21855. BB15
  21856. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  21857. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  21858. int$' %15.2 = Inc %15.1
  21859. int$' %15.3 = EnsureNamed %15.2
  21860. lgl' %15.4 = Lt %14.11, %15.3, elided
  21861. t %15.5 = AsTest %15.4
  21862. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  21863. BB19
  21864. goto BB24
  21865. BB16
  21866. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  21867. void StVar i, %16.0, e9.5
  21868. cls %16.2 = LdFun buildTreeDepth, e9.5
  21869. prom %16.3 = MkArg missing, Prom(8), e9.5
  21870. prom %16.4 = MkArg missing, Prom(9), e9.5
  21871. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  21872. BB18
  21873. cls' %18.0 = LdConst function (depth, random) { if (d...
  21874. t %18.1 = Identical %16.2, %18.0
  21875. void Assume %18.1, %16.5
  21876. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21877. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  21878. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  21879. val^? %18.6 = LdVar array, e9.5
  21880. val %18.7 = Force %18.6, e9.5
  21881. val^? %18.8 = LdVar i, e9.5
  21882. val %18.9 = Force %18.8, e9.5
  21883. val^ %18.10 = EnsureNamed %18.5
  21884. val %18.11 = Force %18.10, e9.5
  21885. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  21886. void StVar array, %18.12, e9.5
  21887. goto BB15
  21888. BB17
  21889. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  21890. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  21891. void Deopt %17.1
  21892. Prom 2:
  21893. BB0
  21894. env e0.0 = LdFunctionEnv
  21895. val^? %0.1 = LdVar depth, e0.0
  21896. val %0.2 = Force %0.1, e0.0
  21897. real$' %0.3 = LdConst [1] 1
  21898. goto BB1
  21899. BB1
  21900. val %1.0 = Sub %0.2, %0.3, e0.0
  21901. void Return %1.0
  21902. Prom 3:
  21903. BB0
  21904. env e0.0 = LdFunctionEnv
  21905. val^? %0.1 = LdVar random, e0.0
  21906. val %0.2 = Force %0.1, e0.0
  21907. void Return %0.2
  21908. Prom 4:
  21909. BB0
  21910. env e0.0 = LdFunctionEnv
  21911. cls %0.1 = LdFun nextRandom, e0.0
  21912. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21913. t %0.3 = Identical %0.1, %0.2
  21914. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21915. BB2
  21916. void Assume %0.3, %0.4
  21917. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21918. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21919. real$' %2.3 = LdConst [1] 10
  21920. goto BB3
  21921. BB1
  21922. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21923. void Deopt %1.0
  21924. BB3
  21925. val %3.0 = Force %2.2, e0.0
  21926. val %3.1 = Mod %3.0, %2.3, e0.0
  21927. real$' %3.2 = LdConst [1] 1
  21928. goto BB4
  21929. BB4
  21930. val %4.0 = Add %3.1, %3.2, e0.0
  21931. void Return %4.0
  21932. Prom 5:
  21933. BB0
  21934. env e0.0 = LdFunctionEnv
  21935. cls %0.1 = LdFun nextRandom, e0.0
  21936. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  21937. t %0.3 = Identical %0.1, %0.2
  21938. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21939. BB2
  21940. void Assume %0.3, %0.4
  21941. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  21942. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  21943. real$' %2.3 = LdConst [1] 10
  21944. goto BB3
  21945. BB1
  21946. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  21947. void Deopt %1.0
  21948. BB3
  21949. val %3.0 = Force %2.2, e0.0
  21950. val %3.1 = Mod %3.0, %2.3, e0.0
  21951. real$' %3.2 = LdConst [1] 1
  21952. goto BB4
  21953. BB4
  21954. val %4.0 = Add %3.1, %3.2, e0.0
  21955. void Return %4.0
  21956. Prom 8:
  21957. BB0
  21958. env e0.0 = LdFunctionEnv
  21959. val^? %0.1 = LdVar depth, e0.0
  21960. val %0.2 = Force %0.1, e0.0
  21961. real$' %0.3 = LdConst [1] 1
  21962. goto BB1
  21963. BB1
  21964. val %1.0 = Sub %0.2, %0.3, e0.0
  21965. void Return %1.0
  21966. Prom 9:
  21967. BB0
  21968. env e0.0 = LdFunctionEnv
  21969. val^? %0.1 = LdVar random, e0.0
  21970. val %0.2 = Force %0.1, e0.0
  21971. void Return %0.2
  21972. ├────── Inline closures: == 448
  21973. buildTreeDepth[0x7f92446010b0]
  21974. BB0
  21975. val^ %0.0 = LdArg 0
  21976. val^ %0.1 = LdArg 1
  21977. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  21978. val %0.3 = Force! %0.0, e0.2
  21979. real$' %0.4 = LdConst [1] 1
  21980. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  21981. BB2
  21982. t %2.0 = IsObject %0.3
  21983. void AssumeNot %2.0, %0.5
  21984. lgl' %2.2 = Eq %0.3, %0.4, elided
  21985. lgl %2.3 = AsLogical %2.2
  21986. t %2.4 = AsTest %2.3
  21987. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  21988. BB1
  21989. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  21990. void Deopt %1.0
  21991. BB22
  21992. cls %22.0 = LdFun c, e0.2
  21993. prom %22.1 = MkArg missing, Prom(4), e0.2
  21994. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  21995. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  21996. goto BB23
  21997. BB3
  21998. cls %3.0 = LdFun vector, e0.2
  21999. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  22000. BB23
  22001. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  22002. val %23.1 = Force %23.0, e0.2
  22003. void Return %23.1
  22004. BB5
  22005. cls' %5.0 = LdConst function (mode = "logical", length = ...
  22006. t %5.1 = Identical %3.0, %5.0
  22007. void Assume %5.1, %3.1
  22008. real$' %5.3 = LdConst [1] 4
  22009. str$' %5.4 = LdConst [1] "list"
  22010. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  22011. void StVar array, %5.5, e0.2
  22012. real$' %5.7 = LdConst [1] 4
  22013. real$' %5.8 = LdConst [1] 1
  22014. val' %5.9 = Colon %5.8, %5.7, elided
  22015. val' %5.10 = SetShared %5.9
  22016. int$' %5.11 = ForSeqSize %5.10
  22017. int$' %5.12 = LdConst [1] 0
  22018. goto BB6
  22019. BB4
  22020. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  22021. void Deopt %4.0
  22022. BB6
  22023. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  22024. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  22025. int$' %6.2 = Inc %6.1
  22026. int$' %6.3 = EnsureNamed %6.2
  22027. lgl' %6.4 = Lt %5.11, %6.3, elided
  22028. t %6.5 = AsTest %6.4
  22029. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  22030. BB21
  22031. goto BB23
  22032. BB7
  22033. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  22034. void StVar i, %7.0, e0.2
  22035. cls %7.2 = LdFun buildTreeDepth, e0.2
  22036. prom %7.3 = MkArg missing, Prom(2), e0.2
  22037. prom %7.4 = MkArg missing, Prom(3), e0.2
  22038. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  22039. BB9
  22040. cls' %9.0 = LdConst function (depth, random) { if (d...
  22041. t %9.1 = Identical %7.2, %9.0
  22042. void Assume %9.1, %7.5
  22043. val^? %9.3 = CastType %7.3
  22044. val^? %9.4 = CastType %7.4
  22045. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  22046. val %9.6 = Force %9.3, e9.5
  22047. real$' %9.7 = LdConst [1] 1
  22048. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  22049. BB8
  22050. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  22051. void Deopt %8.0
  22052. BB11
  22053. t %11.0 = IsObject %9.6
  22054. void AssumeNot %11.0, %9.8
  22055. lgl' %11.2 = Eq %9.6, %9.7, elided
  22056. lgl %11.3 = AsLogical %11.2
  22057. t %11.4 = AsTest %11.3
  22058. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  22059. BB10
  22060. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22061. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  22062. void Deopt %10.1
  22063. BB20
  22064. cls %20.0 = LdFun c, e9.5
  22065. prom %20.1 = MkArg missing, Prom(5), e9.5
  22066. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22067. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  22068. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  22069. goto BB24
  22070. BB12
  22071. cls %12.0 = LdFun vector, e9.5
  22072. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  22073. BB24
  22074. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  22075. val %24.1 = Force %24.0, e9.5
  22076. val^? %24.2 = LdVar array, e0.2
  22077. val %24.3 = Force %24.2, e0.2
  22078. val^? %24.4 = LdVar i, e0.2
  22079. val %24.5 = Force %24.4, e0.2
  22080. val %24.6 = EnsureNamed %24.1
  22081. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  22082. void StVar array, %24.7, e0.2
  22083. goto BB6
  22084. BB14
  22085. cls' %14.0 = LdConst function (mode = "logical", length = ...
  22086. t %14.1 = Identical %12.0, %14.0
  22087. void Assume %14.1, %12.1
  22088. str$' %14.3 = LdConst [1] "list"
  22089. real$' %14.4 = LdConst [1] 4
  22090. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  22091. void StVar array, %14.5, e9.5
  22092. real$' %14.7 = LdConst [1] 1
  22093. real$' %14.8 = LdConst [1] 4
  22094. val' %14.9 = Colon %14.7, %14.8, elided
  22095. val' %14.10 = SetShared %14.9
  22096. int$' %14.11 = ForSeqSize %14.10
  22097. int$' %14.12 = LdConst [1] 0
  22098. goto BB15
  22099. BB13
  22100. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22101. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  22102. void Deopt %13.1
  22103. BB15
  22104. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  22105. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  22106. int$' %15.2 = Inc %15.1
  22107. int$' %15.3 = EnsureNamed %15.2
  22108. lgl' %15.4 = Lt %14.11, %15.3, elided
  22109. t %15.5 = AsTest %15.4
  22110. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  22111. BB19
  22112. goto BB24
  22113. BB16
  22114. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  22115. void StVar i, %16.0, e9.5
  22116. cls %16.2 = LdFun buildTreeDepth, e9.5
  22117. prom %16.3 = MkArg missing, Prom(8), e9.5
  22118. prom %16.4 = MkArg missing, Prom(9), e9.5
  22119. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  22120. BB18
  22121. cls' %18.0 = LdConst function (depth, random) { if (d...
  22122. t %18.1 = Identical %16.2, %18.0
  22123. void Assume %18.1, %16.5
  22124. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22125. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  22126. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  22127. val^? %18.6 = LdVar array, e9.5
  22128. val %18.7 = Force %18.6, e9.5
  22129. val^? %18.8 = LdVar i, e9.5
  22130. val %18.9 = Force %18.8, e9.5
  22131. val^ %18.10 = EnsureNamed %18.5
  22132. val %18.11 = Force %18.10, e9.5
  22133. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  22134. void StVar array, %18.12, e9.5
  22135. goto BB15
  22136. BB17
  22137. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22138. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  22139. void Deopt %17.1
  22140. Prom 2:
  22141. BB0
  22142. env e0.0 = LdFunctionEnv
  22143. val^? %0.1 = LdVar depth, e0.0
  22144. val %0.2 = Force %0.1, e0.0
  22145. real$' %0.3 = LdConst [1] 1
  22146. goto BB1
  22147. BB1
  22148. val %1.0 = Sub %0.2, %0.3, e0.0
  22149. void Return %1.0
  22150. Prom 3:
  22151. BB0
  22152. env e0.0 = LdFunctionEnv
  22153. val^? %0.1 = LdVar random, e0.0
  22154. val %0.2 = Force %0.1, e0.0
  22155. void Return %0.2
  22156. Prom 4:
  22157. BB0
  22158. env e0.0 = LdFunctionEnv
  22159. cls %0.1 = LdFun nextRandom, e0.0
  22160. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22161. t %0.3 = Identical %0.1, %0.2
  22162. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22163. BB2
  22164. void Assume %0.3, %0.4
  22165. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22166. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22167. real$' %2.3 = LdConst [1] 10
  22168. goto BB3
  22169. BB1
  22170. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22171. void Deopt %1.0
  22172. BB3
  22173. val %3.0 = Force %2.2, e0.0
  22174. val %3.1 = Mod %3.0, %2.3, e0.0
  22175. real$' %3.2 = LdConst [1] 1
  22176. goto BB4
  22177. BB4
  22178. val %4.0 = Add %3.1, %3.2, e0.0
  22179. void Return %4.0
  22180. Prom 5:
  22181. BB0
  22182. env e0.0 = LdFunctionEnv
  22183. cls %0.1 = LdFun nextRandom, e0.0
  22184. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22185. t %0.3 = Identical %0.1, %0.2
  22186. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22187. BB2
  22188. void Assume %0.3, %0.4
  22189. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22190. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22191. real$' %2.3 = LdConst [1] 10
  22192. goto BB3
  22193. BB1
  22194. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22195. void Deopt %1.0
  22196. BB3
  22197. val %3.0 = Force %2.2, e0.0
  22198. val %3.1 = Mod %3.0, %2.3, e0.0
  22199. real$' %3.2 = LdConst [1] 1
  22200. goto BB4
  22201. BB4
  22202. val %4.0 = Add %3.1, %3.2, e0.0
  22203. void Return %4.0
  22204. Prom 8:
  22205. BB0
  22206. env e0.0 = LdFunctionEnv
  22207. val^? %0.1 = LdVar depth, e0.0
  22208. val %0.2 = Force %0.1, e0.0
  22209. real$' %0.3 = LdConst [1] 1
  22210. goto BB1
  22211. BB1
  22212. val %1.0 = Sub %0.2, %0.3, e0.0
  22213. void Return %1.0
  22214. Prom 9:
  22215. BB0
  22216. env e0.0 = LdFunctionEnv
  22217. val^? %0.1 = LdVar random, e0.0
  22218. val %0.2 = Force %0.1, e0.0
  22219. void Return %0.2
  22220. ├────── Inline Promises: == 455
  22221. buildTreeDepth[0x7f92446010b0]
  22222. BB0
  22223. val^ %0.0 = LdArg 0
  22224. val^ %0.1 = LdArg 1
  22225. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  22226. val %0.3 = Force! %0.0, e0.2
  22227. real$' %0.4 = LdConst [1] 1
  22228. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22229. BB2
  22230. t %2.0 = IsObject %0.3
  22231. void AssumeNot %2.0, %0.5
  22232. lgl' %2.2 = Eq %0.3, %0.4, elided
  22233. lgl %2.3 = AsLogical %2.2
  22234. t %2.4 = AsTest %2.3
  22235. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  22236. BB1
  22237. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  22238. void Deopt %1.0
  22239. BB22
  22240. cls %22.0 = LdFun c, e0.2
  22241. prom %22.1 = MkArg missing, Prom(4), e0.2
  22242. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  22243. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  22244. goto BB23
  22245. BB3
  22246. cls %3.0 = LdFun vector, e0.2
  22247. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  22248. BB23
  22249. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  22250. val %23.1 = Force %23.0, e0.2
  22251. void Return %23.1
  22252. BB5
  22253. cls' %5.0 = LdConst function (mode = "logical", length = ...
  22254. t %5.1 = Identical %3.0, %5.0
  22255. void Assume %5.1, %3.1
  22256. real$' %5.3 = LdConst [1] 4
  22257. str$' %5.4 = LdConst [1] "list"
  22258. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  22259. void StVar array, %5.5, e0.2
  22260. real$' %5.7 = LdConst [1] 4
  22261. real$' %5.8 = LdConst [1] 1
  22262. val' %5.9 = Colon %5.8, %5.7, elided
  22263. val' %5.10 = SetShared %5.9
  22264. int$' %5.11 = ForSeqSize %5.10
  22265. int$' %5.12 = LdConst [1] 0
  22266. goto BB6
  22267. BB4
  22268. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  22269. void Deopt %4.0
  22270. BB6
  22271. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  22272. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  22273. int$' %6.2 = Inc %6.1
  22274. int$' %6.3 = EnsureNamed %6.2
  22275. lgl' %6.4 = Lt %5.11, %6.3, elided
  22276. t %6.5 = AsTest %6.4
  22277. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  22278. BB21
  22279. goto BB23
  22280. BB7
  22281. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  22282. void StVar i, %7.0, e0.2
  22283. cls %7.2 = LdFun buildTreeDepth, e0.2
  22284. prom %7.3 = MkArg missing, Prom(2), e0.2
  22285. prom %7.4 = MkArg missing, Prom(3), e0.2
  22286. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  22287. BB9
  22288. cls' %9.0 = LdConst function (depth, random) { if (d...
  22289. t %9.1 = Identical %7.2, %9.0
  22290. void Assume %9.1, %7.5
  22291. val^? %9.3 = CastType %7.3
  22292. val^? %9.4 = CastType %7.4
  22293. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  22294. val %9.6 = Force %9.3, e9.5
  22295. real$' %9.7 = LdConst [1] 1
  22296. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  22297. BB8
  22298. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  22299. void Deopt %8.0
  22300. BB11
  22301. t %11.0 = IsObject %9.6
  22302. void AssumeNot %11.0, %9.8
  22303. lgl' %11.2 = Eq %9.6, %9.7, elided
  22304. lgl %11.3 = AsLogical %11.2
  22305. t %11.4 = AsTest %11.3
  22306. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  22307. BB10
  22308. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22309. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  22310. void Deopt %10.1
  22311. BB20
  22312. cls %20.0 = LdFun c, e9.5
  22313. prom %20.1 = MkArg missing, Prom(5), e9.5
  22314. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22315. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  22316. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  22317. goto BB24
  22318. BB12
  22319. cls %12.0 = LdFun vector, e9.5
  22320. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  22321. BB24
  22322. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  22323. val %24.1 = Force %24.0, e9.5
  22324. val^? %24.2 = LdVar array, e0.2
  22325. val %24.3 = Force %24.2, e0.2
  22326. val^? %24.4 = LdVar i, e0.2
  22327. val %24.5 = Force %24.4, e0.2
  22328. val %24.6 = EnsureNamed %24.1
  22329. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  22330. void StVar array, %24.7, e0.2
  22331. goto BB6
  22332. BB14
  22333. cls' %14.0 = LdConst function (mode = "logical", length = ...
  22334. t %14.1 = Identical %12.0, %14.0
  22335. void Assume %14.1, %12.1
  22336. str$' %14.3 = LdConst [1] "list"
  22337. real$' %14.4 = LdConst [1] 4
  22338. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  22339. void StVar array, %14.5, e9.5
  22340. real$' %14.7 = LdConst [1] 1
  22341. real$' %14.8 = LdConst [1] 4
  22342. val' %14.9 = Colon %14.7, %14.8, elided
  22343. val' %14.10 = SetShared %14.9
  22344. int$' %14.11 = ForSeqSize %14.10
  22345. int$' %14.12 = LdConst [1] 0
  22346. goto BB15
  22347. BB13
  22348. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22349. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  22350. void Deopt %13.1
  22351. BB15
  22352. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  22353. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  22354. int$' %15.2 = Inc %15.1
  22355. int$' %15.3 = EnsureNamed %15.2
  22356. lgl' %15.4 = Lt %14.11, %15.3, elided
  22357. t %15.5 = AsTest %15.4
  22358. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  22359. BB19
  22360. goto BB24
  22361. BB16
  22362. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  22363. void StVar i, %16.0, e9.5
  22364. cls %16.2 = LdFun buildTreeDepth, e9.5
  22365. prom %16.3 = MkArg missing, Prom(8), e9.5
  22366. prom %16.4 = MkArg missing, Prom(9), e9.5
  22367. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  22368. BB18
  22369. cls' %18.0 = LdConst function (depth, random) { if (d...
  22370. t %18.1 = Identical %16.2, %18.0
  22371. void Assume %18.1, %16.5
  22372. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22373. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  22374. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  22375. val^? %18.6 = LdVar array, e9.5
  22376. val %18.7 = Force %18.6, e9.5
  22377. val^? %18.8 = LdVar i, e9.5
  22378. val %18.9 = Force %18.8, e9.5
  22379. val^ %18.10 = EnsureNamed %18.5
  22380. val %18.11 = Force %18.10, e9.5
  22381. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  22382. void StVar array, %18.12, e9.5
  22383. goto BB15
  22384. BB17
  22385. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22386. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  22387. void Deopt %17.1
  22388. Prom 2:
  22389. BB0
  22390. env e0.0 = LdFunctionEnv
  22391. val^? %0.1 = LdVar depth, e0.0
  22392. val %0.2 = Force %0.1, e0.0
  22393. real$' %0.3 = LdConst [1] 1
  22394. goto BB1
  22395. BB1
  22396. val %1.0 = Sub %0.2, %0.3, e0.0
  22397. void Return %1.0
  22398. Prom 3:
  22399. BB0
  22400. env e0.0 = LdFunctionEnv
  22401. val^? %0.1 = LdVar random, e0.0
  22402. val %0.2 = Force %0.1, e0.0
  22403. void Return %0.2
  22404. Prom 4:
  22405. BB0
  22406. env e0.0 = LdFunctionEnv
  22407. cls %0.1 = LdFun nextRandom, e0.0
  22408. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22409. t %0.3 = Identical %0.1, %0.2
  22410. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22411. BB2
  22412. void Assume %0.3, %0.4
  22413. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22414. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22415. real$' %2.3 = LdConst [1] 10
  22416. goto BB3
  22417. BB1
  22418. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22419. void Deopt %1.0
  22420. BB3
  22421. val %3.0 = Force %2.2, e0.0
  22422. val %3.1 = Mod %3.0, %2.3, e0.0
  22423. real$' %3.2 = LdConst [1] 1
  22424. goto BB4
  22425. BB4
  22426. val %4.0 = Add %3.1, %3.2, e0.0
  22427. void Return %4.0
  22428. Prom 5:
  22429. BB0
  22430. env e0.0 = LdFunctionEnv
  22431. cls %0.1 = LdFun nextRandom, e0.0
  22432. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22433. t %0.3 = Identical %0.1, %0.2
  22434. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22435. BB2
  22436. void Assume %0.3, %0.4
  22437. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22438. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22439. real$' %2.3 = LdConst [1] 10
  22440. goto BB3
  22441. BB1
  22442. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22443. void Deopt %1.0
  22444. BB3
  22445. val %3.0 = Force %2.2, e0.0
  22446. val %3.1 = Mod %3.0, %2.3, e0.0
  22447. real$' %3.2 = LdConst [1] 1
  22448. goto BB4
  22449. BB4
  22450. val %4.0 = Add %3.1, %3.2, e0.0
  22451. void Return %4.0
  22452. Prom 8:
  22453. BB0
  22454. env e0.0 = LdFunctionEnv
  22455. val^? %0.1 = LdVar depth, e0.0
  22456. val %0.2 = Force %0.1, e0.0
  22457. real$' %0.3 = LdConst [1] 1
  22458. goto BB1
  22459. BB1
  22460. val %1.0 = Sub %0.2, %0.3, e0.0
  22461. void Return %1.0
  22462. Prom 9:
  22463. BB0
  22464. env e0.0 = LdFunctionEnv
  22465. val^? %0.1 = LdVar random, e0.0
  22466. val %0.2 = Force %0.1, e0.0
  22467. void Return %0.2
  22468. ├────── Scope resolution: == 462
  22469. buildTreeDepth[0x7f92446010b0]
  22470. BB0
  22471. val^ %0.0 = LdArg 0
  22472. val^ %0.1 = LdArg 1
  22473. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  22474. val %0.3 = Force! %0.0, e0.2
  22475. real$' %0.4 = LdConst [1] 1
  22476. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22477. BB2
  22478. t %2.0 = IsObject %0.3
  22479. void AssumeNot %2.0, %0.5
  22480. lgl' %2.2 = Eq %0.3, %0.4, elided
  22481. lgl %2.3 = AsLogical %2.2
  22482. t %2.4 = AsTest %2.3
  22483. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  22484. BB1
  22485. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  22486. void Deopt %1.0
  22487. BB22
  22488. cls %22.0 = LdFun c, e0.2
  22489. prom %22.1 = MkArg missing, Prom(4), e0.2
  22490. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  22491. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  22492. goto BB23
  22493. BB3
  22494. cls %3.0 = LdFun vector, e0.2
  22495. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  22496. BB23
  22497. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  22498. val %23.1 = Force %23.0, e0.2
  22499. void Return %23.1
  22500. BB5
  22501. cls' %5.0 = LdConst function (mode = "logical", length = ...
  22502. t %5.1 = Identical %3.0, %5.0
  22503. void Assume %5.1, %3.1
  22504. real$' %5.3 = LdConst [1] 4
  22505. str$' %5.4 = LdConst [1] "list"
  22506. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  22507. void StVar array, %5.5, e0.2
  22508. real$' %5.7 = LdConst [1] 4
  22509. real$' %5.8 = LdConst [1] 1
  22510. val' %5.9 = Colon %5.8, %5.7, elided
  22511. val' %5.10 = SetShared %5.9
  22512. int$' %5.11 = ForSeqSize %5.10
  22513. int$' %5.12 = LdConst [1] 0
  22514. goto BB6
  22515. BB4
  22516. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  22517. void Deopt %4.0
  22518. BB6
  22519. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  22520. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  22521. int$' %6.2 = Inc %6.1
  22522. int$' %6.3 = EnsureNamed %6.2
  22523. lgl' %6.4 = Lt %5.11, %6.3, elided
  22524. t %6.5 = AsTest %6.4
  22525. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  22526. BB21
  22527. goto BB23
  22528. BB7
  22529. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  22530. void StVar i, %7.0, e0.2
  22531. cls %7.2 = LdFun buildTreeDepth, e0.2
  22532. prom %7.3 = MkArg missing, Prom(2), e0.2
  22533. prom %7.4 = MkArg missing, Prom(3), e0.2
  22534. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  22535. BB9
  22536. cls' %9.0 = LdConst function (depth, random) { if (d...
  22537. t %9.1 = Identical %7.2, %9.0
  22538. void Assume %9.1, %7.5
  22539. val^? %9.3 = CastType %7.3
  22540. val^? %9.4 = CastType %7.4
  22541. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  22542. val %9.6 = Force %9.3, e9.5
  22543. real$' %9.7 = LdConst [1] 1
  22544. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  22545. BB8
  22546. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  22547. void Deopt %8.0
  22548. BB11
  22549. t %11.0 = IsObject %9.6
  22550. void AssumeNot %11.0, %9.8
  22551. lgl' %11.2 = Eq %9.6, %9.7, elided
  22552. lgl %11.3 = AsLogical %11.2
  22553. t %11.4 = AsTest %11.3
  22554. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  22555. BB10
  22556. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22557. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  22558. void Deopt %10.1
  22559. BB20
  22560. cls %20.0 = LdFun c, e9.5
  22561. prom %20.1 = MkArg missing, Prom(5), e9.5
  22562. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22563. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  22564. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  22565. goto BB24
  22566. BB12
  22567. cls %12.0 = LdFun vector, e9.5
  22568. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  22569. BB24
  22570. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  22571. val %24.1 = Force %24.0, e9.5
  22572. val^? %24.2 = LdVar array, e0.2
  22573. val %24.3 = Force %24.2, e0.2
  22574. val^? %24.4 = LdVar i, e0.2
  22575. val %24.5 = Force %24.4, e0.2
  22576. val %24.6 = EnsureNamed %24.1
  22577. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  22578. void StVar array, %24.7, e0.2
  22579. goto BB6
  22580. BB14
  22581. cls' %14.0 = LdConst function (mode = "logical", length = ...
  22582. t %14.1 = Identical %12.0, %14.0
  22583. void Assume %14.1, %12.1
  22584. str$' %14.3 = LdConst [1] "list"
  22585. real$' %14.4 = LdConst [1] 4
  22586. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  22587. void StVar array, %14.5, e9.5
  22588. real$' %14.7 = LdConst [1] 1
  22589. real$' %14.8 = LdConst [1] 4
  22590. val' %14.9 = Colon %14.7, %14.8, elided
  22591. val' %14.10 = SetShared %14.9
  22592. int$' %14.11 = ForSeqSize %14.10
  22593. int$' %14.12 = LdConst [1] 0
  22594. goto BB15
  22595. BB13
  22596. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22597. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  22598. void Deopt %13.1
  22599. BB15
  22600. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  22601. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  22602. int$' %15.2 = Inc %15.1
  22603. int$' %15.3 = EnsureNamed %15.2
  22604. lgl' %15.4 = Lt %14.11, %15.3, elided
  22605. t %15.5 = AsTest %15.4
  22606. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  22607. BB19
  22608. goto BB24
  22609. BB16
  22610. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  22611. void StVar i, %16.0, e9.5
  22612. cls %16.2 = LdFun buildTreeDepth, e9.5
  22613. prom %16.3 = MkArg missing, Prom(8), e9.5
  22614. prom %16.4 = MkArg missing, Prom(9), e9.5
  22615. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  22616. BB18
  22617. cls' %18.0 = LdConst function (depth, random) { if (d...
  22618. t %18.1 = Identical %16.2, %18.0
  22619. void Assume %18.1, %16.5
  22620. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22621. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  22622. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  22623. val^? %18.6 = LdVar array, e9.5
  22624. val %18.7 = Force %18.6, e9.5
  22625. val^? %18.8 = LdVar i, e9.5
  22626. val %18.9 = Force %18.8, e9.5
  22627. val^ %18.10 = EnsureNamed %18.5
  22628. val %18.11 = Force %18.10, e9.5
  22629. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  22630. void StVar array, %18.12, e9.5
  22631. goto BB15
  22632. BB17
  22633. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22634. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  22635. void Deopt %17.1
  22636. Prom 2:
  22637. BB0
  22638. env e0.0 = LdFunctionEnv
  22639. val^? %0.1 = LdVar depth, e0.0
  22640. val %0.2 = Force %0.1, e0.0
  22641. real$' %0.3 = LdConst [1] 1
  22642. goto BB1
  22643. BB1
  22644. val %1.0 = Sub %0.2, %0.3, e0.0
  22645. void Return %1.0
  22646. Prom 3:
  22647. BB0
  22648. env e0.0 = LdFunctionEnv
  22649. val^? %0.1 = LdVar random, e0.0
  22650. val %0.2 = Force %0.1, e0.0
  22651. void Return %0.2
  22652. Prom 4:
  22653. BB0
  22654. env e0.0 = LdFunctionEnv
  22655. cls %0.1 = LdFun nextRandom, e0.0
  22656. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22657. t %0.3 = Identical %0.1, %0.2
  22658. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22659. BB2
  22660. void Assume %0.3, %0.4
  22661. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22662. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22663. real$' %2.3 = LdConst [1] 10
  22664. goto BB3
  22665. BB1
  22666. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22667. void Deopt %1.0
  22668. BB3
  22669. val %3.0 = Force %2.2, e0.0
  22670. val %3.1 = Mod %3.0, %2.3, e0.0
  22671. real$' %3.2 = LdConst [1] 1
  22672. goto BB4
  22673. BB4
  22674. val %4.0 = Add %3.1, %3.2, e0.0
  22675. void Return %4.0
  22676. Prom 5:
  22677. BB0
  22678. env e0.0 = LdFunctionEnv
  22679. cls %0.1 = LdFun nextRandom, e0.0
  22680. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22681. t %0.3 = Identical %0.1, %0.2
  22682. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22683. BB2
  22684. void Assume %0.3, %0.4
  22685. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22686. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22687. real$' %2.3 = LdConst [1] 10
  22688. goto BB3
  22689. BB1
  22690. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22691. void Deopt %1.0
  22692. BB3
  22693. val %3.0 = Force %2.2, e0.0
  22694. val %3.1 = Mod %3.0, %2.3, e0.0
  22695. real$' %3.2 = LdConst [1] 1
  22696. goto BB4
  22697. BB4
  22698. val %4.0 = Add %3.1, %3.2, e0.0
  22699. void Return %4.0
  22700. Prom 8:
  22701. BB0
  22702. env e0.0 = LdFunctionEnv
  22703. val^? %0.1 = LdVar depth, e0.0
  22704. val %0.2 = Force %0.1, e0.0
  22705. real$' %0.3 = LdConst [1] 1
  22706. goto BB1
  22707. BB1
  22708. val %1.0 = Sub %0.2, %0.3, e0.0
  22709. void Return %1.0
  22710. Prom 9:
  22711. BB0
  22712. env e0.0 = LdFunctionEnv
  22713. val^? %0.1 = LdVar random, e0.0
  22714. val %0.2 = Force %0.1, e0.0
  22715. void Return %0.2
  22716. ├────── Constant folding: == 469
  22717. buildTreeDepth[0x7f92446010b0]
  22718. BB0
  22719. val^ %0.0 = LdArg 0
  22720. val^ %0.1 = LdArg 1
  22721. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  22722. val %0.3 = Force! %0.0, e0.2
  22723. real$' %0.4 = LdConst [1] 1
  22724. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22725. BB2
  22726. t %2.0 = IsObject %0.3
  22727. void AssumeNot %2.0, %0.5
  22728. lgl' %2.2 = Eq %0.3, %0.4, elided
  22729. lgl %2.3 = AsLogical %2.2
  22730. t %2.4 = AsTest %2.3
  22731. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  22732. BB1
  22733. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  22734. void Deopt %1.0
  22735. BB22
  22736. cls %22.0 = LdFun c, e0.2
  22737. prom %22.1 = MkArg missing, Prom(4), e0.2
  22738. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  22739. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  22740. goto BB23
  22741. BB3
  22742. cls %3.0 = LdFun vector, e0.2
  22743. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  22744. BB23
  22745. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  22746. val %23.1 = Force %23.0, e0.2
  22747. void Return %23.1
  22748. BB5
  22749. cls' %5.0 = LdConst function (mode = "logical", length = ...
  22750. t %5.1 = Identical %3.0, %5.0
  22751. void Assume %5.1, %3.1
  22752. real$' %5.3 = LdConst [1] 4
  22753. str$' %5.4 = LdConst [1] "list"
  22754. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  22755. void StVar array, %5.5, e0.2
  22756. real$' %5.7 = LdConst [1] 4
  22757. real$' %5.8 = LdConst [1] 1
  22758. val' %5.9 = Colon %5.8, %5.7, elided
  22759. val' %5.10 = SetShared %5.9
  22760. int$' %5.11 = ForSeqSize %5.10
  22761. int$' %5.12 = LdConst [1] 0
  22762. goto BB6
  22763. BB4
  22764. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  22765. void Deopt %4.0
  22766. BB6
  22767. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  22768. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  22769. int$' %6.2 = Inc %6.1
  22770. int$' %6.3 = EnsureNamed %6.2
  22771. lgl' %6.4 = Lt %5.11, %6.3, elided
  22772. t %6.5 = AsTest %6.4
  22773. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  22774. BB21
  22775. goto BB23
  22776. BB7
  22777. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  22778. void StVar i, %7.0, e0.2
  22779. cls %7.2 = LdFun buildTreeDepth, e0.2
  22780. prom %7.3 = MkArg missing, Prom(2), e0.2
  22781. prom %7.4 = MkArg missing, Prom(3), e0.2
  22782. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  22783. BB9
  22784. cls' %9.0 = LdConst function (depth, random) { if (d...
  22785. t %9.1 = Identical %7.2, %9.0
  22786. void Assume %9.1, %7.5
  22787. val^? %9.3 = CastType %7.3
  22788. val^? %9.4 = CastType %7.4
  22789. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  22790. val %9.6 = Force %9.3, e9.5
  22791. real$' %9.7 = LdConst [1] 1
  22792. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  22793. BB8
  22794. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  22795. void Deopt %8.0
  22796. BB11
  22797. t %11.0 = IsObject %9.6
  22798. void AssumeNot %11.0, %9.8
  22799. lgl' %11.2 = Eq %9.6, %9.7, elided
  22800. lgl %11.3 = AsLogical %11.2
  22801. t %11.4 = AsTest %11.3
  22802. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  22803. BB10
  22804. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22805. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  22806. void Deopt %10.1
  22807. BB20
  22808. cls %20.0 = LdFun c, e9.5
  22809. prom %20.1 = MkArg missing, Prom(5), e9.5
  22810. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22811. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  22812. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  22813. goto BB24
  22814. BB12
  22815. cls %12.0 = LdFun vector, e9.5
  22816. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  22817. BB24
  22818. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  22819. val %24.1 = Force %24.0, e9.5
  22820. val^? %24.2 = LdVar array, e0.2
  22821. val %24.3 = Force %24.2, e0.2
  22822. val^? %24.4 = LdVar i, e0.2
  22823. val %24.5 = Force %24.4, e0.2
  22824. val %24.6 = EnsureNamed %24.1
  22825. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  22826. void StVar array, %24.7, e0.2
  22827. goto BB6
  22828. BB14
  22829. cls' %14.0 = LdConst function (mode = "logical", length = ...
  22830. t %14.1 = Identical %12.0, %14.0
  22831. void Assume %14.1, %12.1
  22832. str$' %14.3 = LdConst [1] "list"
  22833. real$' %14.4 = LdConst [1] 4
  22834. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  22835. void StVar array, %14.5, e9.5
  22836. real$' %14.7 = LdConst [1] 1
  22837. real$' %14.8 = LdConst [1] 4
  22838. val' %14.9 = Colon %14.7, %14.8, elided
  22839. val' %14.10 = SetShared %14.9
  22840. int$' %14.11 = ForSeqSize %14.10
  22841. int$' %14.12 = LdConst [1] 0
  22842. goto BB15
  22843. BB13
  22844. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22845. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  22846. void Deopt %13.1
  22847. BB15
  22848. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  22849. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  22850. int$' %15.2 = Inc %15.1
  22851. int$' %15.3 = EnsureNamed %15.2
  22852. lgl' %15.4 = Lt %14.11, %15.3, elided
  22853. t %15.5 = AsTest %15.4
  22854. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  22855. BB19
  22856. goto BB24
  22857. BB16
  22858. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  22859. void StVar i, %16.0, e9.5
  22860. cls %16.2 = LdFun buildTreeDepth, e9.5
  22861. prom %16.3 = MkArg missing, Prom(8), e9.5
  22862. prom %16.4 = MkArg missing, Prom(9), e9.5
  22863. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  22864. BB18
  22865. cls' %18.0 = LdConst function (depth, random) { if (d...
  22866. t %18.1 = Identical %16.2, %18.0
  22867. void Assume %18.1, %16.5
  22868. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22869. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  22870. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  22871. val^? %18.6 = LdVar array, e9.5
  22872. val %18.7 = Force %18.6, e9.5
  22873. val^? %18.8 = LdVar i, e9.5
  22874. val %18.9 = Force %18.8, e9.5
  22875. val^ %18.10 = EnsureNamed %18.5
  22876. val %18.11 = Force %18.10, e9.5
  22877. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  22878. void StVar array, %18.12, e9.5
  22879. goto BB15
  22880. BB17
  22881. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  22882. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  22883. void Deopt %17.1
  22884. Prom 2:
  22885. BB0
  22886. env e0.0 = LdFunctionEnv
  22887. val^? %0.1 = LdVar depth, e0.0
  22888. val %0.2 = Force %0.1, e0.0
  22889. real$' %0.3 = LdConst [1] 1
  22890. goto BB1
  22891. BB1
  22892. val %1.0 = Sub %0.2, %0.3, e0.0
  22893. void Return %1.0
  22894. Prom 3:
  22895. BB0
  22896. env e0.0 = LdFunctionEnv
  22897. val^? %0.1 = LdVar random, e0.0
  22898. val %0.2 = Force %0.1, e0.0
  22899. void Return %0.2
  22900. Prom 4:
  22901. BB0
  22902. env e0.0 = LdFunctionEnv
  22903. cls %0.1 = LdFun nextRandom, e0.0
  22904. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22905. t %0.3 = Identical %0.1, %0.2
  22906. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22907. BB2
  22908. void Assume %0.3, %0.4
  22909. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22910. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22911. real$' %2.3 = LdConst [1] 10
  22912. goto BB3
  22913. BB1
  22914. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22915. void Deopt %1.0
  22916. BB3
  22917. val %3.0 = Force %2.2, e0.0
  22918. val %3.1 = Mod %3.0, %2.3, e0.0
  22919. real$' %3.2 = LdConst [1] 1
  22920. goto BB4
  22921. BB4
  22922. val %4.0 = Add %3.1, %3.2, e0.0
  22923. void Return %4.0
  22924. Prom 5:
  22925. BB0
  22926. env e0.0 = LdFunctionEnv
  22927. cls %0.1 = LdFun nextRandom, e0.0
  22928. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  22929. t %0.3 = Identical %0.1, %0.2
  22930. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22931. BB2
  22932. void Assume %0.3, %0.4
  22933. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  22934. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  22935. real$' %2.3 = LdConst [1] 10
  22936. goto BB3
  22937. BB1
  22938. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  22939. void Deopt %1.0
  22940. BB3
  22941. val %3.0 = Force %2.2, e0.0
  22942. val %3.1 = Mod %3.0, %2.3, e0.0
  22943. real$' %3.2 = LdConst [1] 1
  22944. goto BB4
  22945. BB4
  22946. val %4.0 = Add %3.1, %3.2, e0.0
  22947. void Return %4.0
  22948. Prom 8:
  22949. BB0
  22950. env e0.0 = LdFunctionEnv
  22951. val^? %0.1 = LdVar depth, e0.0
  22952. val %0.2 = Force %0.1, e0.0
  22953. real$' %0.3 = LdConst [1] 1
  22954. goto BB1
  22955. BB1
  22956. val %1.0 = Sub %0.2, %0.3, e0.0
  22957. void Return %1.0
  22958. Prom 9:
  22959. BB0
  22960. env e0.0 = LdFunctionEnv
  22961. val^? %0.1 = LdVar random, e0.0
  22962. val %0.2 = Force %0.1, e0.0
  22963. void Return %0.2
  22964. ├────── Cleanup redundant operations: == 476
  22965. buildTreeDepth[0x7f92446010b0]
  22966. BB0
  22967. val^ %0.0 = LdArg 0
  22968. val^ %0.1 = LdArg 1
  22969. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  22970. val %0.3 = Force! %0.0, e0.2
  22971. real$' %0.4 = LdConst [1] 1
  22972. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  22973. BB2
  22974. t %2.0 = IsObject %0.3
  22975. void AssumeNot %2.0, %0.5
  22976. lgl' %2.2 = Eq %0.3, %0.4, elided
  22977. lgl %2.3 = AsLogical %2.2
  22978. t %2.4 = AsTest %2.3
  22979. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  22980. BB1
  22981. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  22982. void Deopt %1.0
  22983. BB22
  22984. cls %22.0 = LdFun c, e0.2
  22985. prom %22.1 = MkArg missing, Prom(4), e0.2
  22986. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  22987. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  22988. goto BB23
  22989. BB3
  22990. cls %3.0 = LdFun vector, e0.2
  22991. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  22992. BB23
  22993. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  22994. val %23.1 = Force %23.0, e0.2
  22995. void Return %23.1
  22996. BB5
  22997. cls' %5.0 = LdConst function (mode = "logical", length = ...
  22998. t %5.1 = Identical %3.0, %5.0
  22999. void Assume %5.1, %3.1
  23000. real$' %5.3 = LdConst [1] 4
  23001. str$' %5.4 = LdConst [1] "list"
  23002. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  23003. void StVar array, %5.5, e0.2
  23004. real$' %5.7 = LdConst [1] 4
  23005. real$' %5.8 = LdConst [1] 1
  23006. val' %5.9 = Colon %5.8, %5.7, elided
  23007. val' %5.10 = SetShared %5.9
  23008. int$' %5.11 = ForSeqSize %5.10
  23009. int$' %5.12 = LdConst [1] 0
  23010. goto BB6
  23011. BB4
  23012. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  23013. void Deopt %4.0
  23014. BB6
  23015. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  23016. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  23017. int$' %6.2 = Inc %6.1
  23018. int$' %6.3 = EnsureNamed %6.2
  23019. lgl' %6.4 = Lt %5.11, %6.3, elided
  23020. t %6.5 = AsTest %6.4
  23021. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  23022. BB21
  23023. goto BB23
  23024. BB7
  23025. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  23026. void StVar i, %7.0, e0.2
  23027. cls %7.2 = LdFun buildTreeDepth, e0.2
  23028. prom %7.3 = MkArg missing, Prom(2), e0.2
  23029. prom %7.4 = MkArg missing, Prom(3), e0.2
  23030. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  23031. BB9
  23032. cls' %9.0 = LdConst function (depth, random) { if (d...
  23033. t %9.1 = Identical %7.2, %9.0
  23034. void Assume %9.1, %7.5
  23035. val^? %9.3 = CastType %7.3
  23036. val^? %9.4 = CastType %7.4
  23037. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  23038. val %9.6 = Force %9.3, e9.5
  23039. real$' %9.7 = LdConst [1] 1
  23040. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  23041. BB8
  23042. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  23043. void Deopt %8.0
  23044. BB11
  23045. t %11.0 = IsObject %9.6
  23046. void AssumeNot %11.0, %9.8
  23047. lgl' %11.2 = Eq %9.6, %9.7, elided
  23048. lgl %11.3 = AsLogical %11.2
  23049. t %11.4 = AsTest %11.3
  23050. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  23051. BB10
  23052. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23053. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  23054. void Deopt %10.1
  23055. BB20
  23056. cls %20.0 = LdFun c, e9.5
  23057. prom %20.1 = MkArg missing, Prom(5), e9.5
  23058. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23059. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  23060. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  23061. goto BB24
  23062. BB12
  23063. cls %12.0 = LdFun vector, e9.5
  23064. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  23065. BB24
  23066. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  23067. val %24.1 = Force %24.0, e9.5
  23068. val^? %24.2 = LdVar array, e0.2
  23069. val %24.3 = Force %24.2, e0.2
  23070. val^? %24.4 = LdVar i, e0.2
  23071. val %24.5 = Force %24.4, e0.2
  23072. val %24.6 = EnsureNamed %24.1
  23073. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  23074. void StVar array, %24.7, e0.2
  23075. goto BB6
  23076. BB14
  23077. cls' %14.0 = LdConst function (mode = "logical", length = ...
  23078. t %14.1 = Identical %12.0, %14.0
  23079. void Assume %14.1, %12.1
  23080. str$' %14.3 = LdConst [1] "list"
  23081. real$' %14.4 = LdConst [1] 4
  23082. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  23083. void StVar array, %14.5, e9.5
  23084. real$' %14.7 = LdConst [1] 1
  23085. real$' %14.8 = LdConst [1] 4
  23086. val' %14.9 = Colon %14.7, %14.8, elided
  23087. val' %14.10 = SetShared %14.9
  23088. int$' %14.11 = ForSeqSize %14.10
  23089. int$' %14.12 = LdConst [1] 0
  23090. goto BB15
  23091. BB13
  23092. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23093. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  23094. void Deopt %13.1
  23095. BB15
  23096. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  23097. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  23098. int$' %15.2 = Inc %15.1
  23099. int$' %15.3 = EnsureNamed %15.2
  23100. lgl' %15.4 = Lt %14.11, %15.3, elided
  23101. t %15.5 = AsTest %15.4
  23102. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  23103. BB19
  23104. goto BB24
  23105. BB16
  23106. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  23107. void StVar i, %16.0, e9.5
  23108. cls %16.2 = LdFun buildTreeDepth, e9.5
  23109. prom %16.3 = MkArg missing, Prom(8), e9.5
  23110. prom %16.4 = MkArg missing, Prom(9), e9.5
  23111. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  23112. BB18
  23113. cls' %18.0 = LdConst function (depth, random) { if (d...
  23114. t %18.1 = Identical %16.2, %18.0
  23115. void Assume %18.1, %16.5
  23116. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23117. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  23118. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  23119. val^? %18.6 = LdVar array, e9.5
  23120. val %18.7 = Force %18.6, e9.5
  23121. val^? %18.8 = LdVar i, e9.5
  23122. val %18.9 = Force %18.8, e9.5
  23123. val^ %18.10 = EnsureNamed %18.5
  23124. val %18.11 = Force %18.10, e9.5
  23125. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  23126. void StVar array, %18.12, e9.5
  23127. goto BB15
  23128. BB17
  23129. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23130. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  23131. void Deopt %17.1
  23132. Prom 2:
  23133. BB0
  23134. env e0.0 = LdFunctionEnv
  23135. val^? %0.1 = LdVar depth, e0.0
  23136. val %0.2 = Force %0.1, e0.0
  23137. real$' %0.3 = LdConst [1] 1
  23138. goto BB1
  23139. BB1
  23140. val %1.0 = Sub %0.2, %0.3, e0.0
  23141. void Return %1.0
  23142. Prom 3:
  23143. BB0
  23144. env e0.0 = LdFunctionEnv
  23145. val^? %0.1 = LdVar random, e0.0
  23146. val %0.2 = Force %0.1, e0.0
  23147. void Return %0.2
  23148. Prom 4:
  23149. BB0
  23150. env e0.0 = LdFunctionEnv
  23151. cls %0.1 = LdFun nextRandom, e0.0
  23152. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23153. t %0.3 = Identical %0.1, %0.2
  23154. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23155. BB2
  23156. void Assume %0.3, %0.4
  23157. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23158. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23159. real$' %2.3 = LdConst [1] 10
  23160. goto BB3
  23161. BB1
  23162. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23163. void Deopt %1.0
  23164. BB3
  23165. val %3.0 = Force %2.2, e0.0
  23166. val %3.1 = Mod %3.0, %2.3, e0.0
  23167. real$' %3.2 = LdConst [1] 1
  23168. goto BB4
  23169. BB4
  23170. val %4.0 = Add %3.1, %3.2, e0.0
  23171. void Return %4.0
  23172. Prom 5:
  23173. BB0
  23174. env e0.0 = LdFunctionEnv
  23175. cls %0.1 = LdFun nextRandom, e0.0
  23176. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23177. t %0.3 = Identical %0.1, %0.2
  23178. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23179. BB2
  23180. void Assume %0.3, %0.4
  23181. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23182. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23183. real$' %2.3 = LdConst [1] 10
  23184. goto BB3
  23185. BB1
  23186. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23187. void Deopt %1.0
  23188. BB3
  23189. val %3.0 = Force %2.2, e0.0
  23190. val %3.1 = Mod %3.0, %2.3, e0.0
  23191. real$' %3.2 = LdConst [1] 1
  23192. goto BB4
  23193. BB4
  23194. val %4.0 = Add %3.1, %3.2, e0.0
  23195. void Return %4.0
  23196. Prom 8:
  23197. BB0
  23198. env e0.0 = LdFunctionEnv
  23199. val^? %0.1 = LdVar depth, e0.0
  23200. val %0.2 = Force %0.1, e0.0
  23201. real$' %0.3 = LdConst [1] 1
  23202. goto BB1
  23203. BB1
  23204. val %1.0 = Sub %0.2, %0.3, e0.0
  23205. void Return %1.0
  23206. Prom 9:
  23207. BB0
  23208. env e0.0 = LdFunctionEnv
  23209. val^? %0.1 = LdVar random, e0.0
  23210. val %0.2 = Force %0.1, e0.0
  23211. void Return %0.2
  23212. ├────── Delay instructions: == 483
  23213. buildTreeDepth[0x7f92446010b0]
  23214. BB0
  23215. val^ %0.0 = LdArg 0
  23216. val^ %0.1 = LdArg 1
  23217. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  23218. val %0.3 = Force! %0.0, e0.2
  23219. real$' %0.4 = LdConst [1] 1
  23220. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23221. BB2
  23222. t %2.0 = IsObject %0.3
  23223. void AssumeNot %2.0, %0.5
  23224. lgl' %2.2 = Eq %0.3, %0.4, elided
  23225. lgl %2.3 = AsLogical %2.2
  23226. t %2.4 = AsTest %2.3
  23227. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  23228. BB1
  23229. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  23230. void Deopt %1.0
  23231. BB22
  23232. cls %22.0 = LdFun c, e0.2
  23233. prom %22.1 = MkArg missing, Prom(4), e0.2
  23234. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  23235. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  23236. goto BB23
  23237. BB3
  23238. cls %3.0 = LdFun vector, e0.2
  23239. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  23240. BB23
  23241. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  23242. val %23.1 = Force %23.0, e0.2
  23243. void Return %23.1
  23244. BB5
  23245. cls' %5.0 = LdConst function (mode = "logical", length = ...
  23246. t %5.1 = Identical %3.0, %5.0
  23247. void Assume %5.1, %3.1
  23248. str$' %5.3 = LdConst [1] "list"
  23249. real$' %5.4 = LdConst [1] 4
  23250. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  23251. void StVar array, %5.5, e0.2
  23252. real$' %5.7 = LdConst [1] 1
  23253. real$' %5.8 = LdConst [1] 4
  23254. val' %5.9 = Colon %5.7, %5.8, elided
  23255. val' %5.10 = SetShared %5.9
  23256. int$' %5.11 = ForSeqSize %5.10
  23257. int$' %5.12 = LdConst [1] 0
  23258. goto BB6
  23259. BB4
  23260. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  23261. void Deopt %4.0
  23262. BB6
  23263. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  23264. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  23265. int$' %6.2 = Inc %6.1
  23266. int$' %6.3 = EnsureNamed %6.2
  23267. lgl' %6.4 = Lt %5.11, %6.3, elided
  23268. t %6.5 = AsTest %6.4
  23269. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  23270. BB21
  23271. goto BB23
  23272. BB7
  23273. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  23274. void StVar i, %7.0, e0.2
  23275. cls %7.2 = LdFun buildTreeDepth, e0.2
  23276. prom %7.3 = MkArg missing, Prom(2), e0.2
  23277. prom %7.4 = MkArg missing, Prom(3), e0.2
  23278. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  23279. BB9
  23280. cls' %9.0 = LdConst function (depth, random) { if (d...
  23281. t %9.1 = Identical %7.2, %9.0
  23282. void Assume %9.1, %7.5
  23283. val^? %9.3 = CastType %7.3
  23284. val^? %9.4 = CastType %7.4
  23285. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  23286. val %9.6 = Force %9.3, e9.5
  23287. real$' %9.7 = LdConst [1] 1
  23288. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  23289. BB8
  23290. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  23291. void Deopt %8.0
  23292. BB11
  23293. t %11.0 = IsObject %9.6
  23294. void AssumeNot %11.0, %9.8
  23295. lgl' %11.2 = Eq %9.6, %9.7, elided
  23296. lgl %11.3 = AsLogical %11.2
  23297. t %11.4 = AsTest %11.3
  23298. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  23299. BB10
  23300. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23301. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  23302. void Deopt %10.1
  23303. BB20
  23304. cls %20.0 = LdFun c, e9.5
  23305. prom %20.1 = MkArg missing, Prom(5), e9.5
  23306. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23307. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  23308. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  23309. goto BB24
  23310. BB12
  23311. cls %12.0 = LdFun vector, e9.5
  23312. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  23313. BB24
  23314. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  23315. val %24.1 = Force %24.0, e9.5
  23316. val^? %24.2 = LdVar array, e0.2
  23317. val %24.3 = Force %24.2, e0.2
  23318. val^? %24.4 = LdVar i, e0.2
  23319. val %24.5 = Force %24.4, e0.2
  23320. val %24.6 = EnsureNamed %24.1
  23321. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  23322. void StVar array, %24.7, e0.2
  23323. goto BB6
  23324. BB14
  23325. cls' %14.0 = LdConst function (mode = "logical", length = ...
  23326. t %14.1 = Identical %12.0, %14.0
  23327. void Assume %14.1, %12.1
  23328. real$' %14.3 = LdConst [1] 4
  23329. str$' %14.4 = LdConst [1] "list"
  23330. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  23331. void StVar array, %14.5, e9.5
  23332. real$' %14.7 = LdConst [1] 4
  23333. real$' %14.8 = LdConst [1] 1
  23334. val' %14.9 = Colon %14.8, %14.7, elided
  23335. val' %14.10 = SetShared %14.9
  23336. int$' %14.11 = ForSeqSize %14.10
  23337. int$' %14.12 = LdConst [1] 0
  23338. goto BB15
  23339. BB13
  23340. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23341. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  23342. void Deopt %13.1
  23343. BB15
  23344. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  23345. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  23346. int$' %15.2 = Inc %15.1
  23347. int$' %15.3 = EnsureNamed %15.2
  23348. lgl' %15.4 = Lt %14.11, %15.3, elided
  23349. t %15.5 = AsTest %15.4
  23350. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  23351. BB19
  23352. goto BB24
  23353. BB16
  23354. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  23355. void StVar i, %16.0, e9.5
  23356. cls %16.2 = LdFun buildTreeDepth, e9.5
  23357. prom %16.3 = MkArg missing, Prom(8), e9.5
  23358. prom %16.4 = MkArg missing, Prom(9), e9.5
  23359. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  23360. BB18
  23361. cls' %18.0 = LdConst function (depth, random) { if (d...
  23362. t %18.1 = Identical %16.2, %18.0
  23363. void Assume %18.1, %16.5
  23364. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23365. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  23366. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  23367. val^? %18.6 = LdVar array, e9.5
  23368. val %18.7 = Force %18.6, e9.5
  23369. val^? %18.8 = LdVar i, e9.5
  23370. val %18.9 = Force %18.8, e9.5
  23371. val^ %18.10 = EnsureNamed %18.5
  23372. val %18.11 = Force %18.10, e9.5
  23373. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  23374. void StVar array, %18.12, e9.5
  23375. goto BB15
  23376. BB17
  23377. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23378. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  23379. void Deopt %17.1
  23380. Prom 2:
  23381. BB0
  23382. env e0.0 = LdFunctionEnv
  23383. val^? %0.1 = LdVar depth, e0.0
  23384. val %0.2 = Force %0.1, e0.0
  23385. real$' %0.3 = LdConst [1] 1
  23386. goto BB1
  23387. BB1
  23388. val %1.0 = Sub %0.2, %0.3, e0.0
  23389. void Return %1.0
  23390. Prom 3:
  23391. BB0
  23392. env e0.0 = LdFunctionEnv
  23393. val^? %0.1 = LdVar random, e0.0
  23394. val %0.2 = Force %0.1, e0.0
  23395. void Return %0.2
  23396. Prom 4:
  23397. BB0
  23398. env e0.0 = LdFunctionEnv
  23399. cls %0.1 = LdFun nextRandom, e0.0
  23400. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23401. t %0.3 = Identical %0.1, %0.2
  23402. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23403. BB2
  23404. void Assume %0.3, %0.4
  23405. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23406. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23407. real$' %2.3 = LdConst [1] 10
  23408. goto BB3
  23409. BB1
  23410. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23411. void Deopt %1.0
  23412. BB3
  23413. val %3.0 = Force %2.2, e0.0
  23414. val %3.1 = Mod %3.0, %2.3, e0.0
  23415. real$' %3.2 = LdConst [1] 1
  23416. goto BB4
  23417. BB4
  23418. val %4.0 = Add %3.1, %3.2, e0.0
  23419. void Return %4.0
  23420. Prom 5:
  23421. BB0
  23422. env e0.0 = LdFunctionEnv
  23423. cls %0.1 = LdFun nextRandom, e0.0
  23424. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23425. t %0.3 = Identical %0.1, %0.2
  23426. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23427. BB2
  23428. void Assume %0.3, %0.4
  23429. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23430. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23431. real$' %2.3 = LdConst [1] 10
  23432. goto BB3
  23433. BB1
  23434. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23435. void Deopt %1.0
  23436. BB3
  23437. val %3.0 = Force %2.2, e0.0
  23438. val %3.1 = Mod %3.0, %2.3, e0.0
  23439. real$' %3.2 = LdConst [1] 1
  23440. goto BB4
  23441. BB4
  23442. val %4.0 = Add %3.1, %3.2, e0.0
  23443. void Return %4.0
  23444. Prom 8:
  23445. BB0
  23446. env e0.0 = LdFunctionEnv
  23447. val^? %0.1 = LdVar depth, e0.0
  23448. val %0.2 = Force %0.1, e0.0
  23449. real$' %0.3 = LdConst [1] 1
  23450. goto BB1
  23451. BB1
  23452. val %1.0 = Sub %0.2, %0.3, e0.0
  23453. void Return %1.0
  23454. Prom 9:
  23455. BB0
  23456. env e0.0 = LdFunctionEnv
  23457. val^? %0.1 = LdVar random, e0.0
  23458. val %0.2 = Force %0.1, e0.0
  23459. void Return %0.2
  23460. ├────── Elide environments not needed: == 490
  23461. buildTreeDepth[0x7f92446010b0]
  23462. BB0
  23463. val^ %0.0 = LdArg 0
  23464. val^ %0.1 = LdArg 1
  23465. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  23466. val %0.3 = Force! %0.0, e0.2
  23467. real$' %0.4 = LdConst [1] 1
  23468. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23469. BB2
  23470. t %2.0 = IsObject %0.3
  23471. void AssumeNot %2.0, %0.5
  23472. lgl' %2.2 = Eq %0.3, %0.4, elided
  23473. lgl %2.3 = AsLogical %2.2
  23474. t %2.4 = AsTest %2.3
  23475. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  23476. BB1
  23477. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  23478. void Deopt %1.0
  23479. BB22
  23480. cls %22.0 = LdFun c, e0.2
  23481. prom %22.1 = MkArg missing, Prom(4), e0.2
  23482. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  23483. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  23484. goto BB23
  23485. BB3
  23486. cls %3.0 = LdFun vector, e0.2
  23487. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  23488. BB23
  23489. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  23490. val %23.1 = Force %23.0, e0.2
  23491. void Return %23.1
  23492. BB5
  23493. cls' %5.0 = LdConst function (mode = "logical", length = ...
  23494. t %5.1 = Identical %3.0, %5.0
  23495. void Assume %5.1, %3.1
  23496. str$' %5.3 = LdConst [1] "list"
  23497. real$' %5.4 = LdConst [1] 4
  23498. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  23499. void StVar array, %5.5, e0.2
  23500. real$' %5.7 = LdConst [1] 1
  23501. real$' %5.8 = LdConst [1] 4
  23502. val' %5.9 = Colon %5.7, %5.8, elided
  23503. val' %5.10 = SetShared %5.9
  23504. int$' %5.11 = ForSeqSize %5.10
  23505. int$' %5.12 = LdConst [1] 0
  23506. goto BB6
  23507. BB4
  23508. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  23509. void Deopt %4.0
  23510. BB6
  23511. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  23512. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  23513. int$' %6.2 = Inc %6.1
  23514. int$' %6.3 = EnsureNamed %6.2
  23515. lgl' %6.4 = Lt %5.11, %6.3, elided
  23516. t %6.5 = AsTest %6.4
  23517. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  23518. BB21
  23519. goto BB23
  23520. BB7
  23521. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  23522. void StVar i, %7.0, e0.2
  23523. cls %7.2 = LdFun buildTreeDepth, e0.2
  23524. prom %7.3 = MkArg missing, Prom(2), e0.2
  23525. prom %7.4 = MkArg missing, Prom(3), e0.2
  23526. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  23527. BB9
  23528. cls' %9.0 = LdConst function (depth, random) { if (d...
  23529. t %9.1 = Identical %7.2, %9.0
  23530. void Assume %9.1, %7.5
  23531. val^? %9.3 = CastType %7.3
  23532. val^? %9.4 = CastType %7.4
  23533. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  23534. val %9.6 = Force %9.3, e9.5
  23535. real$' %9.7 = LdConst [1] 1
  23536. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  23537. BB8
  23538. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  23539. void Deopt %8.0
  23540. BB11
  23541. t %11.0 = IsObject %9.6
  23542. void AssumeNot %11.0, %9.8
  23543. lgl' %11.2 = Eq %9.6, %9.7, elided
  23544. lgl %11.3 = AsLogical %11.2
  23545. t %11.4 = AsTest %11.3
  23546. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  23547. BB10
  23548. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23549. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  23550. void Deopt %10.1
  23551. BB20
  23552. cls %20.0 = LdFun c, e9.5
  23553. prom %20.1 = MkArg missing, Prom(5), e9.5
  23554. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23555. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  23556. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  23557. goto BB24
  23558. BB12
  23559. cls %12.0 = LdFun vector, e9.5
  23560. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  23561. BB24
  23562. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  23563. val %24.1 = Force %24.0, e9.5
  23564. val^? %24.2 = LdVar array, e0.2
  23565. val %24.3 = Force %24.2, e0.2
  23566. val^? %24.4 = LdVar i, e0.2
  23567. val %24.5 = Force %24.4, e0.2
  23568. val %24.6 = EnsureNamed %24.1
  23569. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  23570. void StVar array, %24.7, e0.2
  23571. goto BB6
  23572. BB14
  23573. cls' %14.0 = LdConst function (mode = "logical", length = ...
  23574. t %14.1 = Identical %12.0, %14.0
  23575. void Assume %14.1, %12.1
  23576. real$' %14.3 = LdConst [1] 4
  23577. str$' %14.4 = LdConst [1] "list"
  23578. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  23579. void StVar array, %14.5, e9.5
  23580. real$' %14.7 = LdConst [1] 4
  23581. real$' %14.8 = LdConst [1] 1
  23582. val' %14.9 = Colon %14.8, %14.7, elided
  23583. val' %14.10 = SetShared %14.9
  23584. int$' %14.11 = ForSeqSize %14.10
  23585. int$' %14.12 = LdConst [1] 0
  23586. goto BB15
  23587. BB13
  23588. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23589. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  23590. void Deopt %13.1
  23591. BB15
  23592. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  23593. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  23594. int$' %15.2 = Inc %15.1
  23595. int$' %15.3 = EnsureNamed %15.2
  23596. lgl' %15.4 = Lt %14.11, %15.3, elided
  23597. t %15.5 = AsTest %15.4
  23598. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  23599. BB19
  23600. goto BB24
  23601. BB16
  23602. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  23603. void StVar i, %16.0, e9.5
  23604. cls %16.2 = LdFun buildTreeDepth, e9.5
  23605. prom %16.3 = MkArg missing, Prom(8), e9.5
  23606. prom %16.4 = MkArg missing, Prom(9), e9.5
  23607. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  23608. BB18
  23609. cls' %18.0 = LdConst function (depth, random) { if (d...
  23610. t %18.1 = Identical %16.2, %18.0
  23611. void Assume %18.1, %16.5
  23612. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23613. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  23614. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  23615. val^? %18.6 = LdVar array, e9.5
  23616. val %18.7 = Force %18.6, e9.5
  23617. val^? %18.8 = LdVar i, e9.5
  23618. val %18.9 = Force %18.8, e9.5
  23619. val^ %18.10 = EnsureNamed %18.5
  23620. val %18.11 = Force %18.10, e9.5
  23621. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  23622. void StVar array, %18.12, e9.5
  23623. goto BB15
  23624. BB17
  23625. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23626. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  23627. void Deopt %17.1
  23628. Prom 2:
  23629. BB0
  23630. env e0.0 = LdFunctionEnv
  23631. val^? %0.1 = LdVar depth, e0.0
  23632. val %0.2 = Force %0.1, e0.0
  23633. real$' %0.3 = LdConst [1] 1
  23634. goto BB1
  23635. BB1
  23636. val %1.0 = Sub %0.2, %0.3, e0.0
  23637. void Return %1.0
  23638. Prom 3:
  23639. BB0
  23640. env e0.0 = LdFunctionEnv
  23641. val^? %0.1 = LdVar random, e0.0
  23642. val %0.2 = Force %0.1, e0.0
  23643. void Return %0.2
  23644. Prom 4:
  23645. BB0
  23646. env e0.0 = LdFunctionEnv
  23647. cls %0.1 = LdFun nextRandom, e0.0
  23648. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23649. t %0.3 = Identical %0.1, %0.2
  23650. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23651. BB2
  23652. void Assume %0.3, %0.4
  23653. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23654. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23655. real$' %2.3 = LdConst [1] 10
  23656. goto BB3
  23657. BB1
  23658. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23659. void Deopt %1.0
  23660. BB3
  23661. val %3.0 = Force %2.2, e0.0
  23662. val %3.1 = Mod %3.0, %2.3, e0.0
  23663. real$' %3.2 = LdConst [1] 1
  23664. goto BB4
  23665. BB4
  23666. val %4.0 = Add %3.1, %3.2, e0.0
  23667. void Return %4.0
  23668. Prom 5:
  23669. BB0
  23670. env e0.0 = LdFunctionEnv
  23671. cls %0.1 = LdFun nextRandom, e0.0
  23672. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23673. t %0.3 = Identical %0.1, %0.2
  23674. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23675. BB2
  23676. void Assume %0.3, %0.4
  23677. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23678. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23679. real$' %2.3 = LdConst [1] 10
  23680. goto BB3
  23681. BB1
  23682. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23683. void Deopt %1.0
  23684. BB3
  23685. val %3.0 = Force %2.2, e0.0
  23686. val %3.1 = Mod %3.0, %2.3, e0.0
  23687. real$' %3.2 = LdConst [1] 1
  23688. goto BB4
  23689. BB4
  23690. val %4.0 = Add %3.1, %3.2, e0.0
  23691. void Return %4.0
  23692. Prom 8:
  23693. BB0
  23694. env e0.0 = LdFunctionEnv
  23695. val^? %0.1 = LdVar depth, e0.0
  23696. val %0.2 = Force %0.1, e0.0
  23697. real$' %0.3 = LdConst [1] 1
  23698. goto BB1
  23699. BB1
  23700. val %1.0 = Sub %0.2, %0.3, e0.0
  23701. void Return %1.0
  23702. Prom 9:
  23703. BB0
  23704. env e0.0 = LdFunctionEnv
  23705. val^? %0.1 = LdVar random, e0.0
  23706. val %0.2 = Force %0.1, e0.0
  23707. void Return %0.2
  23708. ├────── Move environment creation as far as possible: == 497
  23709. buildTreeDepth[0x7f92446010b0]
  23710. BB0
  23711. val^ %0.0 = LdArg 0
  23712. val^ %0.1 = LdArg 1
  23713. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  23714. val %0.3 = Force! %0.0, e0.2
  23715. real$' %0.4 = LdConst [1] 1
  23716. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23717. BB2
  23718. t %2.0 = IsObject %0.3
  23719. void AssumeNot %2.0, %0.5
  23720. lgl' %2.2 = Eq %0.3, %0.4, elided
  23721. lgl %2.3 = AsLogical %2.2
  23722. t %2.4 = AsTest %2.3
  23723. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  23724. BB1
  23725. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  23726. void Deopt %1.0
  23727. BB22
  23728. cls %22.0 = LdFun c, e0.2
  23729. prom %22.1 = MkArg missing, Prom(4), e0.2
  23730. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  23731. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  23732. goto BB23
  23733. BB3
  23734. cls %3.0 = LdFun vector, e0.2
  23735. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  23736. BB23
  23737. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  23738. val %23.1 = Force %23.0, e0.2
  23739. void Return %23.1
  23740. BB5
  23741. cls' %5.0 = LdConst function (mode = "logical", length = ...
  23742. t %5.1 = Identical %3.0, %5.0
  23743. void Assume %5.1, %3.1
  23744. str$' %5.3 = LdConst [1] "list"
  23745. real$' %5.4 = LdConst [1] 4
  23746. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  23747. void StVar array, %5.5, e0.2
  23748. real$' %5.7 = LdConst [1] 1
  23749. real$' %5.8 = LdConst [1] 4
  23750. val' %5.9 = Colon %5.7, %5.8, elided
  23751. val' %5.10 = SetShared %5.9
  23752. int$' %5.11 = ForSeqSize %5.10
  23753. int$' %5.12 = LdConst [1] 0
  23754. goto BB6
  23755. BB4
  23756. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  23757. void Deopt %4.0
  23758. BB6
  23759. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  23760. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  23761. int$' %6.2 = Inc %6.1
  23762. int$' %6.3 = EnsureNamed %6.2
  23763. lgl' %6.4 = Lt %5.11, %6.3, elided
  23764. t %6.5 = AsTest %6.4
  23765. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  23766. BB21
  23767. goto BB23
  23768. BB7
  23769. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  23770. void StVar i, %7.0, e0.2
  23771. cls %7.2 = LdFun buildTreeDepth, e0.2
  23772. prom %7.3 = MkArg missing, Prom(2), e0.2
  23773. prom %7.4 = MkArg missing, Prom(3), e0.2
  23774. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  23775. BB9
  23776. cls' %9.0 = LdConst function (depth, random) { if (d...
  23777. t %9.1 = Identical %7.2, %9.0
  23778. void Assume %9.1, %7.5
  23779. val^? %9.3 = CastType %7.3
  23780. val^? %9.4 = CastType %7.4
  23781. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  23782. val %9.6 = Force %9.3, e9.5
  23783. real$' %9.7 = LdConst [1] 1
  23784. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  23785. BB8
  23786. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  23787. void Deopt %8.0
  23788. BB11
  23789. t %11.0 = IsObject %9.6
  23790. void AssumeNot %11.0, %9.8
  23791. lgl' %11.2 = Eq %9.6, %9.7, elided
  23792. lgl %11.3 = AsLogical %11.2
  23793. t %11.4 = AsTest %11.3
  23794. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  23795. BB10
  23796. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23797. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  23798. void Deopt %10.1
  23799. BB20
  23800. cls %20.0 = LdFun c, e9.5
  23801. prom %20.1 = MkArg missing, Prom(5), e9.5
  23802. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23803. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  23804. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  23805. goto BB24
  23806. BB12
  23807. cls %12.0 = LdFun vector, e9.5
  23808. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  23809. BB24
  23810. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  23811. val %24.1 = Force %24.0, e9.5
  23812. val^? %24.2 = LdVar array, e0.2
  23813. val %24.3 = Force %24.2, e0.2
  23814. val^? %24.4 = LdVar i, e0.2
  23815. val %24.5 = Force %24.4, e0.2
  23816. val %24.6 = EnsureNamed %24.1
  23817. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  23818. void StVar array, %24.7, e0.2
  23819. goto BB6
  23820. BB14
  23821. cls' %14.0 = LdConst function (mode = "logical", length = ...
  23822. t %14.1 = Identical %12.0, %14.0
  23823. void Assume %14.1, %12.1
  23824. real$' %14.3 = LdConst [1] 4
  23825. str$' %14.4 = LdConst [1] "list"
  23826. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  23827. void StVar array, %14.5, e9.5
  23828. real$' %14.7 = LdConst [1] 4
  23829. real$' %14.8 = LdConst [1] 1
  23830. val' %14.9 = Colon %14.8, %14.7, elided
  23831. val' %14.10 = SetShared %14.9
  23832. int$' %14.11 = ForSeqSize %14.10
  23833. int$' %14.12 = LdConst [1] 0
  23834. goto BB15
  23835. BB13
  23836. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23837. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  23838. void Deopt %13.1
  23839. BB15
  23840. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  23841. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  23842. int$' %15.2 = Inc %15.1
  23843. int$' %15.3 = EnsureNamed %15.2
  23844. lgl' %15.4 = Lt %14.11, %15.3, elided
  23845. t %15.5 = AsTest %15.4
  23846. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  23847. BB19
  23848. goto BB24
  23849. BB16
  23850. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  23851. void StVar i, %16.0, e9.5
  23852. cls %16.2 = LdFun buildTreeDepth, e9.5
  23853. prom %16.3 = MkArg missing, Prom(8), e9.5
  23854. prom %16.4 = MkArg missing, Prom(9), e9.5
  23855. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  23856. BB18
  23857. cls' %18.0 = LdConst function (depth, random) { if (d...
  23858. t %18.1 = Identical %16.2, %18.0
  23859. void Assume %18.1, %16.5
  23860. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23861. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  23862. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  23863. val^? %18.6 = LdVar array, e9.5
  23864. val %18.7 = Force %18.6, e9.5
  23865. val^? %18.8 = LdVar i, e9.5
  23866. val %18.9 = Force %18.8, e9.5
  23867. val^ %18.10 = EnsureNamed %18.5
  23868. val %18.11 = Force %18.10, e9.5
  23869. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  23870. void StVar array, %18.12, e9.5
  23871. goto BB15
  23872. BB17
  23873. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  23874. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  23875. void Deopt %17.1
  23876. Prom 2:
  23877. BB0
  23878. env e0.0 = LdFunctionEnv
  23879. val^? %0.1 = LdVar depth, e0.0
  23880. val %0.2 = Force %0.1, e0.0
  23881. real$' %0.3 = LdConst [1] 1
  23882. goto BB1
  23883. BB1
  23884. val %1.0 = Sub %0.2, %0.3, e0.0
  23885. void Return %1.0
  23886. Prom 3:
  23887. BB0
  23888. env e0.0 = LdFunctionEnv
  23889. val^? %0.1 = LdVar random, e0.0
  23890. val %0.2 = Force %0.1, e0.0
  23891. void Return %0.2
  23892. Prom 4:
  23893. BB0
  23894. env e0.0 = LdFunctionEnv
  23895. cls %0.1 = LdFun nextRandom, e0.0
  23896. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23897. t %0.3 = Identical %0.1, %0.2
  23898. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23899. BB2
  23900. void Assume %0.3, %0.4
  23901. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23902. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23903. real$' %2.3 = LdConst [1] 10
  23904. goto BB3
  23905. BB1
  23906. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23907. void Deopt %1.0
  23908. BB3
  23909. val %3.0 = Force %2.2, e0.0
  23910. val %3.1 = Mod %3.0, %2.3, e0.0
  23911. real$' %3.2 = LdConst [1] 1
  23912. goto BB4
  23913. BB4
  23914. val %4.0 = Add %3.1, %3.2, e0.0
  23915. void Return %4.0
  23916. Prom 5:
  23917. BB0
  23918. env e0.0 = LdFunctionEnv
  23919. cls %0.1 = LdFun nextRandom, e0.0
  23920. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  23921. t %0.3 = Identical %0.1, %0.2
  23922. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23923. BB2
  23924. void Assume %0.3, %0.4
  23925. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  23926. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  23927. real$' %2.3 = LdConst [1] 10
  23928. goto BB3
  23929. BB1
  23930. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  23931. void Deopt %1.0
  23932. BB3
  23933. val %3.0 = Force %2.2, e0.0
  23934. val %3.1 = Mod %3.0, %2.3, e0.0
  23935. real$' %3.2 = LdConst [1] 1
  23936. goto BB4
  23937. BB4
  23938. val %4.0 = Add %3.1, %3.2, e0.0
  23939. void Return %4.0
  23940. Prom 8:
  23941. BB0
  23942. env e0.0 = LdFunctionEnv
  23943. val^? %0.1 = LdVar depth, e0.0
  23944. val %0.2 = Force %0.1, e0.0
  23945. real$' %0.3 = LdConst [1] 1
  23946. goto BB1
  23947. BB1
  23948. val %1.0 = Sub %0.2, %0.3, e0.0
  23949. void Return %1.0
  23950. Prom 9:
  23951. BB0
  23952. env e0.0 = LdFunctionEnv
  23953. val^? %0.1 = LdVar random, e0.0
  23954. val %0.2 = Force %0.1, e0.0
  23955. void Return %0.2
  23956. ├────── Cleanup redundant operations: == 504
  23957. buildTreeDepth[0x7f92446010b0]
  23958. BB0
  23959. val^ %0.0 = LdArg 0
  23960. val^ %0.1 = LdArg 1
  23961. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  23962. val %0.3 = Force! %0.0, e0.2
  23963. real$' %0.4 = LdConst [1] 1
  23964. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  23965. BB2
  23966. t %2.0 = IsObject %0.3
  23967. void AssumeNot %2.0, %0.5
  23968. lgl' %2.2 = Eq %0.3, %0.4, elided
  23969. lgl %2.3 = AsLogical %2.2
  23970. t %2.4 = AsTest %2.3
  23971. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  23972. BB1
  23973. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  23974. void Deopt %1.0
  23975. BB22
  23976. cls %22.0 = LdFun c, e0.2
  23977. prom %22.1 = MkArg missing, Prom(4), e0.2
  23978. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  23979. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  23980. goto BB23
  23981. BB3
  23982. cls %3.0 = LdFun vector, e0.2
  23983. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  23984. BB23
  23985. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  23986. val %23.1 = Force %23.0, e0.2
  23987. void Return %23.1
  23988. BB5
  23989. cls' %5.0 = LdConst function (mode = "logical", length = ...
  23990. t %5.1 = Identical %3.0, %5.0
  23991. void Assume %5.1, %3.1
  23992. str$' %5.3 = LdConst [1] "list"
  23993. real$' %5.4 = LdConst [1] 4
  23994. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  23995. void StVar array, %5.5, e0.2
  23996. real$' %5.7 = LdConst [1] 1
  23997. real$' %5.8 = LdConst [1] 4
  23998. val' %5.9 = Colon %5.7, %5.8, elided
  23999. val' %5.10 = SetShared %5.9
  24000. int$' %5.11 = ForSeqSize %5.10
  24001. int$' %5.12 = LdConst [1] 0
  24002. goto BB6
  24003. BB4
  24004. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  24005. void Deopt %4.0
  24006. BB6
  24007. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  24008. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  24009. int$' %6.2 = Inc %6.1
  24010. int$' %6.3 = EnsureNamed %6.2
  24011. lgl' %6.4 = Lt %5.11, %6.3, elided
  24012. t %6.5 = AsTest %6.4
  24013. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  24014. BB21
  24015. goto BB23
  24016. BB7
  24017. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  24018. void StVar i, %7.0, e0.2
  24019. cls %7.2 = LdFun buildTreeDepth, e0.2
  24020. prom %7.3 = MkArg missing, Prom(2), e0.2
  24021. prom %7.4 = MkArg missing, Prom(3), e0.2
  24022. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  24023. BB9
  24024. cls' %9.0 = LdConst function (depth, random) { if (d...
  24025. t %9.1 = Identical %7.2, %9.0
  24026. void Assume %9.1, %7.5
  24027. val^? %9.3 = CastType %7.3
  24028. val^? %9.4 = CastType %7.4
  24029. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  24030. val %9.6 = Force %9.3, e9.5
  24031. real$' %9.7 = LdConst [1] 1
  24032. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  24033. BB8
  24034. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  24035. void Deopt %8.0
  24036. BB11
  24037. t %11.0 = IsObject %9.6
  24038. void AssumeNot %11.0, %9.8
  24039. lgl' %11.2 = Eq %9.6, %9.7, elided
  24040. lgl %11.3 = AsLogical %11.2
  24041. t %11.4 = AsTest %11.3
  24042. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  24043. BB10
  24044. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24045. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  24046. void Deopt %10.1
  24047. BB20
  24048. cls %20.0 = LdFun c, e9.5
  24049. prom %20.1 = MkArg missing, Prom(5), e9.5
  24050. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24051. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  24052. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  24053. goto BB24
  24054. BB12
  24055. cls %12.0 = LdFun vector, e9.5
  24056. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  24057. BB24
  24058. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  24059. val %24.1 = Force %24.0, e9.5
  24060. val^? %24.2 = LdVar array, e0.2
  24061. val %24.3 = Force %24.2, e0.2
  24062. val^? %24.4 = LdVar i, e0.2
  24063. val %24.5 = Force %24.4, e0.2
  24064. val %24.6 = EnsureNamed %24.1
  24065. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  24066. void StVar array, %24.7, e0.2
  24067. goto BB6
  24068. BB14
  24069. cls' %14.0 = LdConst function (mode = "logical", length = ...
  24070. t %14.1 = Identical %12.0, %14.0
  24071. void Assume %14.1, %12.1
  24072. real$' %14.3 = LdConst [1] 4
  24073. str$' %14.4 = LdConst [1] "list"
  24074. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  24075. void StVar array, %14.5, e9.5
  24076. real$' %14.7 = LdConst [1] 4
  24077. real$' %14.8 = LdConst [1] 1
  24078. val' %14.9 = Colon %14.8, %14.7, elided
  24079. val' %14.10 = SetShared %14.9
  24080. int$' %14.11 = ForSeqSize %14.10
  24081. int$' %14.12 = LdConst [1] 0
  24082. goto BB15
  24083. BB13
  24084. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24085. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  24086. void Deopt %13.1
  24087. BB15
  24088. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  24089. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  24090. int$' %15.2 = Inc %15.1
  24091. int$' %15.3 = EnsureNamed %15.2
  24092. lgl' %15.4 = Lt %14.11, %15.3, elided
  24093. t %15.5 = AsTest %15.4
  24094. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  24095. BB19
  24096. goto BB24
  24097. BB16
  24098. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  24099. void StVar i, %16.0, e9.5
  24100. cls %16.2 = LdFun buildTreeDepth, e9.5
  24101. prom %16.3 = MkArg missing, Prom(8), e9.5
  24102. prom %16.4 = MkArg missing, Prom(9), e9.5
  24103. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  24104. BB18
  24105. cls' %18.0 = LdConst function (depth, random) { if (d...
  24106. t %18.1 = Identical %16.2, %18.0
  24107. void Assume %18.1, %16.5
  24108. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24109. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  24110. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  24111. val^? %18.6 = LdVar array, e9.5
  24112. val %18.7 = Force %18.6, e9.5
  24113. val^? %18.8 = LdVar i, e9.5
  24114. val %18.9 = Force %18.8, e9.5
  24115. val^ %18.10 = EnsureNamed %18.5
  24116. val %18.11 = Force %18.10, e9.5
  24117. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  24118. void StVar array, %18.12, e9.5
  24119. goto BB15
  24120. BB17
  24121. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24122. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  24123. void Deopt %17.1
  24124. Prom 2:
  24125. BB0
  24126. env e0.0 = LdFunctionEnv
  24127. val^? %0.1 = LdVar depth, e0.0
  24128. val %0.2 = Force %0.1, e0.0
  24129. real$' %0.3 = LdConst [1] 1
  24130. goto BB1
  24131. BB1
  24132. val %1.0 = Sub %0.2, %0.3, e0.0
  24133. void Return %1.0
  24134. Prom 3:
  24135. BB0
  24136. env e0.0 = LdFunctionEnv
  24137. val^? %0.1 = LdVar random, e0.0
  24138. val %0.2 = Force %0.1, e0.0
  24139. void Return %0.2
  24140. Prom 4:
  24141. BB0
  24142. env e0.0 = LdFunctionEnv
  24143. cls %0.1 = LdFun nextRandom, e0.0
  24144. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24145. t %0.3 = Identical %0.1, %0.2
  24146. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24147. BB2
  24148. void Assume %0.3, %0.4
  24149. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24150. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24151. real$' %2.3 = LdConst [1] 10
  24152. goto BB3
  24153. BB1
  24154. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24155. void Deopt %1.0
  24156. BB3
  24157. val %3.0 = Force %2.2, e0.0
  24158. val %3.1 = Mod %3.0, %2.3, e0.0
  24159. real$' %3.2 = LdConst [1] 1
  24160. goto BB4
  24161. BB4
  24162. val %4.0 = Add %3.1, %3.2, e0.0
  24163. void Return %4.0
  24164. Prom 5:
  24165. BB0
  24166. env e0.0 = LdFunctionEnv
  24167. cls %0.1 = LdFun nextRandom, e0.0
  24168. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24169. t %0.3 = Identical %0.1, %0.2
  24170. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24171. BB2
  24172. void Assume %0.3, %0.4
  24173. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24174. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24175. real$' %2.3 = LdConst [1] 10
  24176. goto BB3
  24177. BB1
  24178. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24179. void Deopt %1.0
  24180. BB3
  24181. val %3.0 = Force %2.2, e0.0
  24182. val %3.1 = Mod %3.0, %2.3, e0.0
  24183. real$' %3.2 = LdConst [1] 1
  24184. goto BB4
  24185. BB4
  24186. val %4.0 = Add %3.1, %3.2, e0.0
  24187. void Return %4.0
  24188. Prom 8:
  24189. BB0
  24190. env e0.0 = LdFunctionEnv
  24191. val^? %0.1 = LdVar depth, e0.0
  24192. val %0.2 = Force %0.1, e0.0
  24193. real$' %0.3 = LdConst [1] 1
  24194. goto BB1
  24195. BB1
  24196. val %1.0 = Sub %0.2, %0.3, e0.0
  24197. void Return %1.0
  24198. Prom 9:
  24199. BB0
  24200. env e0.0 = LdFunctionEnv
  24201. val^? %0.1 = LdVar random, e0.0
  24202. val %0.2 = Force %0.1, e0.0
  24203. void Return %0.2
  24204. ├────── Inline closures: == 511
  24205. buildTreeDepth[0x7f92446010b0]
  24206. BB0
  24207. val^ %0.0 = LdArg 0
  24208. val^ %0.1 = LdArg 1
  24209. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  24210. val %0.3 = Force! %0.0, e0.2
  24211. real$' %0.4 = LdConst [1] 1
  24212. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24213. BB2
  24214. t %2.0 = IsObject %0.3
  24215. void AssumeNot %2.0, %0.5
  24216. lgl' %2.2 = Eq %0.3, %0.4, elided
  24217. lgl %2.3 = AsLogical %2.2
  24218. t %2.4 = AsTest %2.3
  24219. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  24220. BB1
  24221. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  24222. void Deopt %1.0
  24223. BB22
  24224. cls %22.0 = LdFun c, e0.2
  24225. prom %22.1 = MkArg missing, Prom(4), e0.2
  24226. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  24227. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  24228. goto BB23
  24229. BB3
  24230. cls %3.0 = LdFun vector, e0.2
  24231. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  24232. BB23
  24233. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  24234. val %23.1 = Force %23.0, e0.2
  24235. void Return %23.1
  24236. BB5
  24237. cls' %5.0 = LdConst function (mode = "logical", length = ...
  24238. t %5.1 = Identical %3.0, %5.0
  24239. void Assume %5.1, %3.1
  24240. str$' %5.3 = LdConst [1] "list"
  24241. real$' %5.4 = LdConst [1] 4
  24242. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  24243. void StVar array, %5.5, e0.2
  24244. real$' %5.7 = LdConst [1] 1
  24245. real$' %5.8 = LdConst [1] 4
  24246. val' %5.9 = Colon %5.7, %5.8, elided
  24247. val' %5.10 = SetShared %5.9
  24248. int$' %5.11 = ForSeqSize %5.10
  24249. int$' %5.12 = LdConst [1] 0
  24250. goto BB6
  24251. BB4
  24252. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  24253. void Deopt %4.0
  24254. BB6
  24255. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  24256. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  24257. int$' %6.2 = Inc %6.1
  24258. int$' %6.3 = EnsureNamed %6.2
  24259. lgl' %6.4 = Lt %5.11, %6.3, elided
  24260. t %6.5 = AsTest %6.4
  24261. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  24262. BB21
  24263. goto BB23
  24264. BB7
  24265. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  24266. void StVar i, %7.0, e0.2
  24267. cls %7.2 = LdFun buildTreeDepth, e0.2
  24268. prom %7.3 = MkArg missing, Prom(2), e0.2
  24269. prom %7.4 = MkArg missing, Prom(3), e0.2
  24270. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  24271. BB9
  24272. cls' %9.0 = LdConst function (depth, random) { if (d...
  24273. t %9.1 = Identical %7.2, %9.0
  24274. void Assume %9.1, %7.5
  24275. val^? %9.3 = CastType %7.3
  24276. val^? %9.4 = CastType %7.4
  24277. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  24278. val %9.6 = Force %9.3, e9.5
  24279. real$' %9.7 = LdConst [1] 1
  24280. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  24281. BB8
  24282. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  24283. void Deopt %8.0
  24284. BB11
  24285. t %11.0 = IsObject %9.6
  24286. void AssumeNot %11.0, %9.8
  24287. lgl' %11.2 = Eq %9.6, %9.7, elided
  24288. lgl %11.3 = AsLogical %11.2
  24289. t %11.4 = AsTest %11.3
  24290. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  24291. BB10
  24292. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24293. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  24294. void Deopt %10.1
  24295. BB20
  24296. cls %20.0 = LdFun c, e9.5
  24297. prom %20.1 = MkArg missing, Prom(5), e9.5
  24298. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24299. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  24300. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  24301. goto BB24
  24302. BB12
  24303. cls %12.0 = LdFun vector, e9.5
  24304. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  24305. BB24
  24306. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  24307. val %24.1 = Force %24.0, e9.5
  24308. val^? %24.2 = LdVar array, e0.2
  24309. val %24.3 = Force %24.2, e0.2
  24310. val^? %24.4 = LdVar i, e0.2
  24311. val %24.5 = Force %24.4, e0.2
  24312. val %24.6 = EnsureNamed %24.1
  24313. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  24314. void StVar array, %24.7, e0.2
  24315. goto BB6
  24316. BB14
  24317. cls' %14.0 = LdConst function (mode = "logical", length = ...
  24318. t %14.1 = Identical %12.0, %14.0
  24319. void Assume %14.1, %12.1
  24320. real$' %14.3 = LdConst [1] 4
  24321. str$' %14.4 = LdConst [1] "list"
  24322. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  24323. void StVar array, %14.5, e9.5
  24324. real$' %14.7 = LdConst [1] 4
  24325. real$' %14.8 = LdConst [1] 1
  24326. val' %14.9 = Colon %14.8, %14.7, elided
  24327. val' %14.10 = SetShared %14.9
  24328. int$' %14.11 = ForSeqSize %14.10
  24329. int$' %14.12 = LdConst [1] 0
  24330. goto BB15
  24331. BB13
  24332. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24333. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  24334. void Deopt %13.1
  24335. BB15
  24336. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  24337. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  24338. int$' %15.2 = Inc %15.1
  24339. int$' %15.3 = EnsureNamed %15.2
  24340. lgl' %15.4 = Lt %14.11, %15.3, elided
  24341. t %15.5 = AsTest %15.4
  24342. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  24343. BB19
  24344. goto BB24
  24345. BB16
  24346. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  24347. void StVar i, %16.0, e9.5
  24348. cls %16.2 = LdFun buildTreeDepth, e9.5
  24349. prom %16.3 = MkArg missing, Prom(8), e9.5
  24350. prom %16.4 = MkArg missing, Prom(9), e9.5
  24351. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  24352. BB18
  24353. cls' %18.0 = LdConst function (depth, random) { if (d...
  24354. t %18.1 = Identical %16.2, %18.0
  24355. void Assume %18.1, %16.5
  24356. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24357. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  24358. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  24359. val^? %18.6 = LdVar array, e9.5
  24360. val %18.7 = Force %18.6, e9.5
  24361. val^? %18.8 = LdVar i, e9.5
  24362. val %18.9 = Force %18.8, e9.5
  24363. val^ %18.10 = EnsureNamed %18.5
  24364. val %18.11 = Force %18.10, e9.5
  24365. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  24366. void StVar array, %18.12, e9.5
  24367. goto BB15
  24368. BB17
  24369. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24370. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  24371. void Deopt %17.1
  24372. Prom 2:
  24373. BB0
  24374. env e0.0 = LdFunctionEnv
  24375. val^? %0.1 = LdVar depth, e0.0
  24376. val %0.2 = Force %0.1, e0.0
  24377. real$' %0.3 = LdConst [1] 1
  24378. goto BB1
  24379. BB1
  24380. val %1.0 = Sub %0.2, %0.3, e0.0
  24381. void Return %1.0
  24382. Prom 3:
  24383. BB0
  24384. env e0.0 = LdFunctionEnv
  24385. val^? %0.1 = LdVar random, e0.0
  24386. val %0.2 = Force %0.1, e0.0
  24387. void Return %0.2
  24388. Prom 4:
  24389. BB0
  24390. env e0.0 = LdFunctionEnv
  24391. cls %0.1 = LdFun nextRandom, e0.0
  24392. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24393. t %0.3 = Identical %0.1, %0.2
  24394. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24395. BB2
  24396. void Assume %0.3, %0.4
  24397. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24398. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24399. real$' %2.3 = LdConst [1] 10
  24400. goto BB3
  24401. BB1
  24402. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24403. void Deopt %1.0
  24404. BB3
  24405. val %3.0 = Force %2.2, e0.0
  24406. val %3.1 = Mod %3.0, %2.3, e0.0
  24407. real$' %3.2 = LdConst [1] 1
  24408. goto BB4
  24409. BB4
  24410. val %4.0 = Add %3.1, %3.2, e0.0
  24411. void Return %4.0
  24412. Prom 5:
  24413. BB0
  24414. env e0.0 = LdFunctionEnv
  24415. cls %0.1 = LdFun nextRandom, e0.0
  24416. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24417. t %0.3 = Identical %0.1, %0.2
  24418. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24419. BB2
  24420. void Assume %0.3, %0.4
  24421. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24422. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24423. real$' %2.3 = LdConst [1] 10
  24424. goto BB3
  24425. BB1
  24426. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24427. void Deopt %1.0
  24428. BB3
  24429. val %3.0 = Force %2.2, e0.0
  24430. val %3.1 = Mod %3.0, %2.3, e0.0
  24431. real$' %3.2 = LdConst [1] 1
  24432. goto BB4
  24433. BB4
  24434. val %4.0 = Add %3.1, %3.2, e0.0
  24435. void Return %4.0
  24436. Prom 8:
  24437. BB0
  24438. env e0.0 = LdFunctionEnv
  24439. val^? %0.1 = LdVar depth, e0.0
  24440. val %0.2 = Force %0.1, e0.0
  24441. real$' %0.3 = LdConst [1] 1
  24442. goto BB1
  24443. BB1
  24444. val %1.0 = Sub %0.2, %0.3, e0.0
  24445. void Return %1.0
  24446. Prom 9:
  24447. BB0
  24448. env e0.0 = LdFunctionEnv
  24449. val^? %0.1 = LdVar random, e0.0
  24450. val %0.2 = Force %0.1, e0.0
  24451. void Return %0.2
  24452. ├────── Speculate on values to elide environments: == 518
  24453. buildTreeDepth[0x7f92446010b0]
  24454. BB0
  24455. val^ %0.0 = LdArg 0
  24456. val^ %0.1 = LdArg 1
  24457. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  24458. val %0.3 = Force! %0.0, e0.2
  24459. real$' %0.4 = LdConst [1] 1
  24460. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24461. BB2
  24462. t %2.0 = IsObject %0.3
  24463. void AssumeNot %2.0, %0.5
  24464. lgl' %2.2 = Eq %0.3, %0.4, elided
  24465. lgl %2.3 = AsLogical %2.2
  24466. t %2.4 = AsTest %2.3
  24467. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  24468. BB1
  24469. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  24470. void Deopt %1.0
  24471. BB22
  24472. cls %22.0 = LdFun c, e0.2
  24473. prom %22.1 = MkArg missing, Prom(4), e0.2
  24474. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  24475. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  24476. goto BB23
  24477. BB3
  24478. cls %3.0 = LdFun vector, e0.2
  24479. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  24480. BB23
  24481. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  24482. val %23.1 = Force %23.0, e0.2
  24483. void Return %23.1
  24484. BB5
  24485. cls' %5.0 = LdConst function (mode = "logical", length = ...
  24486. t %5.1 = Identical %3.0, %5.0
  24487. void Assume %5.1, %3.1
  24488. str$' %5.3 = LdConst [1] "list"
  24489. real$' %5.4 = LdConst [1] 4
  24490. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  24491. void StVar array, %5.5, e0.2
  24492. real$' %5.7 = LdConst [1] 1
  24493. real$' %5.8 = LdConst [1] 4
  24494. val' %5.9 = Colon %5.7, %5.8, elided
  24495. val' %5.10 = SetShared %5.9
  24496. int$' %5.11 = ForSeqSize %5.10
  24497. int$' %5.12 = LdConst [1] 0
  24498. goto BB6
  24499. BB4
  24500. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  24501. void Deopt %4.0
  24502. BB6
  24503. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  24504. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  24505. int$' %6.2 = Inc %6.1
  24506. int$' %6.3 = EnsureNamed %6.2
  24507. lgl' %6.4 = Lt %5.11, %6.3, elided
  24508. t %6.5 = AsTest %6.4
  24509. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  24510. BB21
  24511. goto BB23
  24512. BB7
  24513. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  24514. void StVar i, %7.0, e0.2
  24515. cls %7.2 = LdFun buildTreeDepth, e0.2
  24516. prom %7.3 = MkArg missing, Prom(2), e0.2
  24517. prom %7.4 = MkArg missing, Prom(3), e0.2
  24518. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  24519. BB9
  24520. cls' %9.0 = LdConst function (depth, random) { if (d...
  24521. t %9.1 = Identical %7.2, %9.0
  24522. void Assume %9.1, %7.5
  24523. val^? %9.3 = CastType %7.3
  24524. val^? %9.4 = CastType %7.4
  24525. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  24526. val %9.6 = Force %9.3, e9.5
  24527. real$' %9.7 = LdConst [1] 1
  24528. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  24529. BB8
  24530. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  24531. void Deopt %8.0
  24532. BB11
  24533. t %11.0 = IsObject %9.6
  24534. void AssumeNot %11.0, %9.8
  24535. lgl' %11.2 = Eq %9.6, %9.7, elided
  24536. lgl %11.3 = AsLogical %11.2
  24537. t %11.4 = AsTest %11.3
  24538. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  24539. BB10
  24540. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24541. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  24542. void Deopt %10.1
  24543. BB20
  24544. cls %20.0 = LdFun c, e9.5
  24545. prom %20.1 = MkArg missing, Prom(5), e9.5
  24546. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24547. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  24548. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  24549. goto BB24
  24550. BB12
  24551. cls %12.0 = LdFun vector, e9.5
  24552. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  24553. BB24
  24554. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  24555. val %24.1 = Force %24.0, e9.5
  24556. val^? %24.2 = LdVar array, e0.2
  24557. val %24.3 = Force %24.2, e0.2
  24558. val^? %24.4 = LdVar i, e0.2
  24559. val %24.5 = Force %24.4, e0.2
  24560. val %24.6 = EnsureNamed %24.1
  24561. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  24562. void StVar array, %24.7, e0.2
  24563. goto BB6
  24564. BB14
  24565. cls' %14.0 = LdConst function (mode = "logical", length = ...
  24566. t %14.1 = Identical %12.0, %14.0
  24567. void Assume %14.1, %12.1
  24568. real$' %14.3 = LdConst [1] 4
  24569. str$' %14.4 = LdConst [1] "list"
  24570. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  24571. void StVar array, %14.5, e9.5
  24572. real$' %14.7 = LdConst [1] 4
  24573. real$' %14.8 = LdConst [1] 1
  24574. val' %14.9 = Colon %14.8, %14.7, elided
  24575. val' %14.10 = SetShared %14.9
  24576. int$' %14.11 = ForSeqSize %14.10
  24577. int$' %14.12 = LdConst [1] 0
  24578. goto BB15
  24579. BB13
  24580. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24581. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  24582. void Deopt %13.1
  24583. BB15
  24584. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  24585. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  24586. int$' %15.2 = Inc %15.1
  24587. int$' %15.3 = EnsureNamed %15.2
  24588. lgl' %15.4 = Lt %14.11, %15.3, elided
  24589. t %15.5 = AsTest %15.4
  24590. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  24591. BB19
  24592. goto BB24
  24593. BB16
  24594. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  24595. void StVar i, %16.0, e9.5
  24596. cls %16.2 = LdFun buildTreeDepth, e9.5
  24597. prom %16.3 = MkArg missing, Prom(8), e9.5
  24598. prom %16.4 = MkArg missing, Prom(9), e9.5
  24599. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  24600. BB18
  24601. cls' %18.0 = LdConst function (depth, random) { if (d...
  24602. t %18.1 = Identical %16.2, %18.0
  24603. void Assume %18.1, %16.5
  24604. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24605. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  24606. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  24607. val^? %18.6 = LdVar array, e9.5
  24608. val %18.7 = Force %18.6, e9.5
  24609. val^? %18.8 = LdVar i, e9.5
  24610. val %18.9 = Force %18.8, e9.5
  24611. val^ %18.10 = EnsureNamed %18.5
  24612. val %18.11 = Force %18.10, e9.5
  24613. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  24614. void StVar array, %18.12, e9.5
  24615. goto BB15
  24616. BB17
  24617. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24618. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  24619. void Deopt %17.1
  24620. Prom 2:
  24621. BB0
  24622. env e0.0 = LdFunctionEnv
  24623. val^? %0.1 = LdVar depth, e0.0
  24624. val %0.2 = Force %0.1, e0.0
  24625. real$' %0.3 = LdConst [1] 1
  24626. goto BB1
  24627. BB1
  24628. val %1.0 = Sub %0.2, %0.3, e0.0
  24629. void Return %1.0
  24630. Prom 3:
  24631. BB0
  24632. env e0.0 = LdFunctionEnv
  24633. val^? %0.1 = LdVar random, e0.0
  24634. val %0.2 = Force %0.1, e0.0
  24635. void Return %0.2
  24636. Prom 4:
  24637. BB0
  24638. env e0.0 = LdFunctionEnv
  24639. cls %0.1 = LdFun nextRandom, e0.0
  24640. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24641. t %0.3 = Identical %0.1, %0.2
  24642. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24643. BB2
  24644. void Assume %0.3, %0.4
  24645. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24646. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24647. real$' %2.3 = LdConst [1] 10
  24648. goto BB3
  24649. BB1
  24650. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24651. void Deopt %1.0
  24652. BB3
  24653. val %3.0 = Force %2.2, e0.0
  24654. val %3.1 = Mod %3.0, %2.3, e0.0
  24655. real$' %3.2 = LdConst [1] 1
  24656. goto BB4
  24657. BB4
  24658. val %4.0 = Add %3.1, %3.2, e0.0
  24659. void Return %4.0
  24660. Prom 5:
  24661. BB0
  24662. env e0.0 = LdFunctionEnv
  24663. cls %0.1 = LdFun nextRandom, e0.0
  24664. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24665. t %0.3 = Identical %0.1, %0.2
  24666. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24667. BB2
  24668. void Assume %0.3, %0.4
  24669. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24670. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24671. real$' %2.3 = LdConst [1] 10
  24672. goto BB3
  24673. BB1
  24674. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24675. void Deopt %1.0
  24676. BB3
  24677. val %3.0 = Force %2.2, e0.0
  24678. val %3.1 = Mod %3.0, %2.3, e0.0
  24679. real$' %3.2 = LdConst [1] 1
  24680. goto BB4
  24681. BB4
  24682. val %4.0 = Add %3.1, %3.2, e0.0
  24683. void Return %4.0
  24684. Prom 8:
  24685. BB0
  24686. env e0.0 = LdFunctionEnv
  24687. val^? %0.1 = LdVar depth, e0.0
  24688. val %0.2 = Force %0.1, e0.0
  24689. real$' %0.3 = LdConst [1] 1
  24690. goto BB1
  24691. BB1
  24692. val %1.0 = Sub %0.2, %0.3, e0.0
  24693. void Return %1.0
  24694. Prom 9:
  24695. BB0
  24696. env e0.0 = LdFunctionEnv
  24697. val^? %0.1 = LdVar random, e0.0
  24698. val %0.2 = Force %0.1, e0.0
  24699. void Return %0.2
  24700. ├────── Cleanup unused checkpoints: == 525
  24701. buildTreeDepth[0x7f92446010b0]
  24702. BB0
  24703. val^ %0.0 = LdArg 0
  24704. val^ %0.1 = LdArg 1
  24705. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  24706. val %0.3 = Force! %0.0, e0.2
  24707. real$' %0.4 = LdConst [1] 1
  24708. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24709. BB2
  24710. t %2.0 = IsObject %0.3
  24711. void AssumeNot %2.0, %0.5
  24712. lgl' %2.2 = Eq %0.3, %0.4, elided
  24713. lgl %2.3 = AsLogical %2.2
  24714. t %2.4 = AsTest %2.3
  24715. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  24716. BB1
  24717. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  24718. void Deopt %1.0
  24719. BB22
  24720. cls %22.0 = LdFun c, e0.2
  24721. prom %22.1 = MkArg missing, Prom(4), e0.2
  24722. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  24723. val^ %22.3 = Call %22.0(%22.1) %22.2, e0.2
  24724. goto BB23
  24725. BB3
  24726. cls %3.0 = LdFun vector, e0.2
  24727. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  24728. BB23
  24729. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  24730. val %23.1 = Force %23.0, e0.2
  24731. void Return %23.1
  24732. BB5
  24733. cls' %5.0 = LdConst function (mode = "logical", length = ...
  24734. t %5.1 = Identical %3.0, %5.0
  24735. void Assume %5.1, %3.1
  24736. str$' %5.3 = LdConst [1] "list"
  24737. real$' %5.4 = LdConst [1] 4
  24738. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  24739. void StVar array, %5.5, e0.2
  24740. real$' %5.7 = LdConst [1] 1
  24741. real$' %5.8 = LdConst [1] 4
  24742. val' %5.9 = Colon %5.7, %5.8, elided
  24743. val' %5.10 = SetShared %5.9
  24744. int$' %5.11 = ForSeqSize %5.10
  24745. int$' %5.12 = LdConst [1] 0
  24746. goto BB6
  24747. BB4
  24748. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  24749. void Deopt %4.0
  24750. BB6
  24751. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  24752. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  24753. int$' %6.2 = Inc %6.1
  24754. int$' %6.3 = EnsureNamed %6.2
  24755. lgl' %6.4 = Lt %5.11, %6.3, elided
  24756. t %6.5 = AsTest %6.4
  24757. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  24758. BB21
  24759. goto BB23
  24760. BB7
  24761. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  24762. void StVar i, %7.0, e0.2
  24763. cls %7.2 = LdFun buildTreeDepth, e0.2
  24764. prom %7.3 = MkArg missing, Prom(2), e0.2
  24765. prom %7.4 = MkArg missing, Prom(3), e0.2
  24766. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  24767. BB9
  24768. cls' %9.0 = LdConst function (depth, random) { if (d...
  24769. t %9.1 = Identical %7.2, %9.0
  24770. void Assume %9.1, %7.5
  24771. val^? %9.3 = CastType %7.3
  24772. val^? %9.4 = CastType %7.4
  24773. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  24774. val %9.6 = Force %9.3, e9.5
  24775. real$' %9.7 = LdConst [1] 1
  24776. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  24777. BB8
  24778. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  24779. void Deopt %8.0
  24780. BB11
  24781. t %11.0 = IsObject %9.6
  24782. void AssumeNot %11.0, %9.8
  24783. lgl' %11.2 = Eq %9.6, %9.7, elided
  24784. lgl %11.3 = AsLogical %11.2
  24785. t %11.4 = AsTest %11.3
  24786. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  24787. BB10
  24788. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24789. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  24790. void Deopt %10.1
  24791. BB20
  24792. cls %20.0 = LdFun c, e9.5
  24793. prom %20.1 = MkArg missing, Prom(5), e9.5
  24794. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24795. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  24796. val^ %20.4 = Call %20.0(%20.1) %20.3, e9.5
  24797. goto BB24
  24798. BB12
  24799. cls %12.0 = LdFun vector, e9.5
  24800. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  24801. BB24
  24802. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  24803. val %24.1 = Force %24.0, e9.5
  24804. val^? %24.2 = LdVar array, e0.2
  24805. val %24.3 = Force %24.2, e0.2
  24806. val^? %24.4 = LdVar i, e0.2
  24807. val %24.5 = Force %24.4, e0.2
  24808. val %24.6 = EnsureNamed %24.1
  24809. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  24810. void StVar array, %24.7, e0.2
  24811. goto BB6
  24812. BB14
  24813. cls' %14.0 = LdConst function (mode = "logical", length = ...
  24814. t %14.1 = Identical %12.0, %14.0
  24815. void Assume %14.1, %12.1
  24816. real$' %14.3 = LdConst [1] 4
  24817. str$' %14.4 = LdConst [1] "list"
  24818. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  24819. void StVar array, %14.5, e9.5
  24820. real$' %14.7 = LdConst [1] 4
  24821. real$' %14.8 = LdConst [1] 1
  24822. val' %14.9 = Colon %14.8, %14.7, elided
  24823. val' %14.10 = SetShared %14.9
  24824. int$' %14.11 = ForSeqSize %14.10
  24825. int$' %14.12 = LdConst [1] 0
  24826. goto BB15
  24827. BB13
  24828. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24829. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  24830. void Deopt %13.1
  24831. BB15
  24832. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  24833. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  24834. int$' %15.2 = Inc %15.1
  24835. int$' %15.3 = EnsureNamed %15.2
  24836. lgl' %15.4 = Lt %14.11, %15.3, elided
  24837. t %15.5 = AsTest %15.4
  24838. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  24839. BB19
  24840. goto BB24
  24841. BB16
  24842. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  24843. void StVar i, %16.0, e9.5
  24844. cls %16.2 = LdFun buildTreeDepth, e9.5
  24845. prom %16.3 = MkArg missing, Prom(8), e9.5
  24846. prom %16.4 = MkArg missing, Prom(9), e9.5
  24847. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  24848. BB18
  24849. cls' %18.0 = LdConst function (depth, random) { if (d...
  24850. t %18.1 = Identical %16.2, %18.0
  24851. void Assume %18.1, %16.5
  24852. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24853. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  24854. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) %18.4, e9.5
  24855. val^? %18.6 = LdVar array, e9.5
  24856. val %18.7 = Force %18.6, e9.5
  24857. val^? %18.8 = LdVar i, e9.5
  24858. val %18.9 = Force %18.8, e9.5
  24859. val^ %18.10 = EnsureNamed %18.5
  24860. val %18.11 = Force %18.10, e9.5
  24861. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  24862. void StVar array, %18.12, e9.5
  24863. goto BB15
  24864. BB17
  24865. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  24866. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  24867. void Deopt %17.1
  24868. Prom 2:
  24869. BB0
  24870. env e0.0 = LdFunctionEnv
  24871. val^? %0.1 = LdVar depth, e0.0
  24872. val %0.2 = Force %0.1, e0.0
  24873. real$' %0.3 = LdConst [1] 1
  24874. goto BB1
  24875. BB1
  24876. val %1.0 = Sub %0.2, %0.3, e0.0
  24877. void Return %1.0
  24878. Prom 3:
  24879. BB0
  24880. env e0.0 = LdFunctionEnv
  24881. val^? %0.1 = LdVar random, e0.0
  24882. val %0.2 = Force %0.1, e0.0
  24883. void Return %0.2
  24884. Prom 4:
  24885. BB0
  24886. env e0.0 = LdFunctionEnv
  24887. cls %0.1 = LdFun nextRandom, e0.0
  24888. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24889. t %0.3 = Identical %0.1, %0.2
  24890. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24891. BB2
  24892. void Assume %0.3, %0.4
  24893. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24894. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24895. real$' %2.3 = LdConst [1] 10
  24896. goto BB3
  24897. BB1
  24898. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24899. void Deopt %1.0
  24900. BB3
  24901. val %3.0 = Force %2.2, e0.0
  24902. val %3.1 = Mod %3.0, %2.3, e0.0
  24903. real$' %3.2 = LdConst [1] 1
  24904. goto BB4
  24905. BB4
  24906. val %4.0 = Add %3.1, %3.2, e0.0
  24907. void Return %4.0
  24908. Prom 5:
  24909. BB0
  24910. env e0.0 = LdFunctionEnv
  24911. cls %0.1 = LdFun nextRandom, e0.0
  24912. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  24913. t %0.3 = Identical %0.1, %0.2
  24914. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24915. BB2
  24916. void Assume %0.3, %0.4
  24917. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  24918. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  24919. real$' %2.3 = LdConst [1] 10
  24920. goto BB3
  24921. BB1
  24922. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  24923. void Deopt %1.0
  24924. BB3
  24925. val %3.0 = Force %2.2, e0.0
  24926. val %3.1 = Mod %3.0, %2.3, e0.0
  24927. real$' %3.2 = LdConst [1] 1
  24928. goto BB4
  24929. BB4
  24930. val %4.0 = Add %3.1, %3.2, e0.0
  24931. void Return %4.0
  24932. Prom 8:
  24933. BB0
  24934. env e0.0 = LdFunctionEnv
  24935. val^? %0.1 = LdVar depth, e0.0
  24936. val %0.2 = Force %0.1, e0.0
  24937. real$' %0.3 = LdConst [1] 1
  24938. goto BB1
  24939. BB1
  24940. val %1.0 = Sub %0.2, %0.3, e0.0
  24941. void Return %1.0
  24942. Prom 9:
  24943. BB0
  24944. env e0.0 = LdFunctionEnv
  24945. val^? %0.1 = LdVar random, e0.0
  24946. val %0.2 = Force %0.1, e0.0
  24947. void Return %0.2
  24948. ├────── Cleanup framestates unused by checkpoints: == 532
  24949. buildTreeDepth[0x7f92446010b0]
  24950. BB0
  24951. val^ %0.0 = LdArg 0
  24952. val^ %0.1 = LdArg 1
  24953. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  24954. val %0.3 = Force! %0.0, e0.2
  24955. real$' %0.4 = LdConst [1] 1
  24956. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  24957. BB2
  24958. t %2.0 = IsObject %0.3
  24959. void AssumeNot %2.0, %0.5
  24960. lgl' %2.2 = Eq %0.3, %0.4, elided
  24961. lgl %2.3 = AsLogical %2.2
  24962. t %2.4 = AsTest %2.3
  24963. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  24964. BB1
  24965. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  24966. void Deopt %1.0
  24967. BB22
  24968. cls %22.0 = LdFun c, e0.2
  24969. prom %22.1 = MkArg missing, Prom(4), e0.2
  24970. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  24971. val^ %22.3 = Call %22.0(%22.1) e0.2
  24972. goto BB23
  24973. BB3
  24974. cls %3.0 = LdFun vector, e0.2
  24975. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  24976. BB23
  24977. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  24978. val %23.1 = Force %23.0, e0.2
  24979. void Return %23.1
  24980. BB5
  24981. cls' %5.0 = LdConst function (mode = "logical", length = ...
  24982. t %5.1 = Identical %3.0, %5.0
  24983. void Assume %5.1, %3.1
  24984. str$' %5.3 = LdConst [1] "list"
  24985. real$' %5.4 = LdConst [1] 4
  24986. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  24987. void StVar array, %5.5, e0.2
  24988. real$' %5.7 = LdConst [1] 1
  24989. real$' %5.8 = LdConst [1] 4
  24990. val' %5.9 = Colon %5.7, %5.8, elided
  24991. val' %5.10 = SetShared %5.9
  24992. int$' %5.11 = ForSeqSize %5.10
  24993. int$' %5.12 = LdConst [1] 0
  24994. goto BB6
  24995. BB4
  24996. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  24997. void Deopt %4.0
  24998. BB6
  24999. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  25000. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  25001. int$' %6.2 = Inc %6.1
  25002. int$' %6.3 = EnsureNamed %6.2
  25003. lgl' %6.4 = Lt %5.11, %6.3, elided
  25004. t %6.5 = AsTest %6.4
  25005. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  25006. BB21
  25007. goto BB23
  25008. BB7
  25009. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  25010. void StVar i, %7.0, e0.2
  25011. cls %7.2 = LdFun buildTreeDepth, e0.2
  25012. prom %7.3 = MkArg missing, Prom(2), e0.2
  25013. prom %7.4 = MkArg missing, Prom(3), e0.2
  25014. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  25015. BB9
  25016. cls' %9.0 = LdConst function (depth, random) { if (d...
  25017. t %9.1 = Identical %7.2, %9.0
  25018. void Assume %9.1, %7.5
  25019. val^? %9.3 = CastType %7.3
  25020. val^? %9.4 = CastType %7.4
  25021. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  25022. val %9.6 = Force %9.3, e9.5
  25023. real$' %9.7 = LdConst [1] 1
  25024. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  25025. BB8
  25026. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  25027. void Deopt %8.0
  25028. BB11
  25029. t %11.0 = IsObject %9.6
  25030. void AssumeNot %11.0, %9.8
  25031. lgl' %11.2 = Eq %9.6, %9.7, elided
  25032. lgl %11.3 = AsLogical %11.2
  25033. t %11.4 = AsTest %11.3
  25034. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  25035. BB10
  25036. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25037. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  25038. void Deopt %10.1
  25039. BB20
  25040. cls %20.0 = LdFun c, e9.5
  25041. prom %20.1 = MkArg missing, Prom(5), e9.5
  25042. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25043. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  25044. val^ %20.4 = Call %20.0(%20.1) e9.5
  25045. goto BB24
  25046. BB12
  25047. cls %12.0 = LdFun vector, e9.5
  25048. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  25049. BB24
  25050. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  25051. val %24.1 = Force %24.0, e9.5
  25052. val^? %24.2 = LdVar array, e0.2
  25053. val %24.3 = Force %24.2, e0.2
  25054. val^? %24.4 = LdVar i, e0.2
  25055. val %24.5 = Force %24.4, e0.2
  25056. val %24.6 = EnsureNamed %24.1
  25057. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  25058. void StVar array, %24.7, e0.2
  25059. goto BB6
  25060. BB14
  25061. cls' %14.0 = LdConst function (mode = "logical", length = ...
  25062. t %14.1 = Identical %12.0, %14.0
  25063. void Assume %14.1, %12.1
  25064. real$' %14.3 = LdConst [1] 4
  25065. str$' %14.4 = LdConst [1] "list"
  25066. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  25067. void StVar array, %14.5, e9.5
  25068. real$' %14.7 = LdConst [1] 4
  25069. real$' %14.8 = LdConst [1] 1
  25070. val' %14.9 = Colon %14.8, %14.7, elided
  25071. val' %14.10 = SetShared %14.9
  25072. int$' %14.11 = ForSeqSize %14.10
  25073. int$' %14.12 = LdConst [1] 0
  25074. goto BB15
  25075. BB13
  25076. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25077. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  25078. void Deopt %13.1
  25079. BB15
  25080. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  25081. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  25082. int$' %15.2 = Inc %15.1
  25083. int$' %15.3 = EnsureNamed %15.2
  25084. lgl' %15.4 = Lt %14.11, %15.3, elided
  25085. t %15.5 = AsTest %15.4
  25086. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  25087. BB19
  25088. goto BB24
  25089. BB16
  25090. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  25091. void StVar i, %16.0, e9.5
  25092. cls %16.2 = LdFun buildTreeDepth, e9.5
  25093. prom %16.3 = MkArg missing, Prom(8), e9.5
  25094. prom %16.4 = MkArg missing, Prom(9), e9.5
  25095. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  25096. BB18
  25097. cls' %18.0 = LdConst function (depth, random) { if (d...
  25098. t %18.1 = Identical %16.2, %18.0
  25099. void Assume %18.1, %16.5
  25100. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25101. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  25102. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  25103. val^? %18.6 = LdVar array, e9.5
  25104. val %18.7 = Force %18.6, e9.5
  25105. val^? %18.8 = LdVar i, e9.5
  25106. val %18.9 = Force %18.8, e9.5
  25107. val^ %18.10 = EnsureNamed %18.5
  25108. val %18.11 = Force %18.10, e9.5
  25109. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  25110. void StVar array, %18.12, e9.5
  25111. goto BB15
  25112. BB17
  25113. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25114. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  25115. void Deopt %17.1
  25116. Prom 2:
  25117. BB0
  25118. env e0.0 = LdFunctionEnv
  25119. val^? %0.1 = LdVar depth, e0.0
  25120. val %0.2 = Force %0.1, e0.0
  25121. real$' %0.3 = LdConst [1] 1
  25122. goto BB1
  25123. BB1
  25124. val %1.0 = Sub %0.2, %0.3, e0.0
  25125. void Return %1.0
  25126. Prom 3:
  25127. BB0
  25128. env e0.0 = LdFunctionEnv
  25129. val^? %0.1 = LdVar random, e0.0
  25130. val %0.2 = Force %0.1, e0.0
  25131. void Return %0.2
  25132. Prom 4:
  25133. BB0
  25134. env e0.0 = LdFunctionEnv
  25135. cls %0.1 = LdFun nextRandom, e0.0
  25136. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25137. t %0.3 = Identical %0.1, %0.2
  25138. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25139. BB2
  25140. void Assume %0.3, %0.4
  25141. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25142. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25143. real$' %2.3 = LdConst [1] 10
  25144. goto BB3
  25145. BB1
  25146. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25147. void Deopt %1.0
  25148. BB3
  25149. val %3.0 = Force %2.2, e0.0
  25150. val %3.1 = Mod %3.0, %2.3, e0.0
  25151. real$' %3.2 = LdConst [1] 1
  25152. goto BB4
  25153. BB4
  25154. val %4.0 = Add %3.1, %3.2, e0.0
  25155. void Return %4.0
  25156. Prom 5:
  25157. BB0
  25158. env e0.0 = LdFunctionEnv
  25159. cls %0.1 = LdFun nextRandom, e0.0
  25160. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25161. t %0.3 = Identical %0.1, %0.2
  25162. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25163. BB2
  25164. void Assume %0.3, %0.4
  25165. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25166. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25167. real$' %2.3 = LdConst [1] 10
  25168. goto BB3
  25169. BB1
  25170. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25171. void Deopt %1.0
  25172. BB3
  25173. val %3.0 = Force %2.2, e0.0
  25174. val %3.1 = Mod %3.0, %2.3, e0.0
  25175. real$' %3.2 = LdConst [1] 1
  25176. goto BB4
  25177. BB4
  25178. val %4.0 = Add %3.1, %3.2, e0.0
  25179. void Return %4.0
  25180. Prom 8:
  25181. BB0
  25182. env e0.0 = LdFunctionEnv
  25183. val^? %0.1 = LdVar depth, e0.0
  25184. val %0.2 = Force %0.1, e0.0
  25185. real$' %0.3 = LdConst [1] 1
  25186. goto BB1
  25187. BB1
  25188. val %1.0 = Sub %0.2, %0.3, e0.0
  25189. void Return %1.0
  25190. Prom 9:
  25191. BB0
  25192. env e0.0 = LdFunctionEnv
  25193. val^? %0.1 = LdVar random, e0.0
  25194. val %0.2 = Force %0.1, e0.0
  25195. void Return %0.2
  25196. ├────── Inline Promises: == 539
  25197. buildTreeDepth[0x7f92446010b0]
  25198. BB0
  25199. val^ %0.0 = LdArg 0
  25200. val^ %0.1 = LdArg 1
  25201. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  25202. val %0.3 = Force! %0.0, e0.2
  25203. real$' %0.4 = LdConst [1] 1
  25204. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25205. BB2
  25206. t %2.0 = IsObject %0.3
  25207. void AssumeNot %2.0, %0.5
  25208. lgl' %2.2 = Eq %0.3, %0.4, elided
  25209. lgl %2.3 = AsLogical %2.2
  25210. t %2.4 = AsTest %2.3
  25211. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  25212. BB1
  25213. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  25214. void Deopt %1.0
  25215. BB22
  25216. cls %22.0 = LdFun c, e0.2
  25217. prom %22.1 = MkArg missing, Prom(4), e0.2
  25218. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  25219. val^ %22.3 = Call %22.0(%22.1) e0.2
  25220. goto BB23
  25221. BB3
  25222. cls %3.0 = LdFun vector, e0.2
  25223. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  25224. BB23
  25225. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  25226. val %23.1 = Force %23.0, e0.2
  25227. void Return %23.1
  25228. BB5
  25229. cls' %5.0 = LdConst function (mode = "logical", length = ...
  25230. t %5.1 = Identical %3.0, %5.0
  25231. void Assume %5.1, %3.1
  25232. str$' %5.3 = LdConst [1] "list"
  25233. real$' %5.4 = LdConst [1] 4
  25234. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  25235. void StVar array, %5.5, e0.2
  25236. real$' %5.7 = LdConst [1] 1
  25237. real$' %5.8 = LdConst [1] 4
  25238. val' %5.9 = Colon %5.7, %5.8, elided
  25239. val' %5.10 = SetShared %5.9
  25240. int$' %5.11 = ForSeqSize %5.10
  25241. int$' %5.12 = LdConst [1] 0
  25242. goto BB6
  25243. BB4
  25244. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  25245. void Deopt %4.0
  25246. BB6
  25247. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  25248. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  25249. int$' %6.2 = Inc %6.1
  25250. int$' %6.3 = EnsureNamed %6.2
  25251. lgl' %6.4 = Lt %5.11, %6.3, elided
  25252. t %6.5 = AsTest %6.4
  25253. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  25254. BB21
  25255. goto BB23
  25256. BB7
  25257. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  25258. void StVar i, %7.0, e0.2
  25259. cls %7.2 = LdFun buildTreeDepth, e0.2
  25260. prom %7.3 = MkArg missing, Prom(2), e0.2
  25261. prom %7.4 = MkArg missing, Prom(3), e0.2
  25262. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  25263. BB9
  25264. cls' %9.0 = LdConst function (depth, random) { if (d...
  25265. t %9.1 = Identical %7.2, %9.0
  25266. void Assume %9.1, %7.5
  25267. val^? %9.3 = CastType %7.3
  25268. val^? %9.4 = CastType %7.4
  25269. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  25270. val %9.6 = Force %9.3, e9.5
  25271. real$' %9.7 = LdConst [1] 1
  25272. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  25273. BB8
  25274. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  25275. void Deopt %8.0
  25276. BB11
  25277. t %11.0 = IsObject %9.6
  25278. void AssumeNot %11.0, %9.8
  25279. lgl' %11.2 = Eq %9.6, %9.7, elided
  25280. lgl %11.3 = AsLogical %11.2
  25281. t %11.4 = AsTest %11.3
  25282. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  25283. BB10
  25284. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25285. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  25286. void Deopt %10.1
  25287. BB20
  25288. cls %20.0 = LdFun c, e9.5
  25289. prom %20.1 = MkArg missing, Prom(5), e9.5
  25290. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25291. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  25292. val^ %20.4 = Call %20.0(%20.1) e9.5
  25293. goto BB24
  25294. BB12
  25295. cls %12.0 = LdFun vector, e9.5
  25296. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  25297. BB24
  25298. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  25299. val %24.1 = Force %24.0, e9.5
  25300. val^? %24.2 = LdVar array, e0.2
  25301. val %24.3 = Force %24.2, e0.2
  25302. val^? %24.4 = LdVar i, e0.2
  25303. val %24.5 = Force %24.4, e0.2
  25304. val %24.6 = EnsureNamed %24.1
  25305. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  25306. void StVar array, %24.7, e0.2
  25307. goto BB6
  25308. BB14
  25309. cls' %14.0 = LdConst function (mode = "logical", length = ...
  25310. t %14.1 = Identical %12.0, %14.0
  25311. void Assume %14.1, %12.1
  25312. real$' %14.3 = LdConst [1] 4
  25313. str$' %14.4 = LdConst [1] "list"
  25314. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  25315. void StVar array, %14.5, e9.5
  25316. real$' %14.7 = LdConst [1] 4
  25317. real$' %14.8 = LdConst [1] 1
  25318. val' %14.9 = Colon %14.8, %14.7, elided
  25319. val' %14.10 = SetShared %14.9
  25320. int$' %14.11 = ForSeqSize %14.10
  25321. int$' %14.12 = LdConst [1] 0
  25322. goto BB15
  25323. BB13
  25324. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25325. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  25326. void Deopt %13.1
  25327. BB15
  25328. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  25329. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  25330. int$' %15.2 = Inc %15.1
  25331. int$' %15.3 = EnsureNamed %15.2
  25332. lgl' %15.4 = Lt %14.11, %15.3, elided
  25333. t %15.5 = AsTest %15.4
  25334. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  25335. BB19
  25336. goto BB24
  25337. BB16
  25338. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  25339. void StVar i, %16.0, e9.5
  25340. cls %16.2 = LdFun buildTreeDepth, e9.5
  25341. prom %16.3 = MkArg missing, Prom(8), e9.5
  25342. prom %16.4 = MkArg missing, Prom(9), e9.5
  25343. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  25344. BB18
  25345. cls' %18.0 = LdConst function (depth, random) { if (d...
  25346. t %18.1 = Identical %16.2, %18.0
  25347. void Assume %18.1, %16.5
  25348. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25349. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  25350. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  25351. val^? %18.6 = LdVar array, e9.5
  25352. val %18.7 = Force %18.6, e9.5
  25353. val^? %18.8 = LdVar i, e9.5
  25354. val %18.9 = Force %18.8, e9.5
  25355. val^ %18.10 = EnsureNamed %18.5
  25356. val %18.11 = Force %18.10, e9.5
  25357. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  25358. void StVar array, %18.12, e9.5
  25359. goto BB15
  25360. BB17
  25361. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25362. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  25363. void Deopt %17.1
  25364. Prom 2:
  25365. BB0
  25366. env e0.0 = LdFunctionEnv
  25367. val^? %0.1 = LdVar depth, e0.0
  25368. val %0.2 = Force %0.1, e0.0
  25369. real$' %0.3 = LdConst [1] 1
  25370. goto BB1
  25371. BB1
  25372. val %1.0 = Sub %0.2, %0.3, e0.0
  25373. void Return %1.0
  25374. Prom 3:
  25375. BB0
  25376. env e0.0 = LdFunctionEnv
  25377. val^? %0.1 = LdVar random, e0.0
  25378. val %0.2 = Force %0.1, e0.0
  25379. void Return %0.2
  25380. Prom 4:
  25381. BB0
  25382. env e0.0 = LdFunctionEnv
  25383. cls %0.1 = LdFun nextRandom, e0.0
  25384. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25385. t %0.3 = Identical %0.1, %0.2
  25386. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25387. BB2
  25388. void Assume %0.3, %0.4
  25389. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25390. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25391. real$' %2.3 = LdConst [1] 10
  25392. goto BB3
  25393. BB1
  25394. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25395. void Deopt %1.0
  25396. BB3
  25397. val %3.0 = Force %2.2, e0.0
  25398. val %3.1 = Mod %3.0, %2.3, e0.0
  25399. real$' %3.2 = LdConst [1] 1
  25400. goto BB4
  25401. BB4
  25402. val %4.0 = Add %3.1, %3.2, e0.0
  25403. void Return %4.0
  25404. Prom 5:
  25405. BB0
  25406. env e0.0 = LdFunctionEnv
  25407. cls %0.1 = LdFun nextRandom, e0.0
  25408. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25409. t %0.3 = Identical %0.1, %0.2
  25410. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25411. BB2
  25412. void Assume %0.3, %0.4
  25413. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25414. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25415. real$' %2.3 = LdConst [1] 10
  25416. goto BB3
  25417. BB1
  25418. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25419. void Deopt %1.0
  25420. BB3
  25421. val %3.0 = Force %2.2, e0.0
  25422. val %3.1 = Mod %3.0, %2.3, e0.0
  25423. real$' %3.2 = LdConst [1] 1
  25424. goto BB4
  25425. BB4
  25426. val %4.0 = Add %3.1, %3.2, e0.0
  25427. void Return %4.0
  25428. Prom 8:
  25429. BB0
  25430. env e0.0 = LdFunctionEnv
  25431. val^? %0.1 = LdVar depth, e0.0
  25432. val %0.2 = Force %0.1, e0.0
  25433. real$' %0.3 = LdConst [1] 1
  25434. goto BB1
  25435. BB1
  25436. val %1.0 = Sub %0.2, %0.3, e0.0
  25437. void Return %1.0
  25438. Prom 9:
  25439. BB0
  25440. env e0.0 = LdFunctionEnv
  25441. val^? %0.1 = LdVar random, e0.0
  25442. val %0.2 = Force %0.1, e0.0
  25443. void Return %0.2
  25444. ├────── Scope resolution: == 546
  25445. buildTreeDepth[0x7f92446010b0]
  25446. BB0
  25447. val^ %0.0 = LdArg 0
  25448. val^ %0.1 = LdArg 1
  25449. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  25450. val %0.3 = Force! %0.0, e0.2
  25451. real$' %0.4 = LdConst [1] 1
  25452. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25453. BB2
  25454. t %2.0 = IsObject %0.3
  25455. void AssumeNot %2.0, %0.5
  25456. lgl' %2.2 = Eq %0.3, %0.4, elided
  25457. lgl %2.3 = AsLogical %2.2
  25458. t %2.4 = AsTest %2.3
  25459. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  25460. BB1
  25461. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  25462. void Deopt %1.0
  25463. BB22
  25464. cls %22.0 = LdFun c, e0.2
  25465. prom %22.1 = MkArg missing, Prom(4), e0.2
  25466. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  25467. val^ %22.3 = Call %22.0(%22.1) e0.2
  25468. goto BB23
  25469. BB3
  25470. cls %3.0 = LdFun vector, e0.2
  25471. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  25472. BB23
  25473. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  25474. val %23.1 = Force %23.0, e0.2
  25475. void Return %23.1
  25476. BB5
  25477. cls' %5.0 = LdConst function (mode = "logical", length = ...
  25478. t %5.1 = Identical %3.0, %5.0
  25479. void Assume %5.1, %3.1
  25480. str$' %5.3 = LdConst [1] "list"
  25481. real$' %5.4 = LdConst [1] 4
  25482. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  25483. void StVar array, %5.5, e0.2
  25484. real$' %5.7 = LdConst [1] 1
  25485. real$' %5.8 = LdConst [1] 4
  25486. val' %5.9 = Colon %5.7, %5.8, elided
  25487. val' %5.10 = SetShared %5.9
  25488. int$' %5.11 = ForSeqSize %5.10
  25489. int$' %5.12 = LdConst [1] 0
  25490. goto BB6
  25491. BB4
  25492. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  25493. void Deopt %4.0
  25494. BB6
  25495. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  25496. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  25497. int$' %6.2 = Inc %6.1
  25498. int$' %6.3 = EnsureNamed %6.2
  25499. lgl' %6.4 = Lt %5.11, %6.3, elided
  25500. t %6.5 = AsTest %6.4
  25501. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  25502. BB21
  25503. goto BB23
  25504. BB7
  25505. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  25506. void StVar i, %7.0, e0.2
  25507. cls %7.2 = LdFun buildTreeDepth, e0.2
  25508. prom %7.3 = MkArg missing, Prom(2), e0.2
  25509. prom %7.4 = MkArg missing, Prom(3), e0.2
  25510. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  25511. BB9
  25512. cls' %9.0 = LdConst function (depth, random) { if (d...
  25513. t %9.1 = Identical %7.2, %9.0
  25514. void Assume %9.1, %7.5
  25515. val^? %9.3 = CastType %7.3
  25516. val^? %9.4 = CastType %7.4
  25517. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  25518. val %9.6 = Force %9.3, e9.5
  25519. real$' %9.7 = LdConst [1] 1
  25520. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  25521. BB8
  25522. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  25523. void Deopt %8.0
  25524. BB11
  25525. t %11.0 = IsObject %9.6
  25526. void AssumeNot %11.0, %9.8
  25527. lgl' %11.2 = Eq %9.6, %9.7, elided
  25528. lgl %11.3 = AsLogical %11.2
  25529. t %11.4 = AsTest %11.3
  25530. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  25531. BB10
  25532. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25533. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  25534. void Deopt %10.1
  25535. BB20
  25536. cls %20.0 = LdFun c, e9.5
  25537. prom %20.1 = MkArg missing, Prom(5), e9.5
  25538. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25539. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  25540. val^ %20.4 = Call %20.0(%20.1) e9.5
  25541. goto BB24
  25542. BB12
  25543. cls %12.0 = LdFun vector, e9.5
  25544. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  25545. BB24
  25546. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  25547. val %24.1 = Force %24.0, e9.5
  25548. val^? %24.2 = LdVar array, e0.2
  25549. val %24.3 = Force %24.2, e0.2
  25550. val^? %24.4 = LdVar i, e0.2
  25551. val %24.5 = Force %24.4, e0.2
  25552. val %24.6 = EnsureNamed %24.1
  25553. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  25554. void StVar array, %24.7, e0.2
  25555. goto BB6
  25556. BB14
  25557. cls' %14.0 = LdConst function (mode = "logical", length = ...
  25558. t %14.1 = Identical %12.0, %14.0
  25559. void Assume %14.1, %12.1
  25560. real$' %14.3 = LdConst [1] 4
  25561. str$' %14.4 = LdConst [1] "list"
  25562. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  25563. void StVar array, %14.5, e9.5
  25564. real$' %14.7 = LdConst [1] 4
  25565. real$' %14.8 = LdConst [1] 1
  25566. val' %14.9 = Colon %14.8, %14.7, elided
  25567. val' %14.10 = SetShared %14.9
  25568. int$' %14.11 = ForSeqSize %14.10
  25569. int$' %14.12 = LdConst [1] 0
  25570. goto BB15
  25571. BB13
  25572. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25573. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  25574. void Deopt %13.1
  25575. BB15
  25576. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  25577. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  25578. int$' %15.2 = Inc %15.1
  25579. int$' %15.3 = EnsureNamed %15.2
  25580. lgl' %15.4 = Lt %14.11, %15.3, elided
  25581. t %15.5 = AsTest %15.4
  25582. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  25583. BB19
  25584. goto BB24
  25585. BB16
  25586. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  25587. void StVar i, %16.0, e9.5
  25588. cls %16.2 = LdFun buildTreeDepth, e9.5
  25589. prom %16.3 = MkArg missing, Prom(8), e9.5
  25590. prom %16.4 = MkArg missing, Prom(9), e9.5
  25591. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  25592. BB18
  25593. cls' %18.0 = LdConst function (depth, random) { if (d...
  25594. t %18.1 = Identical %16.2, %18.0
  25595. void Assume %18.1, %16.5
  25596. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25597. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  25598. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  25599. val^? %18.6 = LdVar array, e9.5
  25600. val %18.7 = Force %18.6, e9.5
  25601. val^? %18.8 = LdVar i, e9.5
  25602. val %18.9 = Force %18.8, e9.5
  25603. val^ %18.10 = EnsureNamed %18.5
  25604. val %18.11 = Force %18.10, e9.5
  25605. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  25606. void StVar array, %18.12, e9.5
  25607. goto BB15
  25608. BB17
  25609. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25610. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  25611. void Deopt %17.1
  25612. Prom 2:
  25613. BB0
  25614. env e0.0 = LdFunctionEnv
  25615. val^? %0.1 = LdVar depth, e0.0
  25616. val %0.2 = Force %0.1, e0.0
  25617. real$' %0.3 = LdConst [1] 1
  25618. goto BB1
  25619. BB1
  25620. val %1.0 = Sub %0.2, %0.3, e0.0
  25621. void Return %1.0
  25622. Prom 3:
  25623. BB0
  25624. env e0.0 = LdFunctionEnv
  25625. val^? %0.1 = LdVar random, e0.0
  25626. val %0.2 = Force %0.1, e0.0
  25627. void Return %0.2
  25628. Prom 4:
  25629. BB0
  25630. env e0.0 = LdFunctionEnv
  25631. cls %0.1 = LdFun nextRandom, e0.0
  25632. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25633. t %0.3 = Identical %0.1, %0.2
  25634. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25635. BB2
  25636. void Assume %0.3, %0.4
  25637. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25638. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25639. real$' %2.3 = LdConst [1] 10
  25640. goto BB3
  25641. BB1
  25642. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25643. void Deopt %1.0
  25644. BB3
  25645. val %3.0 = Force %2.2, e0.0
  25646. val %3.1 = Mod %3.0, %2.3, e0.0
  25647. real$' %3.2 = LdConst [1] 1
  25648. goto BB4
  25649. BB4
  25650. val %4.0 = Add %3.1, %3.2, e0.0
  25651. void Return %4.0
  25652. Prom 5:
  25653. BB0
  25654. env e0.0 = LdFunctionEnv
  25655. cls %0.1 = LdFun nextRandom, e0.0
  25656. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25657. t %0.3 = Identical %0.1, %0.2
  25658. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25659. BB2
  25660. void Assume %0.3, %0.4
  25661. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25662. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25663. real$' %2.3 = LdConst [1] 10
  25664. goto BB3
  25665. BB1
  25666. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25667. void Deopt %1.0
  25668. BB3
  25669. val %3.0 = Force %2.2, e0.0
  25670. val %3.1 = Mod %3.0, %2.3, e0.0
  25671. real$' %3.2 = LdConst [1] 1
  25672. goto BB4
  25673. BB4
  25674. val %4.0 = Add %3.1, %3.2, e0.0
  25675. void Return %4.0
  25676. Prom 8:
  25677. BB0
  25678. env e0.0 = LdFunctionEnv
  25679. val^? %0.1 = LdVar depth, e0.0
  25680. val %0.2 = Force %0.1, e0.0
  25681. real$' %0.3 = LdConst [1] 1
  25682. goto BB1
  25683. BB1
  25684. val %1.0 = Sub %0.2, %0.3, e0.0
  25685. void Return %1.0
  25686. Prom 9:
  25687. BB0
  25688. env e0.0 = LdFunctionEnv
  25689. val^? %0.1 = LdVar random, e0.0
  25690. val %0.2 = Force %0.1, e0.0
  25691. void Return %0.2
  25692. ├────── Constant folding: == 553
  25693. buildTreeDepth[0x7f92446010b0]
  25694. BB0
  25695. val^ %0.0 = LdArg 0
  25696. val^ %0.1 = LdArg 1
  25697. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  25698. val %0.3 = Force! %0.0, e0.2
  25699. real$' %0.4 = LdConst [1] 1
  25700. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25701. BB2
  25702. t %2.0 = IsObject %0.3
  25703. void AssumeNot %2.0, %0.5
  25704. lgl' %2.2 = Eq %0.3, %0.4, elided
  25705. lgl %2.3 = AsLogical %2.2
  25706. t %2.4 = AsTest %2.3
  25707. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  25708. BB1
  25709. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  25710. void Deopt %1.0
  25711. BB22
  25712. cls %22.0 = LdFun c, e0.2
  25713. prom %22.1 = MkArg missing, Prom(4), e0.2
  25714. fs %22.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  25715. val^ %22.3 = Call %22.0(%22.1) e0.2
  25716. goto BB23
  25717. BB3
  25718. cls %3.0 = LdFun vector, e0.2
  25719. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  25720. BB23
  25721. val^ %23.0 = Phi %6.0:BB21, %22.3:BB22
  25722. val %23.1 = Force %23.0, e0.2
  25723. void Return %23.1
  25724. BB5
  25725. cls' %5.0 = LdConst function (mode = "logical", length = ...
  25726. t %5.1 = Identical %3.0, %5.0
  25727. void Assume %5.1, %3.1
  25728. str$' %5.3 = LdConst [1] "list"
  25729. real$' %5.4 = LdConst [1] 4
  25730. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  25731. void StVar array, %5.5, e0.2
  25732. real$' %5.7 = LdConst [1] 1
  25733. real$' %5.8 = LdConst [1] 4
  25734. val' %5.9 = Colon %5.7, %5.8, elided
  25735. val' %5.10 = SetShared %5.9
  25736. int$' %5.11 = ForSeqSize %5.10
  25737. int$' %5.12 = LdConst [1] 0
  25738. goto BB6
  25739. BB4
  25740. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  25741. void Deopt %4.0
  25742. BB6
  25743. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  25744. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  25745. int$' %6.2 = Inc %6.1
  25746. int$' %6.3 = EnsureNamed %6.2
  25747. lgl' %6.4 = Lt %5.11, %6.3, elided
  25748. t %6.5 = AsTest %6.4
  25749. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  25750. BB21
  25751. goto BB23
  25752. BB7
  25753. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  25754. void StVar i, %7.0, e0.2
  25755. cls %7.2 = LdFun buildTreeDepth, e0.2
  25756. prom %7.3 = MkArg missing, Prom(2), e0.2
  25757. prom %7.4 = MkArg missing, Prom(3), e0.2
  25758. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  25759. BB9
  25760. cls' %9.0 = LdConst function (depth, random) { if (d...
  25761. t %9.1 = Identical %7.2, %9.0
  25762. void Assume %9.1, %7.5
  25763. val^? %9.3 = CastType %7.3
  25764. val^? %9.4 = CastType %7.4
  25765. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  25766. val %9.6 = Force %9.3, e9.5
  25767. real$' %9.7 = LdConst [1] 1
  25768. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  25769. BB8
  25770. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  25771. void Deopt %8.0
  25772. BB11
  25773. t %11.0 = IsObject %9.6
  25774. void AssumeNot %11.0, %9.8
  25775. lgl' %11.2 = Eq %9.6, %9.7, elided
  25776. lgl %11.3 = AsLogical %11.2
  25777. t %11.4 = AsTest %11.3
  25778. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  25779. BB10
  25780. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25781. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  25782. void Deopt %10.1
  25783. BB20
  25784. cls %20.0 = LdFun c, e9.5
  25785. prom %20.1 = MkArg missing, Prom(5), e9.5
  25786. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25787. fs %20.3 = FrameState 0x7f924457f3d0+410: [], env=e9.5, next=%20.2
  25788. val^ %20.4 = Call %20.0(%20.1) e9.5
  25789. goto BB24
  25790. BB12
  25791. cls %12.0 = LdFun vector, e9.5
  25792. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  25793. BB24
  25794. val^ %24.0 = Phi %15.0:BB19, %20.4:BB20
  25795. val %24.1 = Force %24.0, e9.5
  25796. val^? %24.2 = LdVar array, e0.2
  25797. val %24.3 = Force %24.2, e0.2
  25798. val^? %24.4 = LdVar i, e0.2
  25799. val %24.5 = Force %24.4, e0.2
  25800. val %24.6 = EnsureNamed %24.1
  25801. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  25802. void StVar array, %24.7, e0.2
  25803. goto BB6
  25804. BB14
  25805. cls' %14.0 = LdConst function (mode = "logical", length = ...
  25806. t %14.1 = Identical %12.0, %14.0
  25807. void Assume %14.1, %12.1
  25808. real$' %14.3 = LdConst [1] 4
  25809. str$' %14.4 = LdConst [1] "list"
  25810. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  25811. void StVar array, %14.5, e9.5
  25812. real$' %14.7 = LdConst [1] 4
  25813. real$' %14.8 = LdConst [1] 1
  25814. val' %14.9 = Colon %14.8, %14.7, elided
  25815. val' %14.10 = SetShared %14.9
  25816. int$' %14.11 = ForSeqSize %14.10
  25817. int$' %14.12 = LdConst [1] 0
  25818. goto BB15
  25819. BB13
  25820. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25821. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  25822. void Deopt %13.1
  25823. BB15
  25824. val %15.0 = Phi %14.5:BB14, %18.12:BB18
  25825. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  25826. int$' %15.2 = Inc %15.1
  25827. int$' %15.3 = EnsureNamed %15.2
  25828. lgl' %15.4 = Lt %14.11, %15.3, elided
  25829. t %15.5 = AsTest %15.4
  25830. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  25831. BB19
  25832. goto BB24
  25833. BB16
  25834. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  25835. void StVar i, %16.0, e9.5
  25836. cls %16.2 = LdFun buildTreeDepth, e9.5
  25837. prom %16.3 = MkArg missing, Prom(8), e9.5
  25838. prom %16.4 = MkArg missing, Prom(9), e9.5
  25839. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  25840. BB18
  25841. cls' %18.0 = LdConst function (depth, random) { if (d...
  25842. t %18.1 = Identical %16.2, %18.0
  25843. void Assume %18.1, %16.5
  25844. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25845. fs %18.4 = FrameState 0x7f924457f3d0+290: [%14.10, %14.11, %15.3], env=e9.5, next=%18.3
  25846. val^ %18.5 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  25847. val^? %18.6 = LdVar array, e9.5
  25848. val %18.7 = Force %18.6, e9.5
  25849. val^? %18.8 = LdVar i, e9.5
  25850. val %18.9 = Force %18.8, e9.5
  25851. val^ %18.10 = EnsureNamed %18.5
  25852. val %18.11 = Force %18.10, e9.5
  25853. val %18.12 = Subassign2_1D %18.11, %18.7, %18.9, e9.5
  25854. void StVar array, %18.12, e9.5
  25855. goto BB15
  25856. BB17
  25857. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  25858. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  25859. void Deopt %17.1
  25860. Prom 2:
  25861. BB0
  25862. env e0.0 = LdFunctionEnv
  25863. val^? %0.1 = LdVar depth, e0.0
  25864. val %0.2 = Force %0.1, e0.0
  25865. real$' %0.3 = LdConst [1] 1
  25866. goto BB1
  25867. BB1
  25868. val %1.0 = Sub %0.2, %0.3, e0.0
  25869. void Return %1.0
  25870. Prom 3:
  25871. BB0
  25872. env e0.0 = LdFunctionEnv
  25873. val^? %0.1 = LdVar random, e0.0
  25874. val %0.2 = Force %0.1, e0.0
  25875. void Return %0.2
  25876. Prom 4:
  25877. BB0
  25878. env e0.0 = LdFunctionEnv
  25879. cls %0.1 = LdFun nextRandom, e0.0
  25880. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25881. t %0.3 = Identical %0.1, %0.2
  25882. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25883. BB2
  25884. void Assume %0.3, %0.4
  25885. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25886. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25887. real$' %2.3 = LdConst [1] 10
  25888. goto BB3
  25889. BB1
  25890. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25891. void Deopt %1.0
  25892. BB3
  25893. val %3.0 = Force %2.2, e0.0
  25894. val %3.1 = Mod %3.0, %2.3, e0.0
  25895. real$' %3.2 = LdConst [1] 1
  25896. goto BB4
  25897. BB4
  25898. val %4.0 = Add %3.1, %3.2, e0.0
  25899. void Return %4.0
  25900. Prom 5:
  25901. BB0
  25902. env e0.0 = LdFunctionEnv
  25903. cls %0.1 = LdFun nextRandom, e0.0
  25904. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  25905. t %0.3 = Identical %0.1, %0.2
  25906. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25907. BB2
  25908. void Assume %0.3, %0.4
  25909. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  25910. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  25911. real$' %2.3 = LdConst [1] 10
  25912. goto BB3
  25913. BB1
  25914. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  25915. void Deopt %1.0
  25916. BB3
  25917. val %3.0 = Force %2.2, e0.0
  25918. val %3.1 = Mod %3.0, %2.3, e0.0
  25919. real$' %3.2 = LdConst [1] 1
  25920. goto BB4
  25921. BB4
  25922. val %4.0 = Add %3.1, %3.2, e0.0
  25923. void Return %4.0
  25924. Prom 8:
  25925. BB0
  25926. env e0.0 = LdFunctionEnv
  25927. val^? %0.1 = LdVar depth, e0.0
  25928. val %0.2 = Force %0.1, e0.0
  25929. real$' %0.3 = LdConst [1] 1
  25930. goto BB1
  25931. BB1
  25932. val %1.0 = Sub %0.2, %0.3, e0.0
  25933. void Return %1.0
  25934. Prom 9:
  25935. BB0
  25936. env e0.0 = LdFunctionEnv
  25937. val^? %0.1 = LdVar random, e0.0
  25938. val %0.2 = Force %0.1, e0.0
  25939. void Return %0.2
  25940. ├────── Cleanup redundant operations: == 560
  25941. buildTreeDepth[0x7f92446010b0]
  25942. BB0
  25943. val^ %0.0 = LdArg 0
  25944. val^ %0.1 = LdArg 1
  25945. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  25946. val %0.3 = Force! %0.0, e0.2
  25947. real$' %0.4 = LdConst [1] 1
  25948. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  25949. BB2
  25950. t %2.0 = IsObject %0.3
  25951. void AssumeNot %2.0, %0.5
  25952. lgl' %2.2 = Eq %0.3, %0.4, elided
  25953. lgl %2.3 = AsLogical %2.2
  25954. t %2.4 = AsTest %2.3
  25955. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  25956. BB1
  25957. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  25958. void Deopt %1.0
  25959. BB22
  25960. cls %22.0 = LdFun c, e0.2
  25961. prom %22.1 = MkArg missing, Prom(4), e0.2
  25962. val^ %22.2 = Call %22.0(%22.1) e0.2
  25963. goto BB23
  25964. BB3
  25965. cls %3.0 = LdFun vector, e0.2
  25966. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  25967. BB23
  25968. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  25969. val %23.1 = Force %23.0, e0.2
  25970. void Return %23.1
  25971. BB5
  25972. cls' %5.0 = LdConst function (mode = "logical", length = ...
  25973. t %5.1 = Identical %3.0, %5.0
  25974. void Assume %5.1, %3.1
  25975. str$' %5.3 = LdConst [1] "list"
  25976. real$' %5.4 = LdConst [1] 4
  25977. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  25978. void StVar array, %5.5, e0.2
  25979. real$' %5.7 = LdConst [1] 1
  25980. real$' %5.8 = LdConst [1] 4
  25981. val' %5.9 = Colon %5.7, %5.8, elided
  25982. val' %5.10 = SetShared %5.9
  25983. int$' %5.11 = ForSeqSize %5.10
  25984. int$' %5.12 = LdConst [1] 0
  25985. goto BB6
  25986. BB4
  25987. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  25988. void Deopt %4.0
  25989. BB6
  25990. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  25991. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  25992. int$' %6.2 = Inc %6.1
  25993. int$' %6.3 = EnsureNamed %6.2
  25994. lgl' %6.4 = Lt %5.11, %6.3, elided
  25995. t %6.5 = AsTest %6.4
  25996. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  25997. BB21
  25998. goto BB23
  25999. BB7
  26000. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  26001. void StVar i, %7.0, e0.2
  26002. cls %7.2 = LdFun buildTreeDepth, e0.2
  26003. prom %7.3 = MkArg missing, Prom(2), e0.2
  26004. prom %7.4 = MkArg missing, Prom(3), e0.2
  26005. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  26006. BB9
  26007. cls' %9.0 = LdConst function (depth, random) { if (d...
  26008. t %9.1 = Identical %7.2, %9.0
  26009. void Assume %9.1, %7.5
  26010. val^? %9.3 = CastType %7.3
  26011. val^? %9.4 = CastType %7.4
  26012. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  26013. val %9.6 = Force %9.3, e9.5
  26014. real$' %9.7 = LdConst [1] 1
  26015. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  26016. BB8
  26017. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  26018. void Deopt %8.0
  26019. BB11
  26020. t %11.0 = IsObject %9.6
  26021. void AssumeNot %11.0, %9.8
  26022. lgl' %11.2 = Eq %9.6, %9.7, elided
  26023. lgl %11.3 = AsLogical %11.2
  26024. t %11.4 = AsTest %11.3
  26025. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  26026. BB10
  26027. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26028. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  26029. void Deopt %10.1
  26030. BB20
  26031. cls %20.0 = LdFun c, e9.5
  26032. prom %20.1 = MkArg missing, Prom(5), e9.5
  26033. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26034. val^ %20.3 = Call %20.0(%20.1) e9.5
  26035. goto BB24
  26036. BB12
  26037. cls %12.0 = LdFun vector, e9.5
  26038. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  26039. BB24
  26040. val^ %24.0 = Phi %15.0:BB19, %20.3:BB20
  26041. val %24.1 = Force %24.0, e9.5
  26042. val^? %24.2 = LdVar array, e0.2
  26043. val %24.3 = Force %24.2, e0.2
  26044. val^? %24.4 = LdVar i, e0.2
  26045. val %24.5 = Force %24.4, e0.2
  26046. val %24.6 = EnsureNamed %24.1
  26047. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  26048. void StVar array, %24.7, e0.2
  26049. goto BB6
  26050. BB14
  26051. cls' %14.0 = LdConst function (mode = "logical", length = ...
  26052. t %14.1 = Identical %12.0, %14.0
  26053. void Assume %14.1, %12.1
  26054. real$' %14.3 = LdConst [1] 4
  26055. str$' %14.4 = LdConst [1] "list"
  26056. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  26057. void StVar array, %14.5, e9.5
  26058. real$' %14.7 = LdConst [1] 4
  26059. real$' %14.8 = LdConst [1] 1
  26060. val' %14.9 = Colon %14.8, %14.7, elided
  26061. val' %14.10 = SetShared %14.9
  26062. int$' %14.11 = ForSeqSize %14.10
  26063. int$' %14.12 = LdConst [1] 0
  26064. goto BB15
  26065. BB13
  26066. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26067. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  26068. void Deopt %13.1
  26069. BB15
  26070. val %15.0 = Phi %14.5:BB14, %18.11:BB18
  26071. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  26072. int$' %15.2 = Inc %15.1
  26073. int$' %15.3 = EnsureNamed %15.2
  26074. lgl' %15.4 = Lt %14.11, %15.3, elided
  26075. t %15.5 = AsTest %15.4
  26076. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  26077. BB19
  26078. goto BB24
  26079. BB16
  26080. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  26081. void StVar i, %16.0, e9.5
  26082. cls %16.2 = LdFun buildTreeDepth, e9.5
  26083. prom %16.3 = MkArg missing, Prom(8), e9.5
  26084. prom %16.4 = MkArg missing, Prom(9), e9.5
  26085. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  26086. BB18
  26087. cls' %18.0 = LdConst function (depth, random) { if (d...
  26088. t %18.1 = Identical %16.2, %18.0
  26089. void Assume %18.1, %16.5
  26090. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26091. val^ %18.4 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  26092. val^? %18.5 = LdVar array, e9.5
  26093. val %18.6 = Force %18.5, e9.5
  26094. val^? %18.7 = LdVar i, e9.5
  26095. val %18.8 = Force %18.7, e9.5
  26096. val^ %18.9 = EnsureNamed %18.4
  26097. val %18.10 = Force %18.9, e9.5
  26098. val %18.11 = Subassign2_1D %18.10, %18.6, %18.8, e9.5
  26099. void StVar array, %18.11, e9.5
  26100. goto BB15
  26101. BB17
  26102. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26103. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  26104. void Deopt %17.1
  26105. Prom 2:
  26106. BB0
  26107. env e0.0 = LdFunctionEnv
  26108. val^? %0.1 = LdVar depth, e0.0
  26109. val %0.2 = Force %0.1, e0.0
  26110. real$' %0.3 = LdConst [1] 1
  26111. goto BB1
  26112. BB1
  26113. val %1.0 = Sub %0.2, %0.3, e0.0
  26114. void Return %1.0
  26115. Prom 3:
  26116. BB0
  26117. env e0.0 = LdFunctionEnv
  26118. val^? %0.1 = LdVar random, e0.0
  26119. val %0.2 = Force %0.1, e0.0
  26120. void Return %0.2
  26121. Prom 4:
  26122. BB0
  26123. env e0.0 = LdFunctionEnv
  26124. cls %0.1 = LdFun nextRandom, e0.0
  26125. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26126. t %0.3 = Identical %0.1, %0.2
  26127. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26128. BB2
  26129. void Assume %0.3, %0.4
  26130. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26131. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26132. real$' %2.3 = LdConst [1] 10
  26133. goto BB3
  26134. BB1
  26135. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26136. void Deopt %1.0
  26137. BB3
  26138. val %3.0 = Force %2.2, e0.0
  26139. val %3.1 = Mod %3.0, %2.3, e0.0
  26140. real$' %3.2 = LdConst [1] 1
  26141. goto BB4
  26142. BB4
  26143. val %4.0 = Add %3.1, %3.2, e0.0
  26144. void Return %4.0
  26145. Prom 5:
  26146. BB0
  26147. env e0.0 = LdFunctionEnv
  26148. cls %0.1 = LdFun nextRandom, e0.0
  26149. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26150. t %0.3 = Identical %0.1, %0.2
  26151. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26152. BB2
  26153. void Assume %0.3, %0.4
  26154. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26155. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26156. real$' %2.3 = LdConst [1] 10
  26157. goto BB3
  26158. BB1
  26159. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26160. void Deopt %1.0
  26161. BB3
  26162. val %3.0 = Force %2.2, e0.0
  26163. val %3.1 = Mod %3.0, %2.3, e0.0
  26164. real$' %3.2 = LdConst [1] 1
  26165. goto BB4
  26166. BB4
  26167. val %4.0 = Add %3.1, %3.2, e0.0
  26168. void Return %4.0
  26169. Prom 8:
  26170. BB0
  26171. env e0.0 = LdFunctionEnv
  26172. val^? %0.1 = LdVar depth, e0.0
  26173. val %0.2 = Force %0.1, e0.0
  26174. real$' %0.3 = LdConst [1] 1
  26175. goto BB1
  26176. BB1
  26177. val %1.0 = Sub %0.2, %0.3, e0.0
  26178. void Return %1.0
  26179. Prom 9:
  26180. BB0
  26181. env e0.0 = LdFunctionEnv
  26182. val^? %0.1 = LdVar random, e0.0
  26183. val %0.2 = Force %0.1, e0.0
  26184. void Return %0.2
  26185. ├────── Delay instructions: == 567
  26186. buildTreeDepth[0x7f92446010b0]
  26187. BB0
  26188. val^ %0.0 = LdArg 0
  26189. val^ %0.1 = LdArg 1
  26190. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  26191. val %0.3 = Force! %0.0, e0.2
  26192. real$' %0.4 = LdConst [1] 1
  26193. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26194. BB2
  26195. t %2.0 = IsObject %0.3
  26196. void AssumeNot %2.0, %0.5
  26197. lgl' %2.2 = Eq %0.3, %0.4, elided
  26198. lgl %2.3 = AsLogical %2.2
  26199. t %2.4 = AsTest %2.3
  26200. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  26201. BB1
  26202. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  26203. void Deopt %1.0
  26204. BB22
  26205. cls %22.0 = LdFun c, e0.2
  26206. prom %22.1 = MkArg missing, Prom(4), e0.2
  26207. val^ %22.2 = Call %22.0(%22.1) e0.2
  26208. goto BB23
  26209. BB3
  26210. cls %3.0 = LdFun vector, e0.2
  26211. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  26212. BB23
  26213. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  26214. val %23.1 = Force %23.0, e0.2
  26215. void Return %23.1
  26216. BB5
  26217. cls' %5.0 = LdConst function (mode = "logical", length = ...
  26218. t %5.1 = Identical %3.0, %5.0
  26219. void Assume %5.1, %3.1
  26220. real$' %5.3 = LdConst [1] 4
  26221. str$' %5.4 = LdConst [1] "list"
  26222. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  26223. void StVar array, %5.5, e0.2
  26224. real$' %5.7 = LdConst [1] 4
  26225. real$' %5.8 = LdConst [1] 1
  26226. val' %5.9 = Colon %5.8, %5.7, elided
  26227. val' %5.10 = SetShared %5.9
  26228. int$' %5.11 = ForSeqSize %5.10
  26229. int$' %5.12 = LdConst [1] 0
  26230. goto BB6
  26231. BB4
  26232. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  26233. void Deopt %4.0
  26234. BB6
  26235. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  26236. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  26237. int$' %6.2 = Inc %6.1
  26238. int$' %6.3 = EnsureNamed %6.2
  26239. lgl' %6.4 = Lt %5.11, %6.3, elided
  26240. t %6.5 = AsTest %6.4
  26241. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  26242. BB21
  26243. goto BB23
  26244. BB7
  26245. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  26246. void StVar i, %7.0, e0.2
  26247. cls %7.2 = LdFun buildTreeDepth, e0.2
  26248. prom %7.3 = MkArg missing, Prom(2), e0.2
  26249. prom %7.4 = MkArg missing, Prom(3), e0.2
  26250. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  26251. BB9
  26252. cls' %9.0 = LdConst function (depth, random) { if (d...
  26253. t %9.1 = Identical %7.2, %9.0
  26254. void Assume %9.1, %7.5
  26255. val^? %9.3 = CastType %7.3
  26256. val^? %9.4 = CastType %7.4
  26257. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  26258. val %9.6 = Force %9.3, e9.5
  26259. real$' %9.7 = LdConst [1] 1
  26260. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  26261. BB8
  26262. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  26263. void Deopt %8.0
  26264. BB11
  26265. t %11.0 = IsObject %9.6
  26266. void AssumeNot %11.0, %9.8
  26267. lgl' %11.2 = Eq %9.6, %9.7, elided
  26268. lgl %11.3 = AsLogical %11.2
  26269. t %11.4 = AsTest %11.3
  26270. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  26271. BB10
  26272. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26273. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  26274. void Deopt %10.1
  26275. BB20
  26276. cls %20.0 = LdFun c, e9.5
  26277. prom %20.1 = MkArg missing, Prom(5), e9.5
  26278. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26279. val^ %20.3 = Call %20.0(%20.1) e9.5
  26280. goto BB24
  26281. BB12
  26282. cls %12.0 = LdFun vector, e9.5
  26283. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  26284. BB24
  26285. val^ %24.0 = Phi %15.0:BB19, %20.3:BB20
  26286. val %24.1 = Force %24.0, e9.5
  26287. val^? %24.2 = LdVar array, e0.2
  26288. val %24.3 = Force %24.2, e0.2
  26289. val^? %24.4 = LdVar i, e0.2
  26290. val %24.5 = Force %24.4, e0.2
  26291. val %24.6 = EnsureNamed %24.1
  26292. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  26293. void StVar array, %24.7, e0.2
  26294. goto BB6
  26295. BB14
  26296. cls' %14.0 = LdConst function (mode = "logical", length = ...
  26297. t %14.1 = Identical %12.0, %14.0
  26298. void Assume %14.1, %12.1
  26299. str$' %14.3 = LdConst [1] "list"
  26300. real$' %14.4 = LdConst [1] 4
  26301. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  26302. void StVar array, %14.5, e9.5
  26303. real$' %14.7 = LdConst [1] 1
  26304. real$' %14.8 = LdConst [1] 4
  26305. val' %14.9 = Colon %14.7, %14.8, elided
  26306. val' %14.10 = SetShared %14.9
  26307. int$' %14.11 = ForSeqSize %14.10
  26308. int$' %14.12 = LdConst [1] 0
  26309. goto BB15
  26310. BB13
  26311. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26312. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  26313. void Deopt %13.1
  26314. BB15
  26315. val %15.0 = Phi %14.5:BB14, %18.11:BB18
  26316. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  26317. int$' %15.2 = Inc %15.1
  26318. int$' %15.3 = EnsureNamed %15.2
  26319. lgl' %15.4 = Lt %14.11, %15.3, elided
  26320. t %15.5 = AsTest %15.4
  26321. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  26322. BB19
  26323. goto BB24
  26324. BB16
  26325. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  26326. void StVar i, %16.0, e9.5
  26327. cls %16.2 = LdFun buildTreeDepth, e9.5
  26328. prom %16.3 = MkArg missing, Prom(8), e9.5
  26329. prom %16.4 = MkArg missing, Prom(9), e9.5
  26330. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  26331. BB18
  26332. cls' %18.0 = LdConst function (depth, random) { if (d...
  26333. t %18.1 = Identical %16.2, %18.0
  26334. void Assume %18.1, %16.5
  26335. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26336. val^ %18.4 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  26337. val^? %18.5 = LdVar array, e9.5
  26338. val %18.6 = Force %18.5, e9.5
  26339. val^? %18.7 = LdVar i, e9.5
  26340. val %18.8 = Force %18.7, e9.5
  26341. val^ %18.9 = EnsureNamed %18.4
  26342. val %18.10 = Force %18.9, e9.5
  26343. val %18.11 = Subassign2_1D %18.10, %18.6, %18.8, e9.5
  26344. void StVar array, %18.11, e9.5
  26345. goto BB15
  26346. BB17
  26347. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26348. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  26349. void Deopt %17.1
  26350. Prom 2:
  26351. BB0
  26352. env e0.0 = LdFunctionEnv
  26353. val^? %0.1 = LdVar depth, e0.0
  26354. val %0.2 = Force %0.1, e0.0
  26355. real$' %0.3 = LdConst [1] 1
  26356. goto BB1
  26357. BB1
  26358. val %1.0 = Sub %0.2, %0.3, e0.0
  26359. void Return %1.0
  26360. Prom 3:
  26361. BB0
  26362. env e0.0 = LdFunctionEnv
  26363. val^? %0.1 = LdVar random, e0.0
  26364. val %0.2 = Force %0.1, e0.0
  26365. void Return %0.2
  26366. Prom 4:
  26367. BB0
  26368. env e0.0 = LdFunctionEnv
  26369. cls %0.1 = LdFun nextRandom, e0.0
  26370. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26371. t %0.3 = Identical %0.1, %0.2
  26372. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26373. BB2
  26374. void Assume %0.3, %0.4
  26375. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26376. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26377. real$' %2.3 = LdConst [1] 10
  26378. goto BB3
  26379. BB1
  26380. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26381. void Deopt %1.0
  26382. BB3
  26383. val %3.0 = Force %2.2, e0.0
  26384. val %3.1 = Mod %3.0, %2.3, e0.0
  26385. real$' %3.2 = LdConst [1] 1
  26386. goto BB4
  26387. BB4
  26388. val %4.0 = Add %3.1, %3.2, e0.0
  26389. void Return %4.0
  26390. Prom 5:
  26391. BB0
  26392. env e0.0 = LdFunctionEnv
  26393. cls %0.1 = LdFun nextRandom, e0.0
  26394. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26395. t %0.3 = Identical %0.1, %0.2
  26396. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26397. BB2
  26398. void Assume %0.3, %0.4
  26399. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26400. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26401. real$' %2.3 = LdConst [1] 10
  26402. goto BB3
  26403. BB1
  26404. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26405. void Deopt %1.0
  26406. BB3
  26407. val %3.0 = Force %2.2, e0.0
  26408. val %3.1 = Mod %3.0, %2.3, e0.0
  26409. real$' %3.2 = LdConst [1] 1
  26410. goto BB4
  26411. BB4
  26412. val %4.0 = Add %3.1, %3.2, e0.0
  26413. void Return %4.0
  26414. Prom 8:
  26415. BB0
  26416. env e0.0 = LdFunctionEnv
  26417. val^? %0.1 = LdVar depth, e0.0
  26418. val %0.2 = Force %0.1, e0.0
  26419. real$' %0.3 = LdConst [1] 1
  26420. goto BB1
  26421. BB1
  26422. val %1.0 = Sub %0.2, %0.3, e0.0
  26423. void Return %1.0
  26424. Prom 9:
  26425. BB0
  26426. env e0.0 = LdFunctionEnv
  26427. val^? %0.1 = LdVar random, e0.0
  26428. val %0.2 = Force %0.1, e0.0
  26429. void Return %0.2
  26430. ├────── Elide environments not needed: == 574
  26431. buildTreeDepth[0x7f92446010b0]
  26432. BB0
  26433. val^ %0.0 = LdArg 0
  26434. val^ %0.1 = LdArg 1
  26435. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  26436. val %0.3 = Force! %0.0, e0.2
  26437. real$' %0.4 = LdConst [1] 1
  26438. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26439. BB2
  26440. t %2.0 = IsObject %0.3
  26441. void AssumeNot %2.0, %0.5
  26442. lgl' %2.2 = Eq %0.3, %0.4, elided
  26443. lgl %2.3 = AsLogical %2.2
  26444. t %2.4 = AsTest %2.3
  26445. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  26446. BB1
  26447. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  26448. void Deopt %1.0
  26449. BB22
  26450. cls %22.0 = LdFun c, e0.2
  26451. prom %22.1 = MkArg missing, Prom(4), e0.2
  26452. val^ %22.2 = Call %22.0(%22.1) e0.2
  26453. goto BB23
  26454. BB3
  26455. cls %3.0 = LdFun vector, e0.2
  26456. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  26457. BB23
  26458. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  26459. val %23.1 = Force %23.0, e0.2
  26460. void Return %23.1
  26461. BB5
  26462. cls' %5.0 = LdConst function (mode = "logical", length = ...
  26463. t %5.1 = Identical %3.0, %5.0
  26464. void Assume %5.1, %3.1
  26465. real$' %5.3 = LdConst [1] 4
  26466. str$' %5.4 = LdConst [1] "list"
  26467. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  26468. void StVar array, %5.5, e0.2
  26469. real$' %5.7 = LdConst [1] 4
  26470. real$' %5.8 = LdConst [1] 1
  26471. val' %5.9 = Colon %5.8, %5.7, elided
  26472. val' %5.10 = SetShared %5.9
  26473. int$' %5.11 = ForSeqSize %5.10
  26474. int$' %5.12 = LdConst [1] 0
  26475. goto BB6
  26476. BB4
  26477. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  26478. void Deopt %4.0
  26479. BB6
  26480. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  26481. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  26482. int$' %6.2 = Inc %6.1
  26483. int$' %6.3 = EnsureNamed %6.2
  26484. lgl' %6.4 = Lt %5.11, %6.3, elided
  26485. t %6.5 = AsTest %6.4
  26486. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  26487. BB21
  26488. goto BB23
  26489. BB7
  26490. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  26491. void StVar i, %7.0, e0.2
  26492. cls %7.2 = LdFun buildTreeDepth, e0.2
  26493. prom %7.3 = MkArg missing, Prom(2), e0.2
  26494. prom %7.4 = MkArg missing, Prom(3), e0.2
  26495. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  26496. BB9
  26497. cls' %9.0 = LdConst function (depth, random) { if (d...
  26498. t %9.1 = Identical %7.2, %9.0
  26499. void Assume %9.1, %7.5
  26500. val^? %9.3 = CastType %7.3
  26501. val^? %9.4 = CastType %7.4
  26502. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  26503. val %9.6 = Force %9.3, e9.5
  26504. real$' %9.7 = LdConst [1] 1
  26505. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  26506. BB8
  26507. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  26508. void Deopt %8.0
  26509. BB11
  26510. t %11.0 = IsObject %9.6
  26511. void AssumeNot %11.0, %9.8
  26512. lgl' %11.2 = Eq %9.6, %9.7, elided
  26513. lgl %11.3 = AsLogical %11.2
  26514. t %11.4 = AsTest %11.3
  26515. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  26516. BB10
  26517. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26518. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  26519. void Deopt %10.1
  26520. BB20
  26521. cls %20.0 = LdFun c, e9.5
  26522. prom %20.1 = MkArg missing, Prom(5), e9.5
  26523. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26524. val^ %20.3 = Call %20.0(%20.1) e9.5
  26525. goto BB24
  26526. BB12
  26527. cls %12.0 = LdFun vector, e9.5
  26528. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  26529. BB24
  26530. val^ %24.0 = Phi %15.0:BB19, %20.3:BB20
  26531. val %24.1 = Force %24.0, e9.5
  26532. val^? %24.2 = LdVar array, e0.2
  26533. val %24.3 = Force %24.2, e0.2
  26534. val^? %24.4 = LdVar i, e0.2
  26535. val %24.5 = Force %24.4, e0.2
  26536. val %24.6 = EnsureNamed %24.1
  26537. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  26538. void StVar array, %24.7, e0.2
  26539. goto BB6
  26540. BB14
  26541. cls' %14.0 = LdConst function (mode = "logical", length = ...
  26542. t %14.1 = Identical %12.0, %14.0
  26543. void Assume %14.1, %12.1
  26544. str$' %14.3 = LdConst [1] "list"
  26545. real$' %14.4 = LdConst [1] 4
  26546. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  26547. void StVar array, %14.5, e9.5
  26548. real$' %14.7 = LdConst [1] 1
  26549. real$' %14.8 = LdConst [1] 4
  26550. val' %14.9 = Colon %14.7, %14.8, elided
  26551. val' %14.10 = SetShared %14.9
  26552. int$' %14.11 = ForSeqSize %14.10
  26553. int$' %14.12 = LdConst [1] 0
  26554. goto BB15
  26555. BB13
  26556. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26557. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  26558. void Deopt %13.1
  26559. BB15
  26560. val %15.0 = Phi %14.5:BB14, %18.11:BB18
  26561. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  26562. int$' %15.2 = Inc %15.1
  26563. int$' %15.3 = EnsureNamed %15.2
  26564. lgl' %15.4 = Lt %14.11, %15.3, elided
  26565. t %15.5 = AsTest %15.4
  26566. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  26567. BB19
  26568. goto BB24
  26569. BB16
  26570. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  26571. void StVar i, %16.0, e9.5
  26572. cls %16.2 = LdFun buildTreeDepth, e9.5
  26573. prom %16.3 = MkArg missing, Prom(8), e9.5
  26574. prom %16.4 = MkArg missing, Prom(9), e9.5
  26575. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  26576. BB18
  26577. cls' %18.0 = LdConst function (depth, random) { if (d...
  26578. t %18.1 = Identical %16.2, %18.0
  26579. void Assume %18.1, %16.5
  26580. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26581. val^ %18.4 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  26582. val^? %18.5 = LdVar array, e9.5
  26583. val %18.6 = Force %18.5, e9.5
  26584. val^? %18.7 = LdVar i, e9.5
  26585. val %18.8 = Force %18.7, e9.5
  26586. val^ %18.9 = EnsureNamed %18.4
  26587. val %18.10 = Force %18.9, e9.5
  26588. val %18.11 = Subassign2_1D %18.10, %18.6, %18.8, e9.5
  26589. void StVar array, %18.11, e9.5
  26590. goto BB15
  26591. BB17
  26592. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26593. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  26594. void Deopt %17.1
  26595. Prom 2:
  26596. BB0
  26597. env e0.0 = LdFunctionEnv
  26598. val^? %0.1 = LdVar depth, e0.0
  26599. val %0.2 = Force %0.1, e0.0
  26600. real$' %0.3 = LdConst [1] 1
  26601. goto BB1
  26602. BB1
  26603. val %1.0 = Sub %0.2, %0.3, e0.0
  26604. void Return %1.0
  26605. Prom 3:
  26606. BB0
  26607. env e0.0 = LdFunctionEnv
  26608. val^? %0.1 = LdVar random, e0.0
  26609. val %0.2 = Force %0.1, e0.0
  26610. void Return %0.2
  26611. Prom 4:
  26612. BB0
  26613. env e0.0 = LdFunctionEnv
  26614. cls %0.1 = LdFun nextRandom, e0.0
  26615. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26616. t %0.3 = Identical %0.1, %0.2
  26617. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26618. BB2
  26619. void Assume %0.3, %0.4
  26620. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26621. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26622. real$' %2.3 = LdConst [1] 10
  26623. goto BB3
  26624. BB1
  26625. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26626. void Deopt %1.0
  26627. BB3
  26628. val %3.0 = Force %2.2, e0.0
  26629. val %3.1 = Mod %3.0, %2.3, e0.0
  26630. real$' %3.2 = LdConst [1] 1
  26631. goto BB4
  26632. BB4
  26633. val %4.0 = Add %3.1, %3.2, e0.0
  26634. void Return %4.0
  26635. Prom 5:
  26636. BB0
  26637. env e0.0 = LdFunctionEnv
  26638. cls %0.1 = LdFun nextRandom, e0.0
  26639. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26640. t %0.3 = Identical %0.1, %0.2
  26641. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26642. BB2
  26643. void Assume %0.3, %0.4
  26644. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26645. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26646. real$' %2.3 = LdConst [1] 10
  26647. goto BB3
  26648. BB1
  26649. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26650. void Deopt %1.0
  26651. BB3
  26652. val %3.0 = Force %2.2, e0.0
  26653. val %3.1 = Mod %3.0, %2.3, e0.0
  26654. real$' %3.2 = LdConst [1] 1
  26655. goto BB4
  26656. BB4
  26657. val %4.0 = Add %3.1, %3.2, e0.0
  26658. void Return %4.0
  26659. Prom 8:
  26660. BB0
  26661. env e0.0 = LdFunctionEnv
  26662. val^? %0.1 = LdVar depth, e0.0
  26663. val %0.2 = Force %0.1, e0.0
  26664. real$' %0.3 = LdConst [1] 1
  26665. goto BB1
  26666. BB1
  26667. val %1.0 = Sub %0.2, %0.3, e0.0
  26668. void Return %1.0
  26669. Prom 9:
  26670. BB0
  26671. env e0.0 = LdFunctionEnv
  26672. val^? %0.1 = LdVar random, e0.0
  26673. val %0.2 = Force %0.1, e0.0
  26674. void Return %0.2
  26675. ├────── Move environment creation as far as possible: == 581
  26676. buildTreeDepth[0x7f92446010b0]
  26677. BB0
  26678. val^ %0.0 = LdArg 0
  26679. val^ %0.1 = LdArg 1
  26680. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  26681. val %0.3 = Force! %0.0, e0.2
  26682. real$' %0.4 = LdConst [1] 1
  26683. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26684. BB2
  26685. t %2.0 = IsObject %0.3
  26686. void AssumeNot %2.0, %0.5
  26687. lgl' %2.2 = Eq %0.3, %0.4, elided
  26688. lgl %2.3 = AsLogical %2.2
  26689. t %2.4 = AsTest %2.3
  26690. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  26691. BB1
  26692. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  26693. void Deopt %1.0
  26694. BB22
  26695. cls %22.0 = LdFun c, e0.2
  26696. prom %22.1 = MkArg missing, Prom(4), e0.2
  26697. val^ %22.2 = Call %22.0(%22.1) e0.2
  26698. goto BB23
  26699. BB3
  26700. cls %3.0 = LdFun vector, e0.2
  26701. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  26702. BB23
  26703. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  26704. val %23.1 = Force %23.0, e0.2
  26705. void Return %23.1
  26706. BB5
  26707. cls' %5.0 = LdConst function (mode = "logical", length = ...
  26708. t %5.1 = Identical %3.0, %5.0
  26709. void Assume %5.1, %3.1
  26710. real$' %5.3 = LdConst [1] 4
  26711. str$' %5.4 = LdConst [1] "list"
  26712. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  26713. void StVar array, %5.5, e0.2
  26714. real$' %5.7 = LdConst [1] 4
  26715. real$' %5.8 = LdConst [1] 1
  26716. val' %5.9 = Colon %5.8, %5.7, elided
  26717. val' %5.10 = SetShared %5.9
  26718. int$' %5.11 = ForSeqSize %5.10
  26719. int$' %5.12 = LdConst [1] 0
  26720. goto BB6
  26721. BB4
  26722. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  26723. void Deopt %4.0
  26724. BB6
  26725. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  26726. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  26727. int$' %6.2 = Inc %6.1
  26728. int$' %6.3 = EnsureNamed %6.2
  26729. lgl' %6.4 = Lt %5.11, %6.3, elided
  26730. t %6.5 = AsTest %6.4
  26731. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  26732. BB21
  26733. goto BB23
  26734. BB7
  26735. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  26736. void StVar i, %7.0, e0.2
  26737. cls %7.2 = LdFun buildTreeDepth, e0.2
  26738. prom %7.3 = MkArg missing, Prom(2), e0.2
  26739. prom %7.4 = MkArg missing, Prom(3), e0.2
  26740. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  26741. BB9
  26742. cls' %9.0 = LdConst function (depth, random) { if (d...
  26743. t %9.1 = Identical %7.2, %9.0
  26744. void Assume %9.1, %7.5
  26745. val^? %9.3 = CastType %7.3
  26746. val^? %9.4 = CastType %7.4
  26747. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  26748. val %9.6 = Force %9.3, e9.5
  26749. real$' %9.7 = LdConst [1] 1
  26750. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  26751. BB8
  26752. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  26753. void Deopt %8.0
  26754. BB11
  26755. t %11.0 = IsObject %9.6
  26756. void AssumeNot %11.0, %9.8
  26757. lgl' %11.2 = Eq %9.6, %9.7, elided
  26758. lgl %11.3 = AsLogical %11.2
  26759. t %11.4 = AsTest %11.3
  26760. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  26761. BB10
  26762. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26763. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  26764. void Deopt %10.1
  26765. BB20
  26766. cls %20.0 = LdFun c, e9.5
  26767. prom %20.1 = MkArg missing, Prom(5), e9.5
  26768. fs %20.2 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26769. val^ %20.3 = Call %20.0(%20.1) e9.5
  26770. goto BB24
  26771. BB12
  26772. cls %12.0 = LdFun vector, e9.5
  26773. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  26774. BB24
  26775. val^ %24.0 = Phi %15.0:BB19, %20.3:BB20
  26776. val %24.1 = Force %24.0, e9.5
  26777. val^? %24.2 = LdVar array, e0.2
  26778. val %24.3 = Force %24.2, e0.2
  26779. val^? %24.4 = LdVar i, e0.2
  26780. val %24.5 = Force %24.4, e0.2
  26781. val %24.6 = EnsureNamed %24.1
  26782. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  26783. void StVar array, %24.7, e0.2
  26784. goto BB6
  26785. BB14
  26786. cls' %14.0 = LdConst function (mode = "logical", length = ...
  26787. t %14.1 = Identical %12.0, %14.0
  26788. void Assume %14.1, %12.1
  26789. str$' %14.3 = LdConst [1] "list"
  26790. real$' %14.4 = LdConst [1] 4
  26791. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  26792. void StVar array, %14.5, e9.5
  26793. real$' %14.7 = LdConst [1] 1
  26794. real$' %14.8 = LdConst [1] 4
  26795. val' %14.9 = Colon %14.7, %14.8, elided
  26796. val' %14.10 = SetShared %14.9
  26797. int$' %14.11 = ForSeqSize %14.10
  26798. int$' %14.12 = LdConst [1] 0
  26799. goto BB15
  26800. BB13
  26801. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26802. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  26803. void Deopt %13.1
  26804. BB15
  26805. val %15.0 = Phi %14.5:BB14, %18.11:BB18
  26806. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  26807. int$' %15.2 = Inc %15.1
  26808. int$' %15.3 = EnsureNamed %15.2
  26809. lgl' %15.4 = Lt %14.11, %15.3, elided
  26810. t %15.5 = AsTest %15.4
  26811. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  26812. BB19
  26813. goto BB24
  26814. BB16
  26815. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  26816. void StVar i, %16.0, e9.5
  26817. cls %16.2 = LdFun buildTreeDepth, e9.5
  26818. prom %16.3 = MkArg missing, Prom(8), e9.5
  26819. prom %16.4 = MkArg missing, Prom(9), e9.5
  26820. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  26821. BB18
  26822. cls' %18.0 = LdConst function (depth, random) { if (d...
  26823. t %18.1 = Identical %16.2, %18.0
  26824. void Assume %18.1, %16.5
  26825. fs %18.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26826. val^ %18.4 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  26827. val^? %18.5 = LdVar array, e9.5
  26828. val %18.6 = Force %18.5, e9.5
  26829. val^? %18.7 = LdVar i, e9.5
  26830. val %18.8 = Force %18.7, e9.5
  26831. val^ %18.9 = EnsureNamed %18.4
  26832. val %18.10 = Force %18.9, e9.5
  26833. val %18.11 = Subassign2_1D %18.10, %18.6, %18.8, e9.5
  26834. void StVar array, %18.11, e9.5
  26835. goto BB15
  26836. BB17
  26837. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  26838. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  26839. void Deopt %17.1
  26840. Prom 2:
  26841. BB0
  26842. env e0.0 = LdFunctionEnv
  26843. val^? %0.1 = LdVar depth, e0.0
  26844. val %0.2 = Force %0.1, e0.0
  26845. real$' %0.3 = LdConst [1] 1
  26846. goto BB1
  26847. BB1
  26848. val %1.0 = Sub %0.2, %0.3, e0.0
  26849. void Return %1.0
  26850. Prom 3:
  26851. BB0
  26852. env e0.0 = LdFunctionEnv
  26853. val^? %0.1 = LdVar random, e0.0
  26854. val %0.2 = Force %0.1, e0.0
  26855. void Return %0.2
  26856. Prom 4:
  26857. BB0
  26858. env e0.0 = LdFunctionEnv
  26859. cls %0.1 = LdFun nextRandom, e0.0
  26860. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26861. t %0.3 = Identical %0.1, %0.2
  26862. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26863. BB2
  26864. void Assume %0.3, %0.4
  26865. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26866. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26867. real$' %2.3 = LdConst [1] 10
  26868. goto BB3
  26869. BB1
  26870. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26871. void Deopt %1.0
  26872. BB3
  26873. val %3.0 = Force %2.2, e0.0
  26874. val %3.1 = Mod %3.0, %2.3, e0.0
  26875. real$' %3.2 = LdConst [1] 1
  26876. goto BB4
  26877. BB4
  26878. val %4.0 = Add %3.1, %3.2, e0.0
  26879. void Return %4.0
  26880. Prom 5:
  26881. BB0
  26882. env e0.0 = LdFunctionEnv
  26883. cls %0.1 = LdFun nextRandom, e0.0
  26884. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  26885. t %0.3 = Identical %0.1, %0.2
  26886. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26887. BB2
  26888. void Assume %0.3, %0.4
  26889. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  26890. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  26891. real$' %2.3 = LdConst [1] 10
  26892. goto BB3
  26893. BB1
  26894. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  26895. void Deopt %1.0
  26896. BB3
  26897. val %3.0 = Force %2.2, e0.0
  26898. val %3.1 = Mod %3.0, %2.3, e0.0
  26899. real$' %3.2 = LdConst [1] 1
  26900. goto BB4
  26901. BB4
  26902. val %4.0 = Add %3.1, %3.2, e0.0
  26903. void Return %4.0
  26904. Prom 8:
  26905. BB0
  26906. env e0.0 = LdFunctionEnv
  26907. val^? %0.1 = LdVar depth, e0.0
  26908. val %0.2 = Force %0.1, e0.0
  26909. real$' %0.3 = LdConst [1] 1
  26910. goto BB1
  26911. BB1
  26912. val %1.0 = Sub %0.2, %0.3, e0.0
  26913. void Return %1.0
  26914. Prom 9:
  26915. BB0
  26916. env e0.0 = LdFunctionEnv
  26917. val^? %0.1 = LdVar random, e0.0
  26918. val %0.2 = Force %0.1, e0.0
  26919. void Return %0.2
  26920. ├────── Cleanup redundant operations: == 588
  26921. buildTreeDepth[0x7f92446010b0]
  26922. BB0
  26923. val^ %0.0 = LdArg 0
  26924. val^ %0.1 = LdArg 1
  26925. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  26926. val %0.3 = Force! %0.0, e0.2
  26927. real$' %0.4 = LdConst [1] 1
  26928. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  26929. BB2
  26930. t %2.0 = IsObject %0.3
  26931. void AssumeNot %2.0, %0.5
  26932. lgl' %2.2 = Eq %0.3, %0.4, elided
  26933. lgl %2.3 = AsLogical %2.2
  26934. t %2.4 = AsTest %2.3
  26935. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  26936. BB1
  26937. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  26938. void Deopt %1.0
  26939. BB22
  26940. cls %22.0 = LdFun c, e0.2
  26941. prom %22.1 = MkArg missing, Prom(4), e0.2
  26942. val^ %22.2 = Call %22.0(%22.1) e0.2
  26943. goto BB23
  26944. BB3
  26945. cls %3.0 = LdFun vector, e0.2
  26946. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  26947. BB23
  26948. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  26949. val %23.1 = Force %23.0, e0.2
  26950. void Return %23.1
  26951. BB5
  26952. cls' %5.0 = LdConst function (mode = "logical", length = ...
  26953. t %5.1 = Identical %3.0, %5.0
  26954. void Assume %5.1, %3.1
  26955. real$' %5.3 = LdConst [1] 4
  26956. str$' %5.4 = LdConst [1] "list"
  26957. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  26958. void StVar array, %5.5, e0.2
  26959. real$' %5.7 = LdConst [1] 4
  26960. real$' %5.8 = LdConst [1] 1
  26961. val' %5.9 = Colon %5.8, %5.7, elided
  26962. val' %5.10 = SetShared %5.9
  26963. int$' %5.11 = ForSeqSize %5.10
  26964. int$' %5.12 = LdConst [1] 0
  26965. goto BB6
  26966. BB4
  26967. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  26968. void Deopt %4.0
  26969. BB6
  26970. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  26971. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  26972. int$' %6.2 = Inc %6.1
  26973. int$' %6.3 = EnsureNamed %6.2
  26974. lgl' %6.4 = Lt %5.11, %6.3, elided
  26975. t %6.5 = AsTest %6.4
  26976. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  26977. BB21
  26978. goto BB23
  26979. BB7
  26980. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  26981. void StVar i, %7.0, e0.2
  26982. cls %7.2 = LdFun buildTreeDepth, e0.2
  26983. prom %7.3 = MkArg missing, Prom(2), e0.2
  26984. prom %7.4 = MkArg missing, Prom(3), e0.2
  26985. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  26986. BB9
  26987. cls' %9.0 = LdConst function (depth, random) { if (d...
  26988. t %9.1 = Identical %7.2, %9.0
  26989. void Assume %9.1, %7.5
  26990. val^? %9.3 = CastType %7.3
  26991. val^? %9.4 = CastType %7.4
  26992. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  26993. val %9.6 = Force %9.3, e9.5
  26994. real$' %9.7 = LdConst [1] 1
  26995. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  26996. BB8
  26997. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  26998. void Deopt %8.0
  26999. BB11
  27000. t %11.0 = IsObject %9.6
  27001. void AssumeNot %11.0, %9.8
  27002. lgl' %11.2 = Eq %9.6, %9.7, elided
  27003. lgl %11.3 = AsLogical %11.2
  27004. t %11.4 = AsTest %11.3
  27005. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  27006. BB10
  27007. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27008. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  27009. void Deopt %10.1
  27010. BB20
  27011. cls %20.0 = LdFun c, e9.5
  27012. prom %20.1 = MkArg missing, Prom(5), e9.5
  27013. val^ %20.2 = Call %20.0(%20.1) e9.5
  27014. goto BB24
  27015. BB12
  27016. cls %12.0 = LdFun vector, e9.5
  27017. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  27018. BB24
  27019. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  27020. val %24.1 = Force %24.0, e9.5
  27021. val^? %24.2 = LdVar array, e0.2
  27022. val %24.3 = Force %24.2, e0.2
  27023. val^? %24.4 = LdVar i, e0.2
  27024. val %24.5 = Force %24.4, e0.2
  27025. val %24.6 = EnsureNamed %24.1
  27026. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  27027. void StVar array, %24.7, e0.2
  27028. goto BB6
  27029. BB14
  27030. cls' %14.0 = LdConst function (mode = "logical", length = ...
  27031. t %14.1 = Identical %12.0, %14.0
  27032. void Assume %14.1, %12.1
  27033. str$' %14.3 = LdConst [1] "list"
  27034. real$' %14.4 = LdConst [1] 4
  27035. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  27036. void StVar array, %14.5, e9.5
  27037. real$' %14.7 = LdConst [1] 1
  27038. real$' %14.8 = LdConst [1] 4
  27039. val' %14.9 = Colon %14.7, %14.8, elided
  27040. val' %14.10 = SetShared %14.9
  27041. int$' %14.11 = ForSeqSize %14.10
  27042. int$' %14.12 = LdConst [1] 0
  27043. goto BB15
  27044. BB13
  27045. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27046. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  27047. void Deopt %13.1
  27048. BB15
  27049. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  27050. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  27051. int$' %15.2 = Inc %15.1
  27052. int$' %15.3 = EnsureNamed %15.2
  27053. lgl' %15.4 = Lt %14.11, %15.3, elided
  27054. t %15.5 = AsTest %15.4
  27055. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  27056. BB19
  27057. goto BB24
  27058. BB16
  27059. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  27060. void StVar i, %16.0, e9.5
  27061. cls %16.2 = LdFun buildTreeDepth, e9.5
  27062. prom %16.3 = MkArg missing, Prom(8), e9.5
  27063. prom %16.4 = MkArg missing, Prom(9), e9.5
  27064. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  27065. BB18
  27066. cls' %18.0 = LdConst function (depth, random) { if (d...
  27067. t %18.1 = Identical %16.2, %18.0
  27068. void Assume %18.1, %16.5
  27069. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  27070. val^? %18.4 = LdVar array, e9.5
  27071. val %18.5 = Force %18.4, e9.5
  27072. val^? %18.6 = LdVar i, e9.5
  27073. val %18.7 = Force %18.6, e9.5
  27074. val^ %18.8 = EnsureNamed %18.3
  27075. val %18.9 = Force %18.8, e9.5
  27076. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  27077. void StVar array, %18.10, e9.5
  27078. goto BB15
  27079. BB17
  27080. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27081. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  27082. void Deopt %17.1
  27083. Prom 2:
  27084. BB0
  27085. env e0.0 = LdFunctionEnv
  27086. val^? %0.1 = LdVar depth, e0.0
  27087. val %0.2 = Force %0.1, e0.0
  27088. real$' %0.3 = LdConst [1] 1
  27089. goto BB1
  27090. BB1
  27091. val %1.0 = Sub %0.2, %0.3, e0.0
  27092. void Return %1.0
  27093. Prom 3:
  27094. BB0
  27095. env e0.0 = LdFunctionEnv
  27096. val^? %0.1 = LdVar random, e0.0
  27097. val %0.2 = Force %0.1, e0.0
  27098. void Return %0.2
  27099. Prom 4:
  27100. BB0
  27101. env e0.0 = LdFunctionEnv
  27102. cls %0.1 = LdFun nextRandom, e0.0
  27103. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27104. t %0.3 = Identical %0.1, %0.2
  27105. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27106. BB2
  27107. void Assume %0.3, %0.4
  27108. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27109. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27110. real$' %2.3 = LdConst [1] 10
  27111. goto BB3
  27112. BB1
  27113. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27114. void Deopt %1.0
  27115. BB3
  27116. val %3.0 = Force %2.2, e0.0
  27117. val %3.1 = Mod %3.0, %2.3, e0.0
  27118. real$' %3.2 = LdConst [1] 1
  27119. goto BB4
  27120. BB4
  27121. val %4.0 = Add %3.1, %3.2, e0.0
  27122. void Return %4.0
  27123. Prom 5:
  27124. BB0
  27125. env e0.0 = LdFunctionEnv
  27126. cls %0.1 = LdFun nextRandom, e0.0
  27127. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27128. t %0.3 = Identical %0.1, %0.2
  27129. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27130. BB2
  27131. void Assume %0.3, %0.4
  27132. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27133. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27134. real$' %2.3 = LdConst [1] 10
  27135. goto BB3
  27136. BB1
  27137. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27138. void Deopt %1.0
  27139. BB3
  27140. val %3.0 = Force %2.2, e0.0
  27141. val %3.1 = Mod %3.0, %2.3, e0.0
  27142. real$' %3.2 = LdConst [1] 1
  27143. goto BB4
  27144. BB4
  27145. val %4.0 = Add %3.1, %3.2, e0.0
  27146. void Return %4.0
  27147. Prom 8:
  27148. BB0
  27149. env e0.0 = LdFunctionEnv
  27150. val^? %0.1 = LdVar depth, e0.0
  27151. val %0.2 = Force %0.1, e0.0
  27152. real$' %0.3 = LdConst [1] 1
  27153. goto BB1
  27154. BB1
  27155. val %1.0 = Sub %0.2, %0.3, e0.0
  27156. void Return %1.0
  27157. Prom 9:
  27158. BB0
  27159. env e0.0 = LdFunctionEnv
  27160. val^? %0.1 = LdVar random, e0.0
  27161. val %0.2 = Force %0.1, e0.0
  27162. void Return %0.2
  27163. ├────── Inline closures: == 595
  27164. buildTreeDepth[0x7f92446010b0]
  27165. BB0
  27166. val^ %0.0 = LdArg 0
  27167. val^ %0.1 = LdArg 1
  27168. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  27169. val %0.3 = Force! %0.0, e0.2
  27170. real$' %0.4 = LdConst [1] 1
  27171. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27172. BB2
  27173. t %2.0 = IsObject %0.3
  27174. void AssumeNot %2.0, %0.5
  27175. lgl' %2.2 = Eq %0.3, %0.4, elided
  27176. lgl %2.3 = AsLogical %2.2
  27177. t %2.4 = AsTest %2.3
  27178. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  27179. BB1
  27180. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  27181. void Deopt %1.0
  27182. BB22
  27183. cls %22.0 = LdFun c, e0.2
  27184. prom %22.1 = MkArg missing, Prom(4), e0.2
  27185. val^ %22.2 = Call %22.0(%22.1) e0.2
  27186. goto BB23
  27187. BB3
  27188. cls %3.0 = LdFun vector, e0.2
  27189. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  27190. BB23
  27191. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  27192. val %23.1 = Force %23.0, e0.2
  27193. void Return %23.1
  27194. BB5
  27195. cls' %5.0 = LdConst function (mode = "logical", length = ...
  27196. t %5.1 = Identical %3.0, %5.0
  27197. void Assume %5.1, %3.1
  27198. real$' %5.3 = LdConst [1] 4
  27199. str$' %5.4 = LdConst [1] "list"
  27200. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  27201. void StVar array, %5.5, e0.2
  27202. real$' %5.7 = LdConst [1] 4
  27203. real$' %5.8 = LdConst [1] 1
  27204. val' %5.9 = Colon %5.8, %5.7, elided
  27205. val' %5.10 = SetShared %5.9
  27206. int$' %5.11 = ForSeqSize %5.10
  27207. int$' %5.12 = LdConst [1] 0
  27208. goto BB6
  27209. BB4
  27210. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  27211. void Deopt %4.0
  27212. BB6
  27213. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  27214. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  27215. int$' %6.2 = Inc %6.1
  27216. int$' %6.3 = EnsureNamed %6.2
  27217. lgl' %6.4 = Lt %5.11, %6.3, elided
  27218. t %6.5 = AsTest %6.4
  27219. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  27220. BB21
  27221. goto BB23
  27222. BB7
  27223. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  27224. void StVar i, %7.0, e0.2
  27225. cls %7.2 = LdFun buildTreeDepth, e0.2
  27226. prom %7.3 = MkArg missing, Prom(2), e0.2
  27227. prom %7.4 = MkArg missing, Prom(3), e0.2
  27228. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  27229. BB9
  27230. cls' %9.0 = LdConst function (depth, random) { if (d...
  27231. t %9.1 = Identical %7.2, %9.0
  27232. void Assume %9.1, %7.5
  27233. val^? %9.3 = CastType %7.3
  27234. val^? %9.4 = CastType %7.4
  27235. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  27236. val %9.6 = Force %9.3, e9.5
  27237. real$' %9.7 = LdConst [1] 1
  27238. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  27239. BB8
  27240. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  27241. void Deopt %8.0
  27242. BB11
  27243. t %11.0 = IsObject %9.6
  27244. void AssumeNot %11.0, %9.8
  27245. lgl' %11.2 = Eq %9.6, %9.7, elided
  27246. lgl %11.3 = AsLogical %11.2
  27247. t %11.4 = AsTest %11.3
  27248. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  27249. BB10
  27250. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27251. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  27252. void Deopt %10.1
  27253. BB20
  27254. cls %20.0 = LdFun c, e9.5
  27255. prom %20.1 = MkArg missing, Prom(5), e9.5
  27256. val^ %20.2 = Call %20.0(%20.1) e9.5
  27257. goto BB24
  27258. BB12
  27259. cls %12.0 = LdFun vector, e9.5
  27260. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  27261. BB24
  27262. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  27263. val %24.1 = Force %24.0, e9.5
  27264. val^? %24.2 = LdVar array, e0.2
  27265. val %24.3 = Force %24.2, e0.2
  27266. val^? %24.4 = LdVar i, e0.2
  27267. val %24.5 = Force %24.4, e0.2
  27268. val %24.6 = EnsureNamed %24.1
  27269. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  27270. void StVar array, %24.7, e0.2
  27271. goto BB6
  27272. BB14
  27273. cls' %14.0 = LdConst function (mode = "logical", length = ...
  27274. t %14.1 = Identical %12.0, %14.0
  27275. void Assume %14.1, %12.1
  27276. str$' %14.3 = LdConst [1] "list"
  27277. real$' %14.4 = LdConst [1] 4
  27278. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  27279. void StVar array, %14.5, e9.5
  27280. real$' %14.7 = LdConst [1] 1
  27281. real$' %14.8 = LdConst [1] 4
  27282. val' %14.9 = Colon %14.7, %14.8, elided
  27283. val' %14.10 = SetShared %14.9
  27284. int$' %14.11 = ForSeqSize %14.10
  27285. int$' %14.12 = LdConst [1] 0
  27286. goto BB15
  27287. BB13
  27288. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27289. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  27290. void Deopt %13.1
  27291. BB15
  27292. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  27293. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  27294. int$' %15.2 = Inc %15.1
  27295. int$' %15.3 = EnsureNamed %15.2
  27296. lgl' %15.4 = Lt %14.11, %15.3, elided
  27297. t %15.5 = AsTest %15.4
  27298. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  27299. BB19
  27300. goto BB24
  27301. BB16
  27302. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  27303. void StVar i, %16.0, e9.5
  27304. cls %16.2 = LdFun buildTreeDepth, e9.5
  27305. prom %16.3 = MkArg missing, Prom(8), e9.5
  27306. prom %16.4 = MkArg missing, Prom(9), e9.5
  27307. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  27308. BB18
  27309. cls' %18.0 = LdConst function (depth, random) { if (d...
  27310. t %18.1 = Identical %16.2, %18.0
  27311. void Assume %18.1, %16.5
  27312. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  27313. val^? %18.4 = LdVar array, e9.5
  27314. val %18.5 = Force %18.4, e9.5
  27315. val^? %18.6 = LdVar i, e9.5
  27316. val %18.7 = Force %18.6, e9.5
  27317. val^ %18.8 = EnsureNamed %18.3
  27318. val %18.9 = Force %18.8, e9.5
  27319. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  27320. void StVar array, %18.10, e9.5
  27321. goto BB15
  27322. BB17
  27323. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27324. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  27325. void Deopt %17.1
  27326. Prom 2:
  27327. BB0
  27328. env e0.0 = LdFunctionEnv
  27329. val^? %0.1 = LdVar depth, e0.0
  27330. val %0.2 = Force %0.1, e0.0
  27331. real$' %0.3 = LdConst [1] 1
  27332. goto BB1
  27333. BB1
  27334. val %1.0 = Sub %0.2, %0.3, e0.0
  27335. void Return %1.0
  27336. Prom 3:
  27337. BB0
  27338. env e0.0 = LdFunctionEnv
  27339. val^? %0.1 = LdVar random, e0.0
  27340. val %0.2 = Force %0.1, e0.0
  27341. void Return %0.2
  27342. Prom 4:
  27343. BB0
  27344. env e0.0 = LdFunctionEnv
  27345. cls %0.1 = LdFun nextRandom, e0.0
  27346. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27347. t %0.3 = Identical %0.1, %0.2
  27348. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27349. BB2
  27350. void Assume %0.3, %0.4
  27351. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27352. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27353. real$' %2.3 = LdConst [1] 10
  27354. goto BB3
  27355. BB1
  27356. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27357. void Deopt %1.0
  27358. BB3
  27359. val %3.0 = Force %2.2, e0.0
  27360. val %3.1 = Mod %3.0, %2.3, e0.0
  27361. real$' %3.2 = LdConst [1] 1
  27362. goto BB4
  27363. BB4
  27364. val %4.0 = Add %3.1, %3.2, e0.0
  27365. void Return %4.0
  27366. Prom 5:
  27367. BB0
  27368. env e0.0 = LdFunctionEnv
  27369. cls %0.1 = LdFun nextRandom, e0.0
  27370. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27371. t %0.3 = Identical %0.1, %0.2
  27372. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27373. BB2
  27374. void Assume %0.3, %0.4
  27375. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27376. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27377. real$' %2.3 = LdConst [1] 10
  27378. goto BB3
  27379. BB1
  27380. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27381. void Deopt %1.0
  27382. BB3
  27383. val %3.0 = Force %2.2, e0.0
  27384. val %3.1 = Mod %3.0, %2.3, e0.0
  27385. real$' %3.2 = LdConst [1] 1
  27386. goto BB4
  27387. BB4
  27388. val %4.0 = Add %3.1, %3.2, e0.0
  27389. void Return %4.0
  27390. Prom 8:
  27391. BB0
  27392. env e0.0 = LdFunctionEnv
  27393. val^? %0.1 = LdVar depth, e0.0
  27394. val %0.2 = Force %0.1, e0.0
  27395. real$' %0.3 = LdConst [1] 1
  27396. goto BB1
  27397. BB1
  27398. val %1.0 = Sub %0.2, %0.3, e0.0
  27399. void Return %1.0
  27400. Prom 9:
  27401. BB0
  27402. env e0.0 = LdFunctionEnv
  27403. val^? %0.1 = LdVar random, e0.0
  27404. val %0.2 = Force %0.1, e0.0
  27405. void Return %0.2
  27406. ├────── Inline Promises: == 602
  27407. buildTreeDepth[0x7f92446010b0]
  27408. BB0
  27409. val^ %0.0 = LdArg 0
  27410. val^ %0.1 = LdArg 1
  27411. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  27412. val %0.3 = Force! %0.0, e0.2
  27413. real$' %0.4 = LdConst [1] 1
  27414. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27415. BB2
  27416. t %2.0 = IsObject %0.3
  27417. void AssumeNot %2.0, %0.5
  27418. lgl' %2.2 = Eq %0.3, %0.4, elided
  27419. lgl %2.3 = AsLogical %2.2
  27420. t %2.4 = AsTest %2.3
  27421. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  27422. BB1
  27423. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  27424. void Deopt %1.0
  27425. BB22
  27426. cls %22.0 = LdFun c, e0.2
  27427. prom %22.1 = MkArg missing, Prom(4), e0.2
  27428. val^ %22.2 = Call %22.0(%22.1) e0.2
  27429. goto BB23
  27430. BB3
  27431. cls %3.0 = LdFun vector, e0.2
  27432. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  27433. BB23
  27434. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  27435. val %23.1 = Force %23.0, e0.2
  27436. void Return %23.1
  27437. BB5
  27438. cls' %5.0 = LdConst function (mode = "logical", length = ...
  27439. t %5.1 = Identical %3.0, %5.0
  27440. void Assume %5.1, %3.1
  27441. real$' %5.3 = LdConst [1] 4
  27442. str$' %5.4 = LdConst [1] "list"
  27443. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  27444. void StVar array, %5.5, e0.2
  27445. real$' %5.7 = LdConst [1] 4
  27446. real$' %5.8 = LdConst [1] 1
  27447. val' %5.9 = Colon %5.8, %5.7, elided
  27448. val' %5.10 = SetShared %5.9
  27449. int$' %5.11 = ForSeqSize %5.10
  27450. int$' %5.12 = LdConst [1] 0
  27451. goto BB6
  27452. BB4
  27453. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  27454. void Deopt %4.0
  27455. BB6
  27456. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  27457. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  27458. int$' %6.2 = Inc %6.1
  27459. int$' %6.3 = EnsureNamed %6.2
  27460. lgl' %6.4 = Lt %5.11, %6.3, elided
  27461. t %6.5 = AsTest %6.4
  27462. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  27463. BB21
  27464. goto BB23
  27465. BB7
  27466. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  27467. void StVar i, %7.0, e0.2
  27468. cls %7.2 = LdFun buildTreeDepth, e0.2
  27469. prom %7.3 = MkArg missing, Prom(2), e0.2
  27470. prom %7.4 = MkArg missing, Prom(3), e0.2
  27471. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  27472. BB9
  27473. cls' %9.0 = LdConst function (depth, random) { if (d...
  27474. t %9.1 = Identical %7.2, %9.0
  27475. void Assume %9.1, %7.5
  27476. val^? %9.3 = CastType %7.3
  27477. val^? %9.4 = CastType %7.4
  27478. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  27479. val %9.6 = Force %9.3, e9.5
  27480. real$' %9.7 = LdConst [1] 1
  27481. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  27482. BB8
  27483. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  27484. void Deopt %8.0
  27485. BB11
  27486. t %11.0 = IsObject %9.6
  27487. void AssumeNot %11.0, %9.8
  27488. lgl' %11.2 = Eq %9.6, %9.7, elided
  27489. lgl %11.3 = AsLogical %11.2
  27490. t %11.4 = AsTest %11.3
  27491. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  27492. BB10
  27493. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27494. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  27495. void Deopt %10.1
  27496. BB20
  27497. cls %20.0 = LdFun c, e9.5
  27498. prom %20.1 = MkArg missing, Prom(5), e9.5
  27499. val^ %20.2 = Call %20.0(%20.1) e9.5
  27500. goto BB24
  27501. BB12
  27502. cls %12.0 = LdFun vector, e9.5
  27503. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  27504. BB24
  27505. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  27506. val %24.1 = Force %24.0, e9.5
  27507. val^? %24.2 = LdVar array, e0.2
  27508. val %24.3 = Force %24.2, e0.2
  27509. val^? %24.4 = LdVar i, e0.2
  27510. val %24.5 = Force %24.4, e0.2
  27511. val %24.6 = EnsureNamed %24.1
  27512. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  27513. void StVar array, %24.7, e0.2
  27514. goto BB6
  27515. BB14
  27516. cls' %14.0 = LdConst function (mode = "logical", length = ...
  27517. t %14.1 = Identical %12.0, %14.0
  27518. void Assume %14.1, %12.1
  27519. str$' %14.3 = LdConst [1] "list"
  27520. real$' %14.4 = LdConst [1] 4
  27521. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  27522. void StVar array, %14.5, e9.5
  27523. real$' %14.7 = LdConst [1] 1
  27524. real$' %14.8 = LdConst [1] 4
  27525. val' %14.9 = Colon %14.7, %14.8, elided
  27526. val' %14.10 = SetShared %14.9
  27527. int$' %14.11 = ForSeqSize %14.10
  27528. int$' %14.12 = LdConst [1] 0
  27529. goto BB15
  27530. BB13
  27531. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27532. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  27533. void Deopt %13.1
  27534. BB15
  27535. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  27536. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  27537. int$' %15.2 = Inc %15.1
  27538. int$' %15.3 = EnsureNamed %15.2
  27539. lgl' %15.4 = Lt %14.11, %15.3, elided
  27540. t %15.5 = AsTest %15.4
  27541. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  27542. BB19
  27543. goto BB24
  27544. BB16
  27545. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  27546. void StVar i, %16.0, e9.5
  27547. cls %16.2 = LdFun buildTreeDepth, e9.5
  27548. prom %16.3 = MkArg missing, Prom(8), e9.5
  27549. prom %16.4 = MkArg missing, Prom(9), e9.5
  27550. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  27551. BB18
  27552. cls' %18.0 = LdConst function (depth, random) { if (d...
  27553. t %18.1 = Identical %16.2, %18.0
  27554. void Assume %18.1, %16.5
  27555. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  27556. val^? %18.4 = LdVar array, e9.5
  27557. val %18.5 = Force %18.4, e9.5
  27558. val^? %18.6 = LdVar i, e9.5
  27559. val %18.7 = Force %18.6, e9.5
  27560. val^ %18.8 = EnsureNamed %18.3
  27561. val %18.9 = Force %18.8, e9.5
  27562. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  27563. void StVar array, %18.10, e9.5
  27564. goto BB15
  27565. BB17
  27566. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27567. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  27568. void Deopt %17.1
  27569. Prom 2:
  27570. BB0
  27571. env e0.0 = LdFunctionEnv
  27572. val^? %0.1 = LdVar depth, e0.0
  27573. val %0.2 = Force %0.1, e0.0
  27574. real$' %0.3 = LdConst [1] 1
  27575. goto BB1
  27576. BB1
  27577. val %1.0 = Sub %0.2, %0.3, e0.0
  27578. void Return %1.0
  27579. Prom 3:
  27580. BB0
  27581. env e0.0 = LdFunctionEnv
  27582. val^? %0.1 = LdVar random, e0.0
  27583. val %0.2 = Force %0.1, e0.0
  27584. void Return %0.2
  27585. Prom 4:
  27586. BB0
  27587. env e0.0 = LdFunctionEnv
  27588. cls %0.1 = LdFun nextRandom, e0.0
  27589. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27590. t %0.3 = Identical %0.1, %0.2
  27591. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27592. BB2
  27593. void Assume %0.3, %0.4
  27594. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27595. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27596. real$' %2.3 = LdConst [1] 10
  27597. goto BB3
  27598. BB1
  27599. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27600. void Deopt %1.0
  27601. BB3
  27602. val %3.0 = Force %2.2, e0.0
  27603. val %3.1 = Mod %3.0, %2.3, e0.0
  27604. real$' %3.2 = LdConst [1] 1
  27605. goto BB4
  27606. BB4
  27607. val %4.0 = Add %3.1, %3.2, e0.0
  27608. void Return %4.0
  27609. Prom 5:
  27610. BB0
  27611. env e0.0 = LdFunctionEnv
  27612. cls %0.1 = LdFun nextRandom, e0.0
  27613. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27614. t %0.3 = Identical %0.1, %0.2
  27615. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27616. BB2
  27617. void Assume %0.3, %0.4
  27618. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27619. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27620. real$' %2.3 = LdConst [1] 10
  27621. goto BB3
  27622. BB1
  27623. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27624. void Deopt %1.0
  27625. BB3
  27626. val %3.0 = Force %2.2, e0.0
  27627. val %3.1 = Mod %3.0, %2.3, e0.0
  27628. real$' %3.2 = LdConst [1] 1
  27629. goto BB4
  27630. BB4
  27631. val %4.0 = Add %3.1, %3.2, e0.0
  27632. void Return %4.0
  27633. Prom 8:
  27634. BB0
  27635. env e0.0 = LdFunctionEnv
  27636. val^? %0.1 = LdVar depth, e0.0
  27637. val %0.2 = Force %0.1, e0.0
  27638. real$' %0.3 = LdConst [1] 1
  27639. goto BB1
  27640. BB1
  27641. val %1.0 = Sub %0.2, %0.3, e0.0
  27642. void Return %1.0
  27643. Prom 9:
  27644. BB0
  27645. env e0.0 = LdFunctionEnv
  27646. val^? %0.1 = LdVar random, e0.0
  27647. val %0.2 = Force %0.1, e0.0
  27648. void Return %0.2
  27649. ├────── Scope resolution: == 609
  27650. buildTreeDepth[0x7f92446010b0]
  27651. BB0
  27652. val^ %0.0 = LdArg 0
  27653. val^ %0.1 = LdArg 1
  27654. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  27655. val %0.3 = Force! %0.0, e0.2
  27656. real$' %0.4 = LdConst [1] 1
  27657. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27658. BB2
  27659. t %2.0 = IsObject %0.3
  27660. void AssumeNot %2.0, %0.5
  27661. lgl' %2.2 = Eq %0.3, %0.4, elided
  27662. lgl %2.3 = AsLogical %2.2
  27663. t %2.4 = AsTest %2.3
  27664. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  27665. BB1
  27666. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  27667. void Deopt %1.0
  27668. BB22
  27669. cls %22.0 = LdFun c, e0.2
  27670. prom %22.1 = MkArg missing, Prom(4), e0.2
  27671. val^ %22.2 = Call %22.0(%22.1) e0.2
  27672. goto BB23
  27673. BB3
  27674. cls %3.0 = LdFun vector, e0.2
  27675. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  27676. BB23
  27677. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  27678. val %23.1 = Force %23.0, e0.2
  27679. void Return %23.1
  27680. BB5
  27681. cls' %5.0 = LdConst function (mode = "logical", length = ...
  27682. t %5.1 = Identical %3.0, %5.0
  27683. void Assume %5.1, %3.1
  27684. real$' %5.3 = LdConst [1] 4
  27685. str$' %5.4 = LdConst [1] "list"
  27686. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  27687. void StVar array, %5.5, e0.2
  27688. real$' %5.7 = LdConst [1] 4
  27689. real$' %5.8 = LdConst [1] 1
  27690. val' %5.9 = Colon %5.8, %5.7, elided
  27691. val' %5.10 = SetShared %5.9
  27692. int$' %5.11 = ForSeqSize %5.10
  27693. int$' %5.12 = LdConst [1] 0
  27694. goto BB6
  27695. BB4
  27696. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  27697. void Deopt %4.0
  27698. BB6
  27699. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  27700. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  27701. int$' %6.2 = Inc %6.1
  27702. int$' %6.3 = EnsureNamed %6.2
  27703. lgl' %6.4 = Lt %5.11, %6.3, elided
  27704. t %6.5 = AsTest %6.4
  27705. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  27706. BB21
  27707. goto BB23
  27708. BB7
  27709. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  27710. void StVar i, %7.0, e0.2
  27711. cls %7.2 = LdFun buildTreeDepth, e0.2
  27712. prom %7.3 = MkArg missing, Prom(2), e0.2
  27713. prom %7.4 = MkArg missing, Prom(3), e0.2
  27714. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  27715. BB9
  27716. cls' %9.0 = LdConst function (depth, random) { if (d...
  27717. t %9.1 = Identical %7.2, %9.0
  27718. void Assume %9.1, %7.5
  27719. val^? %9.3 = CastType %7.3
  27720. val^? %9.4 = CastType %7.4
  27721. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  27722. val %9.6 = Force %9.3, e9.5
  27723. real$' %9.7 = LdConst [1] 1
  27724. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  27725. BB8
  27726. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  27727. void Deopt %8.0
  27728. BB11
  27729. t %11.0 = IsObject %9.6
  27730. void AssumeNot %11.0, %9.8
  27731. lgl' %11.2 = Eq %9.6, %9.7, elided
  27732. lgl %11.3 = AsLogical %11.2
  27733. t %11.4 = AsTest %11.3
  27734. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  27735. BB10
  27736. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27737. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  27738. void Deopt %10.1
  27739. BB20
  27740. cls %20.0 = LdFun c, e9.5
  27741. prom %20.1 = MkArg missing, Prom(5), e9.5
  27742. val^ %20.2 = Call %20.0(%20.1) e9.5
  27743. goto BB24
  27744. BB12
  27745. cls %12.0 = LdFun vector, e9.5
  27746. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  27747. BB24
  27748. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  27749. val %24.1 = Force %24.0, e9.5
  27750. val^? %24.2 = LdVar array, e0.2
  27751. val %24.3 = Force %24.2, e0.2
  27752. val^? %24.4 = LdVar i, e0.2
  27753. val %24.5 = Force %24.4, e0.2
  27754. val %24.6 = EnsureNamed %24.1
  27755. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  27756. void StVar array, %24.7, e0.2
  27757. goto BB6
  27758. BB14
  27759. cls' %14.0 = LdConst function (mode = "logical", length = ...
  27760. t %14.1 = Identical %12.0, %14.0
  27761. void Assume %14.1, %12.1
  27762. str$' %14.3 = LdConst [1] "list"
  27763. real$' %14.4 = LdConst [1] 4
  27764. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  27765. void StVar array, %14.5, e9.5
  27766. real$' %14.7 = LdConst [1] 1
  27767. real$' %14.8 = LdConst [1] 4
  27768. val' %14.9 = Colon %14.7, %14.8, elided
  27769. val' %14.10 = SetShared %14.9
  27770. int$' %14.11 = ForSeqSize %14.10
  27771. int$' %14.12 = LdConst [1] 0
  27772. goto BB15
  27773. BB13
  27774. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27775. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  27776. void Deopt %13.1
  27777. BB15
  27778. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  27779. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  27780. int$' %15.2 = Inc %15.1
  27781. int$' %15.3 = EnsureNamed %15.2
  27782. lgl' %15.4 = Lt %14.11, %15.3, elided
  27783. t %15.5 = AsTest %15.4
  27784. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  27785. BB19
  27786. goto BB24
  27787. BB16
  27788. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  27789. void StVar i, %16.0, e9.5
  27790. cls %16.2 = LdFun buildTreeDepth, e9.5
  27791. prom %16.3 = MkArg missing, Prom(8), e9.5
  27792. prom %16.4 = MkArg missing, Prom(9), e9.5
  27793. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  27794. BB18
  27795. cls' %18.0 = LdConst function (depth, random) { if (d...
  27796. t %18.1 = Identical %16.2, %18.0
  27797. void Assume %18.1, %16.5
  27798. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  27799. val^? %18.4 = LdVar array, e9.5
  27800. val %18.5 = Force %18.4, e9.5
  27801. val^? %18.6 = LdVar i, e9.5
  27802. val %18.7 = Force %18.6, e9.5
  27803. val^ %18.8 = EnsureNamed %18.3
  27804. val %18.9 = Force %18.8, e9.5
  27805. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  27806. void StVar array, %18.10, e9.5
  27807. goto BB15
  27808. BB17
  27809. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27810. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  27811. void Deopt %17.1
  27812. Prom 2:
  27813. BB0
  27814. env e0.0 = LdFunctionEnv
  27815. val^? %0.1 = LdVar depth, e0.0
  27816. val %0.2 = Force %0.1, e0.0
  27817. real$' %0.3 = LdConst [1] 1
  27818. goto BB1
  27819. BB1
  27820. val %1.0 = Sub %0.2, %0.3, e0.0
  27821. void Return %1.0
  27822. Prom 3:
  27823. BB0
  27824. env e0.0 = LdFunctionEnv
  27825. val^? %0.1 = LdVar random, e0.0
  27826. val %0.2 = Force %0.1, e0.0
  27827. void Return %0.2
  27828. Prom 4:
  27829. BB0
  27830. env e0.0 = LdFunctionEnv
  27831. cls %0.1 = LdFun nextRandom, e0.0
  27832. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27833. t %0.3 = Identical %0.1, %0.2
  27834. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27835. BB2
  27836. void Assume %0.3, %0.4
  27837. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27838. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27839. real$' %2.3 = LdConst [1] 10
  27840. goto BB3
  27841. BB1
  27842. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27843. void Deopt %1.0
  27844. BB3
  27845. val %3.0 = Force %2.2, e0.0
  27846. val %3.1 = Mod %3.0, %2.3, e0.0
  27847. real$' %3.2 = LdConst [1] 1
  27848. goto BB4
  27849. BB4
  27850. val %4.0 = Add %3.1, %3.2, e0.0
  27851. void Return %4.0
  27852. Prom 5:
  27853. BB0
  27854. env e0.0 = LdFunctionEnv
  27855. cls %0.1 = LdFun nextRandom, e0.0
  27856. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  27857. t %0.3 = Identical %0.1, %0.2
  27858. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27859. BB2
  27860. void Assume %0.3, %0.4
  27861. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  27862. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  27863. real$' %2.3 = LdConst [1] 10
  27864. goto BB3
  27865. BB1
  27866. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  27867. void Deopt %1.0
  27868. BB3
  27869. val %3.0 = Force %2.2, e0.0
  27870. val %3.1 = Mod %3.0, %2.3, e0.0
  27871. real$' %3.2 = LdConst [1] 1
  27872. goto BB4
  27873. BB4
  27874. val %4.0 = Add %3.1, %3.2, e0.0
  27875. void Return %4.0
  27876. Prom 8:
  27877. BB0
  27878. env e0.0 = LdFunctionEnv
  27879. val^? %0.1 = LdVar depth, e0.0
  27880. val %0.2 = Force %0.1, e0.0
  27881. real$' %0.3 = LdConst [1] 1
  27882. goto BB1
  27883. BB1
  27884. val %1.0 = Sub %0.2, %0.3, e0.0
  27885. void Return %1.0
  27886. Prom 9:
  27887. BB0
  27888. env e0.0 = LdFunctionEnv
  27889. val^? %0.1 = LdVar random, e0.0
  27890. val %0.2 = Force %0.1, e0.0
  27891. void Return %0.2
  27892. ├────── Constant folding: == 616
  27893. buildTreeDepth[0x7f92446010b0]
  27894. BB0
  27895. val^ %0.0 = LdArg 0
  27896. val^ %0.1 = LdArg 1
  27897. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  27898. val %0.3 = Force! %0.0, e0.2
  27899. real$' %0.4 = LdConst [1] 1
  27900. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  27901. BB2
  27902. t %2.0 = IsObject %0.3
  27903. void AssumeNot %2.0, %0.5
  27904. lgl' %2.2 = Eq %0.3, %0.4, elided
  27905. lgl %2.3 = AsLogical %2.2
  27906. t %2.4 = AsTest %2.3
  27907. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  27908. BB1
  27909. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  27910. void Deopt %1.0
  27911. BB22
  27912. cls %22.0 = LdFun c, e0.2
  27913. prom %22.1 = MkArg missing, Prom(4), e0.2
  27914. val^ %22.2 = Call %22.0(%22.1) e0.2
  27915. goto BB23
  27916. BB3
  27917. cls %3.0 = LdFun vector, e0.2
  27918. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  27919. BB23
  27920. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  27921. val %23.1 = Force %23.0, e0.2
  27922. void Return %23.1
  27923. BB5
  27924. cls' %5.0 = LdConst function (mode = "logical", length = ...
  27925. t %5.1 = Identical %3.0, %5.0
  27926. void Assume %5.1, %3.1
  27927. real$' %5.3 = LdConst [1] 4
  27928. str$' %5.4 = LdConst [1] "list"
  27929. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  27930. void StVar array, %5.5, e0.2
  27931. real$' %5.7 = LdConst [1] 4
  27932. real$' %5.8 = LdConst [1] 1
  27933. val' %5.9 = Colon %5.8, %5.7, elided
  27934. val' %5.10 = SetShared %5.9
  27935. int$' %5.11 = ForSeqSize %5.10
  27936. int$' %5.12 = LdConst [1] 0
  27937. goto BB6
  27938. BB4
  27939. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  27940. void Deopt %4.0
  27941. BB6
  27942. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  27943. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  27944. int$' %6.2 = Inc %6.1
  27945. int$' %6.3 = EnsureNamed %6.2
  27946. lgl' %6.4 = Lt %5.11, %6.3, elided
  27947. t %6.5 = AsTest %6.4
  27948. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  27949. BB21
  27950. goto BB23
  27951. BB7
  27952. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  27953. void StVar i, %7.0, e0.2
  27954. cls %7.2 = LdFun buildTreeDepth, e0.2
  27955. prom %7.3 = MkArg missing, Prom(2), e0.2
  27956. prom %7.4 = MkArg missing, Prom(3), e0.2
  27957. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  27958. BB9
  27959. cls' %9.0 = LdConst function (depth, random) { if (d...
  27960. t %9.1 = Identical %7.2, %9.0
  27961. void Assume %9.1, %7.5
  27962. val^? %9.3 = CastType %7.3
  27963. val^? %9.4 = CastType %7.4
  27964. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  27965. val %9.6 = Force %9.3, e9.5
  27966. real$' %9.7 = LdConst [1] 1
  27967. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  27968. BB8
  27969. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  27970. void Deopt %8.0
  27971. BB11
  27972. t %11.0 = IsObject %9.6
  27973. void AssumeNot %11.0, %9.8
  27974. lgl' %11.2 = Eq %9.6, %9.7, elided
  27975. lgl %11.3 = AsLogical %11.2
  27976. t %11.4 = AsTest %11.3
  27977. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  27978. BB10
  27979. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  27980. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  27981. void Deopt %10.1
  27982. BB20
  27983. cls %20.0 = LdFun c, e9.5
  27984. prom %20.1 = MkArg missing, Prom(5), e9.5
  27985. val^ %20.2 = Call %20.0(%20.1) e9.5
  27986. goto BB24
  27987. BB12
  27988. cls %12.0 = LdFun vector, e9.5
  27989. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  27990. BB24
  27991. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  27992. val %24.1 = Force %24.0, e9.5
  27993. val^? %24.2 = LdVar array, e0.2
  27994. val %24.3 = Force %24.2, e0.2
  27995. val^? %24.4 = LdVar i, e0.2
  27996. val %24.5 = Force %24.4, e0.2
  27997. val %24.6 = EnsureNamed %24.1
  27998. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  27999. void StVar array, %24.7, e0.2
  28000. goto BB6
  28001. BB14
  28002. cls' %14.0 = LdConst function (mode = "logical", length = ...
  28003. t %14.1 = Identical %12.0, %14.0
  28004. void Assume %14.1, %12.1
  28005. str$' %14.3 = LdConst [1] "list"
  28006. real$' %14.4 = LdConst [1] 4
  28007. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  28008. void StVar array, %14.5, e9.5
  28009. real$' %14.7 = LdConst [1] 1
  28010. real$' %14.8 = LdConst [1] 4
  28011. val' %14.9 = Colon %14.7, %14.8, elided
  28012. val' %14.10 = SetShared %14.9
  28013. int$' %14.11 = ForSeqSize %14.10
  28014. int$' %14.12 = LdConst [1] 0
  28015. goto BB15
  28016. BB13
  28017. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28018. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  28019. void Deopt %13.1
  28020. BB15
  28021. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  28022. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  28023. int$' %15.2 = Inc %15.1
  28024. int$' %15.3 = EnsureNamed %15.2
  28025. lgl' %15.4 = Lt %14.11, %15.3, elided
  28026. t %15.5 = AsTest %15.4
  28027. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  28028. BB19
  28029. goto BB24
  28030. BB16
  28031. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  28032. void StVar i, %16.0, e9.5
  28033. cls %16.2 = LdFun buildTreeDepth, e9.5
  28034. prom %16.3 = MkArg missing, Prom(8), e9.5
  28035. prom %16.4 = MkArg missing, Prom(9), e9.5
  28036. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  28037. BB18
  28038. cls' %18.0 = LdConst function (depth, random) { if (d...
  28039. t %18.1 = Identical %16.2, %18.0
  28040. void Assume %18.1, %16.5
  28041. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  28042. val^? %18.4 = LdVar array, e9.5
  28043. val %18.5 = Force %18.4, e9.5
  28044. val^? %18.6 = LdVar i, e9.5
  28045. val %18.7 = Force %18.6, e9.5
  28046. val^ %18.8 = EnsureNamed %18.3
  28047. val %18.9 = Force %18.8, e9.5
  28048. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  28049. void StVar array, %18.10, e9.5
  28050. goto BB15
  28051. BB17
  28052. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28053. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  28054. void Deopt %17.1
  28055. Prom 2:
  28056. BB0
  28057. env e0.0 = LdFunctionEnv
  28058. val^? %0.1 = LdVar depth, e0.0
  28059. val %0.2 = Force %0.1, e0.0
  28060. real$' %0.3 = LdConst [1] 1
  28061. goto BB1
  28062. BB1
  28063. val %1.0 = Sub %0.2, %0.3, e0.0
  28064. void Return %1.0
  28065. Prom 3:
  28066. BB0
  28067. env e0.0 = LdFunctionEnv
  28068. val^? %0.1 = LdVar random, e0.0
  28069. val %0.2 = Force %0.1, e0.0
  28070. void Return %0.2
  28071. Prom 4:
  28072. BB0
  28073. env e0.0 = LdFunctionEnv
  28074. cls %0.1 = LdFun nextRandom, e0.0
  28075. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28076. t %0.3 = Identical %0.1, %0.2
  28077. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28078. BB2
  28079. void Assume %0.3, %0.4
  28080. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28081. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28082. real$' %2.3 = LdConst [1] 10
  28083. goto BB3
  28084. BB1
  28085. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28086. void Deopt %1.0
  28087. BB3
  28088. val %3.0 = Force %2.2, e0.0
  28089. val %3.1 = Mod %3.0, %2.3, e0.0
  28090. real$' %3.2 = LdConst [1] 1
  28091. goto BB4
  28092. BB4
  28093. val %4.0 = Add %3.1, %3.2, e0.0
  28094. void Return %4.0
  28095. Prom 5:
  28096. BB0
  28097. env e0.0 = LdFunctionEnv
  28098. cls %0.1 = LdFun nextRandom, e0.0
  28099. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28100. t %0.3 = Identical %0.1, %0.2
  28101. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28102. BB2
  28103. void Assume %0.3, %0.4
  28104. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28105. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28106. real$' %2.3 = LdConst [1] 10
  28107. goto BB3
  28108. BB1
  28109. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28110. void Deopt %1.0
  28111. BB3
  28112. val %3.0 = Force %2.2, e0.0
  28113. val %3.1 = Mod %3.0, %2.3, e0.0
  28114. real$' %3.2 = LdConst [1] 1
  28115. goto BB4
  28116. BB4
  28117. val %4.0 = Add %3.1, %3.2, e0.0
  28118. void Return %4.0
  28119. Prom 8:
  28120. BB0
  28121. env e0.0 = LdFunctionEnv
  28122. val^? %0.1 = LdVar depth, e0.0
  28123. val %0.2 = Force %0.1, e0.0
  28124. real$' %0.3 = LdConst [1] 1
  28125. goto BB1
  28126. BB1
  28127. val %1.0 = Sub %0.2, %0.3, e0.0
  28128. void Return %1.0
  28129. Prom 9:
  28130. BB0
  28131. env e0.0 = LdFunctionEnv
  28132. val^? %0.1 = LdVar random, e0.0
  28133. val %0.2 = Force %0.1, e0.0
  28134. void Return %0.2
  28135. ├────── Cleanup redundant operations: == 623
  28136. buildTreeDepth[0x7f92446010b0]
  28137. BB0
  28138. val^ %0.0 = LdArg 0
  28139. val^ %0.1 = LdArg 1
  28140. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  28141. val %0.3 = Force! %0.0, e0.2
  28142. real$' %0.4 = LdConst [1] 1
  28143. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28144. BB2
  28145. t %2.0 = IsObject %0.3
  28146. void AssumeNot %2.0, %0.5
  28147. lgl' %2.2 = Eq %0.3, %0.4, elided
  28148. lgl %2.3 = AsLogical %2.2
  28149. t %2.4 = AsTest %2.3
  28150. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  28151. BB1
  28152. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  28153. void Deopt %1.0
  28154. BB22
  28155. cls %22.0 = LdFun c, e0.2
  28156. prom %22.1 = MkArg missing, Prom(4), e0.2
  28157. val^ %22.2 = Call %22.0(%22.1) e0.2
  28158. goto BB23
  28159. BB3
  28160. cls %3.0 = LdFun vector, e0.2
  28161. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  28162. BB23
  28163. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  28164. val %23.1 = Force %23.0, e0.2
  28165. void Return %23.1
  28166. BB5
  28167. cls' %5.0 = LdConst function (mode = "logical", length = ...
  28168. t %5.1 = Identical %3.0, %5.0
  28169. void Assume %5.1, %3.1
  28170. real$' %5.3 = LdConst [1] 4
  28171. str$' %5.4 = LdConst [1] "list"
  28172. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  28173. void StVar array, %5.5, e0.2
  28174. real$' %5.7 = LdConst [1] 4
  28175. real$' %5.8 = LdConst [1] 1
  28176. val' %5.9 = Colon %5.8, %5.7, elided
  28177. val' %5.10 = SetShared %5.9
  28178. int$' %5.11 = ForSeqSize %5.10
  28179. int$' %5.12 = LdConst [1] 0
  28180. goto BB6
  28181. BB4
  28182. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  28183. void Deopt %4.0
  28184. BB6
  28185. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  28186. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  28187. int$' %6.2 = Inc %6.1
  28188. int$' %6.3 = EnsureNamed %6.2
  28189. lgl' %6.4 = Lt %5.11, %6.3, elided
  28190. t %6.5 = AsTest %6.4
  28191. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  28192. BB21
  28193. goto BB23
  28194. BB7
  28195. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  28196. void StVar i, %7.0, e0.2
  28197. cls %7.2 = LdFun buildTreeDepth, e0.2
  28198. prom %7.3 = MkArg missing, Prom(2), e0.2
  28199. prom %7.4 = MkArg missing, Prom(3), e0.2
  28200. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  28201. BB9
  28202. cls' %9.0 = LdConst function (depth, random) { if (d...
  28203. t %9.1 = Identical %7.2, %9.0
  28204. void Assume %9.1, %7.5
  28205. val^? %9.3 = CastType %7.3
  28206. val^? %9.4 = CastType %7.4
  28207. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  28208. val %9.6 = Force %9.3, e9.5
  28209. real$' %9.7 = LdConst [1] 1
  28210. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  28211. BB8
  28212. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  28213. void Deopt %8.0
  28214. BB11
  28215. t %11.0 = IsObject %9.6
  28216. void AssumeNot %11.0, %9.8
  28217. lgl' %11.2 = Eq %9.6, %9.7, elided
  28218. lgl %11.3 = AsLogical %11.2
  28219. t %11.4 = AsTest %11.3
  28220. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  28221. BB10
  28222. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28223. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  28224. void Deopt %10.1
  28225. BB20
  28226. cls %20.0 = LdFun c, e9.5
  28227. prom %20.1 = MkArg missing, Prom(5), e9.5
  28228. val^ %20.2 = Call %20.0(%20.1) e9.5
  28229. goto BB24
  28230. BB12
  28231. cls %12.0 = LdFun vector, e9.5
  28232. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  28233. BB24
  28234. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  28235. val %24.1 = Force %24.0, e9.5
  28236. val^? %24.2 = LdVar array, e0.2
  28237. val %24.3 = Force %24.2, e0.2
  28238. val^? %24.4 = LdVar i, e0.2
  28239. val %24.5 = Force %24.4, e0.2
  28240. val %24.6 = EnsureNamed %24.1
  28241. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  28242. void StVar array, %24.7, e0.2
  28243. goto BB6
  28244. BB14
  28245. cls' %14.0 = LdConst function (mode = "logical", length = ...
  28246. t %14.1 = Identical %12.0, %14.0
  28247. void Assume %14.1, %12.1
  28248. str$' %14.3 = LdConst [1] "list"
  28249. real$' %14.4 = LdConst [1] 4
  28250. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  28251. void StVar array, %14.5, e9.5
  28252. real$' %14.7 = LdConst [1] 1
  28253. real$' %14.8 = LdConst [1] 4
  28254. val' %14.9 = Colon %14.7, %14.8, elided
  28255. val' %14.10 = SetShared %14.9
  28256. int$' %14.11 = ForSeqSize %14.10
  28257. int$' %14.12 = LdConst [1] 0
  28258. goto BB15
  28259. BB13
  28260. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28261. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  28262. void Deopt %13.1
  28263. BB15
  28264. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  28265. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  28266. int$' %15.2 = Inc %15.1
  28267. int$' %15.3 = EnsureNamed %15.2
  28268. lgl' %15.4 = Lt %14.11, %15.3, elided
  28269. t %15.5 = AsTest %15.4
  28270. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  28271. BB19
  28272. goto BB24
  28273. BB16
  28274. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  28275. void StVar i, %16.0, e9.5
  28276. cls %16.2 = LdFun buildTreeDepth, e9.5
  28277. prom %16.3 = MkArg missing, Prom(8), e9.5
  28278. prom %16.4 = MkArg missing, Prom(9), e9.5
  28279. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  28280. BB18
  28281. cls' %18.0 = LdConst function (depth, random) { if (d...
  28282. t %18.1 = Identical %16.2, %18.0
  28283. void Assume %18.1, %16.5
  28284. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  28285. val^? %18.4 = LdVar array, e9.5
  28286. val %18.5 = Force %18.4, e9.5
  28287. val^? %18.6 = LdVar i, e9.5
  28288. val %18.7 = Force %18.6, e9.5
  28289. val^ %18.8 = EnsureNamed %18.3
  28290. val %18.9 = Force %18.8, e9.5
  28291. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  28292. void StVar array, %18.10, e9.5
  28293. goto BB15
  28294. BB17
  28295. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28296. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  28297. void Deopt %17.1
  28298. Prom 2:
  28299. BB0
  28300. env e0.0 = LdFunctionEnv
  28301. val^? %0.1 = LdVar depth, e0.0
  28302. val %0.2 = Force %0.1, e0.0
  28303. real$' %0.3 = LdConst [1] 1
  28304. goto BB1
  28305. BB1
  28306. val %1.0 = Sub %0.2, %0.3, e0.0
  28307. void Return %1.0
  28308. Prom 3:
  28309. BB0
  28310. env e0.0 = LdFunctionEnv
  28311. val^? %0.1 = LdVar random, e0.0
  28312. val %0.2 = Force %0.1, e0.0
  28313. void Return %0.2
  28314. Prom 4:
  28315. BB0
  28316. env e0.0 = LdFunctionEnv
  28317. cls %0.1 = LdFun nextRandom, e0.0
  28318. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28319. t %0.3 = Identical %0.1, %0.2
  28320. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28321. BB2
  28322. void Assume %0.3, %0.4
  28323. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28324. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28325. real$' %2.3 = LdConst [1] 10
  28326. goto BB3
  28327. BB1
  28328. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28329. void Deopt %1.0
  28330. BB3
  28331. val %3.0 = Force %2.2, e0.0
  28332. val %3.1 = Mod %3.0, %2.3, e0.0
  28333. real$' %3.2 = LdConst [1] 1
  28334. goto BB4
  28335. BB4
  28336. val %4.0 = Add %3.1, %3.2, e0.0
  28337. void Return %4.0
  28338. Prom 5:
  28339. BB0
  28340. env e0.0 = LdFunctionEnv
  28341. cls %0.1 = LdFun nextRandom, e0.0
  28342. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28343. t %0.3 = Identical %0.1, %0.2
  28344. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28345. BB2
  28346. void Assume %0.3, %0.4
  28347. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28348. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28349. real$' %2.3 = LdConst [1] 10
  28350. goto BB3
  28351. BB1
  28352. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28353. void Deopt %1.0
  28354. BB3
  28355. val %3.0 = Force %2.2, e0.0
  28356. val %3.1 = Mod %3.0, %2.3, e0.0
  28357. real$' %3.2 = LdConst [1] 1
  28358. goto BB4
  28359. BB4
  28360. val %4.0 = Add %3.1, %3.2, e0.0
  28361. void Return %4.0
  28362. Prom 8:
  28363. BB0
  28364. env e0.0 = LdFunctionEnv
  28365. val^? %0.1 = LdVar depth, e0.0
  28366. val %0.2 = Force %0.1, e0.0
  28367. real$' %0.3 = LdConst [1] 1
  28368. goto BB1
  28369. BB1
  28370. val %1.0 = Sub %0.2, %0.3, e0.0
  28371. void Return %1.0
  28372. Prom 9:
  28373. BB0
  28374. env e0.0 = LdFunctionEnv
  28375. val^? %0.1 = LdVar random, e0.0
  28376. val %0.2 = Force %0.1, e0.0
  28377. void Return %0.2
  28378. ├────── Delay instructions: == 630
  28379. buildTreeDepth[0x7f92446010b0]
  28380. BB0
  28381. val^ %0.0 = LdArg 0
  28382. val^ %0.1 = LdArg 1
  28383. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  28384. val %0.3 = Force! %0.0, e0.2
  28385. real$' %0.4 = LdConst [1] 1
  28386. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28387. BB2
  28388. t %2.0 = IsObject %0.3
  28389. void AssumeNot %2.0, %0.5
  28390. lgl' %2.2 = Eq %0.3, %0.4, elided
  28391. lgl %2.3 = AsLogical %2.2
  28392. t %2.4 = AsTest %2.3
  28393. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  28394. BB1
  28395. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  28396. void Deopt %1.0
  28397. BB22
  28398. cls %22.0 = LdFun c, e0.2
  28399. prom %22.1 = MkArg missing, Prom(4), e0.2
  28400. val^ %22.2 = Call %22.0(%22.1) e0.2
  28401. goto BB23
  28402. BB3
  28403. cls %3.0 = LdFun vector, e0.2
  28404. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  28405. BB23
  28406. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  28407. val %23.1 = Force %23.0, e0.2
  28408. void Return %23.1
  28409. BB5
  28410. cls' %5.0 = LdConst function (mode = "logical", length = ...
  28411. t %5.1 = Identical %3.0, %5.0
  28412. void Assume %5.1, %3.1
  28413. str$' %5.3 = LdConst [1] "list"
  28414. real$' %5.4 = LdConst [1] 4
  28415. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  28416. void StVar array, %5.5, e0.2
  28417. real$' %5.7 = LdConst [1] 1
  28418. real$' %5.8 = LdConst [1] 4
  28419. val' %5.9 = Colon %5.7, %5.8, elided
  28420. val' %5.10 = SetShared %5.9
  28421. int$' %5.11 = ForSeqSize %5.10
  28422. int$' %5.12 = LdConst [1] 0
  28423. goto BB6
  28424. BB4
  28425. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  28426. void Deopt %4.0
  28427. BB6
  28428. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  28429. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  28430. int$' %6.2 = Inc %6.1
  28431. int$' %6.3 = EnsureNamed %6.2
  28432. lgl' %6.4 = Lt %5.11, %6.3, elided
  28433. t %6.5 = AsTest %6.4
  28434. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  28435. BB21
  28436. goto BB23
  28437. BB7
  28438. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  28439. void StVar i, %7.0, e0.2
  28440. cls %7.2 = LdFun buildTreeDepth, e0.2
  28441. prom %7.3 = MkArg missing, Prom(2), e0.2
  28442. prom %7.4 = MkArg missing, Prom(3), e0.2
  28443. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  28444. BB9
  28445. cls' %9.0 = LdConst function (depth, random) { if (d...
  28446. t %9.1 = Identical %7.2, %9.0
  28447. void Assume %9.1, %7.5
  28448. val^? %9.3 = CastType %7.3
  28449. val^? %9.4 = CastType %7.4
  28450. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  28451. val %9.6 = Force %9.3, e9.5
  28452. real$' %9.7 = LdConst [1] 1
  28453. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  28454. BB8
  28455. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  28456. void Deopt %8.0
  28457. BB11
  28458. t %11.0 = IsObject %9.6
  28459. void AssumeNot %11.0, %9.8
  28460. lgl' %11.2 = Eq %9.6, %9.7, elided
  28461. lgl %11.3 = AsLogical %11.2
  28462. t %11.4 = AsTest %11.3
  28463. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  28464. BB10
  28465. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28466. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  28467. void Deopt %10.1
  28468. BB20
  28469. cls %20.0 = LdFun c, e9.5
  28470. prom %20.1 = MkArg missing, Prom(5), e9.5
  28471. val^ %20.2 = Call %20.0(%20.1) e9.5
  28472. goto BB24
  28473. BB12
  28474. cls %12.0 = LdFun vector, e9.5
  28475. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  28476. BB24
  28477. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  28478. val %24.1 = Force %24.0, e9.5
  28479. val^? %24.2 = LdVar array, e0.2
  28480. val %24.3 = Force %24.2, e0.2
  28481. val^? %24.4 = LdVar i, e0.2
  28482. val %24.5 = Force %24.4, e0.2
  28483. val %24.6 = EnsureNamed %24.1
  28484. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  28485. void StVar array, %24.7, e0.2
  28486. goto BB6
  28487. BB14
  28488. cls' %14.0 = LdConst function (mode = "logical", length = ...
  28489. t %14.1 = Identical %12.0, %14.0
  28490. void Assume %14.1, %12.1
  28491. real$' %14.3 = LdConst [1] 4
  28492. str$' %14.4 = LdConst [1] "list"
  28493. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  28494. void StVar array, %14.5, e9.5
  28495. real$' %14.7 = LdConst [1] 4
  28496. real$' %14.8 = LdConst [1] 1
  28497. val' %14.9 = Colon %14.8, %14.7, elided
  28498. val' %14.10 = SetShared %14.9
  28499. int$' %14.11 = ForSeqSize %14.10
  28500. int$' %14.12 = LdConst [1] 0
  28501. goto BB15
  28502. BB13
  28503. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28504. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  28505. void Deopt %13.1
  28506. BB15
  28507. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  28508. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  28509. int$' %15.2 = Inc %15.1
  28510. int$' %15.3 = EnsureNamed %15.2
  28511. lgl' %15.4 = Lt %14.11, %15.3, elided
  28512. t %15.5 = AsTest %15.4
  28513. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  28514. BB19
  28515. goto BB24
  28516. BB16
  28517. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  28518. void StVar i, %16.0, e9.5
  28519. cls %16.2 = LdFun buildTreeDepth, e9.5
  28520. prom %16.3 = MkArg missing, Prom(8), e9.5
  28521. prom %16.4 = MkArg missing, Prom(9), e9.5
  28522. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  28523. BB18
  28524. cls' %18.0 = LdConst function (depth, random) { if (d...
  28525. t %18.1 = Identical %16.2, %18.0
  28526. void Assume %18.1, %16.5
  28527. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  28528. val^? %18.4 = LdVar array, e9.5
  28529. val %18.5 = Force %18.4, e9.5
  28530. val^? %18.6 = LdVar i, e9.5
  28531. val %18.7 = Force %18.6, e9.5
  28532. val^ %18.8 = EnsureNamed %18.3
  28533. val %18.9 = Force %18.8, e9.5
  28534. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  28535. void StVar array, %18.10, e9.5
  28536. goto BB15
  28537. BB17
  28538. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28539. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  28540. void Deopt %17.1
  28541. Prom 2:
  28542. BB0
  28543. env e0.0 = LdFunctionEnv
  28544. val^? %0.1 = LdVar depth, e0.0
  28545. val %0.2 = Force %0.1, e0.0
  28546. real$' %0.3 = LdConst [1] 1
  28547. goto BB1
  28548. BB1
  28549. val %1.0 = Sub %0.2, %0.3, e0.0
  28550. void Return %1.0
  28551. Prom 3:
  28552. BB0
  28553. env e0.0 = LdFunctionEnv
  28554. val^? %0.1 = LdVar random, e0.0
  28555. val %0.2 = Force %0.1, e0.0
  28556. void Return %0.2
  28557. Prom 4:
  28558. BB0
  28559. env e0.0 = LdFunctionEnv
  28560. cls %0.1 = LdFun nextRandom, e0.0
  28561. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28562. t %0.3 = Identical %0.1, %0.2
  28563. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28564. BB2
  28565. void Assume %0.3, %0.4
  28566. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28567. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28568. real$' %2.3 = LdConst [1] 10
  28569. goto BB3
  28570. BB1
  28571. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28572. void Deopt %1.0
  28573. BB3
  28574. val %3.0 = Force %2.2, e0.0
  28575. val %3.1 = Mod %3.0, %2.3, e0.0
  28576. real$' %3.2 = LdConst [1] 1
  28577. goto BB4
  28578. BB4
  28579. val %4.0 = Add %3.1, %3.2, e0.0
  28580. void Return %4.0
  28581. Prom 5:
  28582. BB0
  28583. env e0.0 = LdFunctionEnv
  28584. cls %0.1 = LdFun nextRandom, e0.0
  28585. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28586. t %0.3 = Identical %0.1, %0.2
  28587. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28588. BB2
  28589. void Assume %0.3, %0.4
  28590. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28591. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28592. real$' %2.3 = LdConst [1] 10
  28593. goto BB3
  28594. BB1
  28595. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28596. void Deopt %1.0
  28597. BB3
  28598. val %3.0 = Force %2.2, e0.0
  28599. val %3.1 = Mod %3.0, %2.3, e0.0
  28600. real$' %3.2 = LdConst [1] 1
  28601. goto BB4
  28602. BB4
  28603. val %4.0 = Add %3.1, %3.2, e0.0
  28604. void Return %4.0
  28605. Prom 8:
  28606. BB0
  28607. env e0.0 = LdFunctionEnv
  28608. val^? %0.1 = LdVar depth, e0.0
  28609. val %0.2 = Force %0.1, e0.0
  28610. real$' %0.3 = LdConst [1] 1
  28611. goto BB1
  28612. BB1
  28613. val %1.0 = Sub %0.2, %0.3, e0.0
  28614. void Return %1.0
  28615. Prom 9:
  28616. BB0
  28617. env e0.0 = LdFunctionEnv
  28618. val^? %0.1 = LdVar random, e0.0
  28619. val %0.2 = Force %0.1, e0.0
  28620. void Return %0.2
  28621. ├────── Elide environments not needed: == 637
  28622. buildTreeDepth[0x7f92446010b0]
  28623. BB0
  28624. val^ %0.0 = LdArg 0
  28625. val^ %0.1 = LdArg 1
  28626. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  28627. val %0.3 = Force! %0.0, e0.2
  28628. real$' %0.4 = LdConst [1] 1
  28629. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28630. BB2
  28631. t %2.0 = IsObject %0.3
  28632. void AssumeNot %2.0, %0.5
  28633. lgl' %2.2 = Eq %0.3, %0.4, elided
  28634. lgl %2.3 = AsLogical %2.2
  28635. t %2.4 = AsTest %2.3
  28636. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  28637. BB1
  28638. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  28639. void Deopt %1.0
  28640. BB22
  28641. cls %22.0 = LdFun c, e0.2
  28642. prom %22.1 = MkArg missing, Prom(4), e0.2
  28643. val^ %22.2 = Call %22.0(%22.1) e0.2
  28644. goto BB23
  28645. BB3
  28646. cls %3.0 = LdFun vector, e0.2
  28647. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  28648. BB23
  28649. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  28650. val %23.1 = Force %23.0, e0.2
  28651. void Return %23.1
  28652. BB5
  28653. cls' %5.0 = LdConst function (mode = "logical", length = ...
  28654. t %5.1 = Identical %3.0, %5.0
  28655. void Assume %5.1, %3.1
  28656. str$' %5.3 = LdConst [1] "list"
  28657. real$' %5.4 = LdConst [1] 4
  28658. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  28659. void StVar array, %5.5, e0.2
  28660. real$' %5.7 = LdConst [1] 1
  28661. real$' %5.8 = LdConst [1] 4
  28662. val' %5.9 = Colon %5.7, %5.8, elided
  28663. val' %5.10 = SetShared %5.9
  28664. int$' %5.11 = ForSeqSize %5.10
  28665. int$' %5.12 = LdConst [1] 0
  28666. goto BB6
  28667. BB4
  28668. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  28669. void Deopt %4.0
  28670. BB6
  28671. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  28672. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  28673. int$' %6.2 = Inc %6.1
  28674. int$' %6.3 = EnsureNamed %6.2
  28675. lgl' %6.4 = Lt %5.11, %6.3, elided
  28676. t %6.5 = AsTest %6.4
  28677. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  28678. BB21
  28679. goto BB23
  28680. BB7
  28681. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  28682. void StVar i, %7.0, e0.2
  28683. cls %7.2 = LdFun buildTreeDepth, e0.2
  28684. prom %7.3 = MkArg missing, Prom(2), e0.2
  28685. prom %7.4 = MkArg missing, Prom(3), e0.2
  28686. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  28687. BB9
  28688. cls' %9.0 = LdConst function (depth, random) { if (d...
  28689. t %9.1 = Identical %7.2, %9.0
  28690. void Assume %9.1, %7.5
  28691. val^? %9.3 = CastType %7.3
  28692. val^? %9.4 = CastType %7.4
  28693. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  28694. val %9.6 = Force %9.3, e9.5
  28695. real$' %9.7 = LdConst [1] 1
  28696. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  28697. BB8
  28698. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  28699. void Deopt %8.0
  28700. BB11
  28701. t %11.0 = IsObject %9.6
  28702. void AssumeNot %11.0, %9.8
  28703. lgl' %11.2 = Eq %9.6, %9.7, elided
  28704. lgl %11.3 = AsLogical %11.2
  28705. t %11.4 = AsTest %11.3
  28706. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  28707. BB10
  28708. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28709. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  28710. void Deopt %10.1
  28711. BB20
  28712. cls %20.0 = LdFun c, e9.5
  28713. prom %20.1 = MkArg missing, Prom(5), e9.5
  28714. val^ %20.2 = Call %20.0(%20.1) e9.5
  28715. goto BB24
  28716. BB12
  28717. cls %12.0 = LdFun vector, e9.5
  28718. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  28719. BB24
  28720. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  28721. val %24.1 = Force %24.0, e9.5
  28722. val^? %24.2 = LdVar array, e0.2
  28723. val %24.3 = Force %24.2, e0.2
  28724. val^? %24.4 = LdVar i, e0.2
  28725. val %24.5 = Force %24.4, e0.2
  28726. val %24.6 = EnsureNamed %24.1
  28727. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  28728. void StVar array, %24.7, e0.2
  28729. goto BB6
  28730. BB14
  28731. cls' %14.0 = LdConst function (mode = "logical", length = ...
  28732. t %14.1 = Identical %12.0, %14.0
  28733. void Assume %14.1, %12.1
  28734. real$' %14.3 = LdConst [1] 4
  28735. str$' %14.4 = LdConst [1] "list"
  28736. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  28737. void StVar array, %14.5, e9.5
  28738. real$' %14.7 = LdConst [1] 4
  28739. real$' %14.8 = LdConst [1] 1
  28740. val' %14.9 = Colon %14.8, %14.7, elided
  28741. val' %14.10 = SetShared %14.9
  28742. int$' %14.11 = ForSeqSize %14.10
  28743. int$' %14.12 = LdConst [1] 0
  28744. goto BB15
  28745. BB13
  28746. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28747. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  28748. void Deopt %13.1
  28749. BB15
  28750. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  28751. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  28752. int$' %15.2 = Inc %15.1
  28753. int$' %15.3 = EnsureNamed %15.2
  28754. lgl' %15.4 = Lt %14.11, %15.3, elided
  28755. t %15.5 = AsTest %15.4
  28756. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  28757. BB19
  28758. goto BB24
  28759. BB16
  28760. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  28761. void StVar i, %16.0, e9.5
  28762. cls %16.2 = LdFun buildTreeDepth, e9.5
  28763. prom %16.3 = MkArg missing, Prom(8), e9.5
  28764. prom %16.4 = MkArg missing, Prom(9), e9.5
  28765. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  28766. BB18
  28767. cls' %18.0 = LdConst function (depth, random) { if (d...
  28768. t %18.1 = Identical %16.2, %18.0
  28769. void Assume %18.1, %16.5
  28770. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  28771. val^? %18.4 = LdVar array, e9.5
  28772. val %18.5 = Force %18.4, e9.5
  28773. val^? %18.6 = LdVar i, e9.5
  28774. val %18.7 = Force %18.6, e9.5
  28775. val^ %18.8 = EnsureNamed %18.3
  28776. val %18.9 = Force %18.8, e9.5
  28777. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  28778. void StVar array, %18.10, e9.5
  28779. goto BB15
  28780. BB17
  28781. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28782. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  28783. void Deopt %17.1
  28784. Prom 2:
  28785. BB0
  28786. env e0.0 = LdFunctionEnv
  28787. val^? %0.1 = LdVar depth, e0.0
  28788. val %0.2 = Force %0.1, e0.0
  28789. real$' %0.3 = LdConst [1] 1
  28790. goto BB1
  28791. BB1
  28792. val %1.0 = Sub %0.2, %0.3, e0.0
  28793. void Return %1.0
  28794. Prom 3:
  28795. BB0
  28796. env e0.0 = LdFunctionEnv
  28797. val^? %0.1 = LdVar random, e0.0
  28798. val %0.2 = Force %0.1, e0.0
  28799. void Return %0.2
  28800. Prom 4:
  28801. BB0
  28802. env e0.0 = LdFunctionEnv
  28803. cls %0.1 = LdFun nextRandom, e0.0
  28804. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28805. t %0.3 = Identical %0.1, %0.2
  28806. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28807. BB2
  28808. void Assume %0.3, %0.4
  28809. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28810. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28811. real$' %2.3 = LdConst [1] 10
  28812. goto BB3
  28813. BB1
  28814. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28815. void Deopt %1.0
  28816. BB3
  28817. val %3.0 = Force %2.2, e0.0
  28818. val %3.1 = Mod %3.0, %2.3, e0.0
  28819. real$' %3.2 = LdConst [1] 1
  28820. goto BB4
  28821. BB4
  28822. val %4.0 = Add %3.1, %3.2, e0.0
  28823. void Return %4.0
  28824. Prom 5:
  28825. BB0
  28826. env e0.0 = LdFunctionEnv
  28827. cls %0.1 = LdFun nextRandom, e0.0
  28828. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  28829. t %0.3 = Identical %0.1, %0.2
  28830. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28831. BB2
  28832. void Assume %0.3, %0.4
  28833. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  28834. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  28835. real$' %2.3 = LdConst [1] 10
  28836. goto BB3
  28837. BB1
  28838. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  28839. void Deopt %1.0
  28840. BB3
  28841. val %3.0 = Force %2.2, e0.0
  28842. val %3.1 = Mod %3.0, %2.3, e0.0
  28843. real$' %3.2 = LdConst [1] 1
  28844. goto BB4
  28845. BB4
  28846. val %4.0 = Add %3.1, %3.2, e0.0
  28847. void Return %4.0
  28848. Prom 8:
  28849. BB0
  28850. env e0.0 = LdFunctionEnv
  28851. val^? %0.1 = LdVar depth, e0.0
  28852. val %0.2 = Force %0.1, e0.0
  28853. real$' %0.3 = LdConst [1] 1
  28854. goto BB1
  28855. BB1
  28856. val %1.0 = Sub %0.2, %0.3, e0.0
  28857. void Return %1.0
  28858. Prom 9:
  28859. BB0
  28860. env e0.0 = LdFunctionEnv
  28861. val^? %0.1 = LdVar random, e0.0
  28862. val %0.2 = Force %0.1, e0.0
  28863. void Return %0.2
  28864. ├────── Move environment creation as far as possible: == 644
  28865. buildTreeDepth[0x7f92446010b0]
  28866. BB0
  28867. val^ %0.0 = LdArg 0
  28868. val^ %0.1 = LdArg 1
  28869. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  28870. val %0.3 = Force! %0.0, e0.2
  28871. real$' %0.4 = LdConst [1] 1
  28872. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  28873. BB2
  28874. t %2.0 = IsObject %0.3
  28875. void AssumeNot %2.0, %0.5
  28876. lgl' %2.2 = Eq %0.3, %0.4, elided
  28877. lgl %2.3 = AsLogical %2.2
  28878. t %2.4 = AsTest %2.3
  28879. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  28880. BB1
  28881. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  28882. void Deopt %1.0
  28883. BB22
  28884. cls %22.0 = LdFun c, e0.2
  28885. prom %22.1 = MkArg missing, Prom(4), e0.2
  28886. val^ %22.2 = Call %22.0(%22.1) e0.2
  28887. goto BB23
  28888. BB3
  28889. cls %3.0 = LdFun vector, e0.2
  28890. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  28891. BB23
  28892. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  28893. val %23.1 = Force %23.0, e0.2
  28894. void Return %23.1
  28895. BB5
  28896. cls' %5.0 = LdConst function (mode = "logical", length = ...
  28897. t %5.1 = Identical %3.0, %5.0
  28898. void Assume %5.1, %3.1
  28899. str$' %5.3 = LdConst [1] "list"
  28900. real$' %5.4 = LdConst [1] 4
  28901. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  28902. void StVar array, %5.5, e0.2
  28903. real$' %5.7 = LdConst [1] 1
  28904. real$' %5.8 = LdConst [1] 4
  28905. val' %5.9 = Colon %5.7, %5.8, elided
  28906. val' %5.10 = SetShared %5.9
  28907. int$' %5.11 = ForSeqSize %5.10
  28908. int$' %5.12 = LdConst [1] 0
  28909. goto BB6
  28910. BB4
  28911. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  28912. void Deopt %4.0
  28913. BB6
  28914. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  28915. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  28916. int$' %6.2 = Inc %6.1
  28917. int$' %6.3 = EnsureNamed %6.2
  28918. lgl' %6.4 = Lt %5.11, %6.3, elided
  28919. t %6.5 = AsTest %6.4
  28920. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  28921. BB21
  28922. goto BB23
  28923. BB7
  28924. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  28925. void StVar i, %7.0, e0.2
  28926. cls %7.2 = LdFun buildTreeDepth, e0.2
  28927. prom %7.3 = MkArg missing, Prom(2), e0.2
  28928. prom %7.4 = MkArg missing, Prom(3), e0.2
  28929. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  28930. BB9
  28931. cls' %9.0 = LdConst function (depth, random) { if (d...
  28932. t %9.1 = Identical %7.2, %9.0
  28933. void Assume %9.1, %7.5
  28934. val^? %9.3 = CastType %7.3
  28935. val^? %9.4 = CastType %7.4
  28936. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  28937. val %9.6 = Force %9.3, e9.5
  28938. real$' %9.7 = LdConst [1] 1
  28939. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  28940. BB8
  28941. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  28942. void Deopt %8.0
  28943. BB11
  28944. t %11.0 = IsObject %9.6
  28945. void AssumeNot %11.0, %9.8
  28946. lgl' %11.2 = Eq %9.6, %9.7, elided
  28947. lgl %11.3 = AsLogical %11.2
  28948. t %11.4 = AsTest %11.3
  28949. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  28950. BB10
  28951. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28952. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  28953. void Deopt %10.1
  28954. BB20
  28955. cls %20.0 = LdFun c, e9.5
  28956. prom %20.1 = MkArg missing, Prom(5), e9.5
  28957. val^ %20.2 = Call %20.0(%20.1) e9.5
  28958. goto BB24
  28959. BB12
  28960. cls %12.0 = LdFun vector, e9.5
  28961. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  28962. BB24
  28963. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  28964. val %24.1 = Force %24.0, e9.5
  28965. val^? %24.2 = LdVar array, e0.2
  28966. val %24.3 = Force %24.2, e0.2
  28967. val^? %24.4 = LdVar i, e0.2
  28968. val %24.5 = Force %24.4, e0.2
  28969. val %24.6 = EnsureNamed %24.1
  28970. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  28971. void StVar array, %24.7, e0.2
  28972. goto BB6
  28973. BB14
  28974. cls' %14.0 = LdConst function (mode = "logical", length = ...
  28975. t %14.1 = Identical %12.0, %14.0
  28976. void Assume %14.1, %12.1
  28977. real$' %14.3 = LdConst [1] 4
  28978. str$' %14.4 = LdConst [1] "list"
  28979. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  28980. void StVar array, %14.5, e9.5
  28981. real$' %14.7 = LdConst [1] 4
  28982. real$' %14.8 = LdConst [1] 1
  28983. val' %14.9 = Colon %14.8, %14.7, elided
  28984. val' %14.10 = SetShared %14.9
  28985. int$' %14.11 = ForSeqSize %14.10
  28986. int$' %14.12 = LdConst [1] 0
  28987. goto BB15
  28988. BB13
  28989. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  28990. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  28991. void Deopt %13.1
  28992. BB15
  28993. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  28994. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  28995. int$' %15.2 = Inc %15.1
  28996. int$' %15.3 = EnsureNamed %15.2
  28997. lgl' %15.4 = Lt %14.11, %15.3, elided
  28998. t %15.5 = AsTest %15.4
  28999. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  29000. BB19
  29001. goto BB24
  29002. BB16
  29003. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  29004. void StVar i, %16.0, e9.5
  29005. cls %16.2 = LdFun buildTreeDepth, e9.5
  29006. prom %16.3 = MkArg missing, Prom(8), e9.5
  29007. prom %16.4 = MkArg missing, Prom(9), e9.5
  29008. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  29009. BB18
  29010. cls' %18.0 = LdConst function (depth, random) { if (d...
  29011. t %18.1 = Identical %16.2, %18.0
  29012. void Assume %18.1, %16.5
  29013. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  29014. val^? %18.4 = LdVar array, e9.5
  29015. val %18.5 = Force %18.4, e9.5
  29016. val^? %18.6 = LdVar i, e9.5
  29017. val %18.7 = Force %18.6, e9.5
  29018. val^ %18.8 = EnsureNamed %18.3
  29019. val %18.9 = Force %18.8, e9.5
  29020. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  29021. void StVar array, %18.10, e9.5
  29022. goto BB15
  29023. BB17
  29024. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29025. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  29026. void Deopt %17.1
  29027. Prom 2:
  29028. BB0
  29029. env e0.0 = LdFunctionEnv
  29030. val^? %0.1 = LdVar depth, e0.0
  29031. val %0.2 = Force %0.1, e0.0
  29032. real$' %0.3 = LdConst [1] 1
  29033. goto BB1
  29034. BB1
  29035. val %1.0 = Sub %0.2, %0.3, e0.0
  29036. void Return %1.0
  29037. Prom 3:
  29038. BB0
  29039. env e0.0 = LdFunctionEnv
  29040. val^? %0.1 = LdVar random, e0.0
  29041. val %0.2 = Force %0.1, e0.0
  29042. void Return %0.2
  29043. Prom 4:
  29044. BB0
  29045. env e0.0 = LdFunctionEnv
  29046. cls %0.1 = LdFun nextRandom, e0.0
  29047. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29048. t %0.3 = Identical %0.1, %0.2
  29049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29050. BB2
  29051. void Assume %0.3, %0.4
  29052. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29053. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29054. real$' %2.3 = LdConst [1] 10
  29055. goto BB3
  29056. BB1
  29057. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29058. void Deopt %1.0
  29059. BB3
  29060. val %3.0 = Force %2.2, e0.0
  29061. val %3.1 = Mod %3.0, %2.3, e0.0
  29062. real$' %3.2 = LdConst [1] 1
  29063. goto BB4
  29064. BB4
  29065. val %4.0 = Add %3.1, %3.2, e0.0
  29066. void Return %4.0
  29067. Prom 5:
  29068. BB0
  29069. env e0.0 = LdFunctionEnv
  29070. cls %0.1 = LdFun nextRandom, e0.0
  29071. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29072. t %0.3 = Identical %0.1, %0.2
  29073. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29074. BB2
  29075. void Assume %0.3, %0.4
  29076. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29077. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29078. real$' %2.3 = LdConst [1] 10
  29079. goto BB3
  29080. BB1
  29081. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29082. void Deopt %1.0
  29083. BB3
  29084. val %3.0 = Force %2.2, e0.0
  29085. val %3.1 = Mod %3.0, %2.3, e0.0
  29086. real$' %3.2 = LdConst [1] 1
  29087. goto BB4
  29088. BB4
  29089. val %4.0 = Add %3.1, %3.2, e0.0
  29090. void Return %4.0
  29091. Prom 8:
  29092. BB0
  29093. env e0.0 = LdFunctionEnv
  29094. val^? %0.1 = LdVar depth, e0.0
  29095. val %0.2 = Force %0.1, e0.0
  29096. real$' %0.3 = LdConst [1] 1
  29097. goto BB1
  29098. BB1
  29099. val %1.0 = Sub %0.2, %0.3, e0.0
  29100. void Return %1.0
  29101. Prom 9:
  29102. BB0
  29103. env e0.0 = LdFunctionEnv
  29104. val^? %0.1 = LdVar random, e0.0
  29105. val %0.2 = Force %0.1, e0.0
  29106. void Return %0.2
  29107. ├────── Cleanup redundant operations: == 651
  29108. buildTreeDepth[0x7f92446010b0]
  29109. BB0
  29110. val^ %0.0 = LdArg 0
  29111. val^ %0.1 = LdArg 1
  29112. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  29113. val %0.3 = Force! %0.0, e0.2
  29114. real$' %0.4 = LdConst [1] 1
  29115. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29116. BB2
  29117. t %2.0 = IsObject %0.3
  29118. void AssumeNot %2.0, %0.5
  29119. lgl' %2.2 = Eq %0.3, %0.4, elided
  29120. lgl %2.3 = AsLogical %2.2
  29121. t %2.4 = AsTest %2.3
  29122. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  29123. BB1
  29124. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  29125. void Deopt %1.0
  29126. BB22
  29127. cls %22.0 = LdFun c, e0.2
  29128. prom %22.1 = MkArg missing, Prom(4), e0.2
  29129. val^ %22.2 = Call %22.0(%22.1) e0.2
  29130. goto BB23
  29131. BB3
  29132. cls %3.0 = LdFun vector, e0.2
  29133. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  29134. BB23
  29135. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  29136. val %23.1 = Force %23.0, e0.2
  29137. void Return %23.1
  29138. BB5
  29139. cls' %5.0 = LdConst function (mode = "logical", length = ...
  29140. t %5.1 = Identical %3.0, %5.0
  29141. void Assume %5.1, %3.1
  29142. str$' %5.3 = LdConst [1] "list"
  29143. real$' %5.4 = LdConst [1] 4
  29144. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  29145. void StVar array, %5.5, e0.2
  29146. real$' %5.7 = LdConst [1] 1
  29147. real$' %5.8 = LdConst [1] 4
  29148. val' %5.9 = Colon %5.7, %5.8, elided
  29149. val' %5.10 = SetShared %5.9
  29150. int$' %5.11 = ForSeqSize %5.10
  29151. int$' %5.12 = LdConst [1] 0
  29152. goto BB6
  29153. BB4
  29154. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  29155. void Deopt %4.0
  29156. BB6
  29157. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  29158. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  29159. int$' %6.2 = Inc %6.1
  29160. int$' %6.3 = EnsureNamed %6.2
  29161. lgl' %6.4 = Lt %5.11, %6.3, elided
  29162. t %6.5 = AsTest %6.4
  29163. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  29164. BB21
  29165. goto BB23
  29166. BB7
  29167. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  29168. void StVar i, %7.0, e0.2
  29169. cls %7.2 = LdFun buildTreeDepth, e0.2
  29170. prom %7.3 = MkArg missing, Prom(2), e0.2
  29171. prom %7.4 = MkArg missing, Prom(3), e0.2
  29172. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  29173. BB9
  29174. cls' %9.0 = LdConst function (depth, random) { if (d...
  29175. t %9.1 = Identical %7.2, %9.0
  29176. void Assume %9.1, %7.5
  29177. val^? %9.3 = CastType %7.3
  29178. val^? %9.4 = CastType %7.4
  29179. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  29180. val %9.6 = Force %9.3, e9.5
  29181. real$' %9.7 = LdConst [1] 1
  29182. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  29183. BB8
  29184. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  29185. void Deopt %8.0
  29186. BB11
  29187. t %11.0 = IsObject %9.6
  29188. void AssumeNot %11.0, %9.8
  29189. lgl' %11.2 = Eq %9.6, %9.7, elided
  29190. lgl %11.3 = AsLogical %11.2
  29191. t %11.4 = AsTest %11.3
  29192. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  29193. BB10
  29194. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29195. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  29196. void Deopt %10.1
  29197. BB20
  29198. cls %20.0 = LdFun c, e9.5
  29199. prom %20.1 = MkArg missing, Prom(5), e9.5
  29200. val^ %20.2 = Call %20.0(%20.1) e9.5
  29201. goto BB24
  29202. BB12
  29203. cls %12.0 = LdFun vector, e9.5
  29204. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  29205. BB24
  29206. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  29207. val %24.1 = Force %24.0, e9.5
  29208. val^? %24.2 = LdVar array, e0.2
  29209. val %24.3 = Force %24.2, e0.2
  29210. val^? %24.4 = LdVar i, e0.2
  29211. val %24.5 = Force %24.4, e0.2
  29212. val %24.6 = EnsureNamed %24.1
  29213. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  29214. void StVar array, %24.7, e0.2
  29215. goto BB6
  29216. BB14
  29217. cls' %14.0 = LdConst function (mode = "logical", length = ...
  29218. t %14.1 = Identical %12.0, %14.0
  29219. void Assume %14.1, %12.1
  29220. real$' %14.3 = LdConst [1] 4
  29221. str$' %14.4 = LdConst [1] "list"
  29222. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  29223. void StVar array, %14.5, e9.5
  29224. real$' %14.7 = LdConst [1] 4
  29225. real$' %14.8 = LdConst [1] 1
  29226. val' %14.9 = Colon %14.8, %14.7, elided
  29227. val' %14.10 = SetShared %14.9
  29228. int$' %14.11 = ForSeqSize %14.10
  29229. int$' %14.12 = LdConst [1] 0
  29230. goto BB15
  29231. BB13
  29232. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29233. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  29234. void Deopt %13.1
  29235. BB15
  29236. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  29237. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  29238. int$' %15.2 = Inc %15.1
  29239. int$' %15.3 = EnsureNamed %15.2
  29240. lgl' %15.4 = Lt %14.11, %15.3, elided
  29241. t %15.5 = AsTest %15.4
  29242. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  29243. BB19
  29244. goto BB24
  29245. BB16
  29246. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  29247. void StVar i, %16.0, e9.5
  29248. cls %16.2 = LdFun buildTreeDepth, e9.5
  29249. prom %16.3 = MkArg missing, Prom(8), e9.5
  29250. prom %16.4 = MkArg missing, Prom(9), e9.5
  29251. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  29252. BB18
  29253. cls' %18.0 = LdConst function (depth, random) { if (d...
  29254. t %18.1 = Identical %16.2, %18.0
  29255. void Assume %18.1, %16.5
  29256. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  29257. val^? %18.4 = LdVar array, e9.5
  29258. val %18.5 = Force %18.4, e9.5
  29259. val^? %18.6 = LdVar i, e9.5
  29260. val %18.7 = Force %18.6, e9.5
  29261. val^ %18.8 = EnsureNamed %18.3
  29262. val %18.9 = Force %18.8, e9.5
  29263. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  29264. void StVar array, %18.10, e9.5
  29265. goto BB15
  29266. BB17
  29267. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29268. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  29269. void Deopt %17.1
  29270. Prom 2:
  29271. BB0
  29272. env e0.0 = LdFunctionEnv
  29273. val^? %0.1 = LdVar depth, e0.0
  29274. val %0.2 = Force %0.1, e0.0
  29275. real$' %0.3 = LdConst [1] 1
  29276. goto BB1
  29277. BB1
  29278. val %1.0 = Sub %0.2, %0.3, e0.0
  29279. void Return %1.0
  29280. Prom 3:
  29281. BB0
  29282. env e0.0 = LdFunctionEnv
  29283. val^? %0.1 = LdVar random, e0.0
  29284. val %0.2 = Force %0.1, e0.0
  29285. void Return %0.2
  29286. Prom 4:
  29287. BB0
  29288. env e0.0 = LdFunctionEnv
  29289. cls %0.1 = LdFun nextRandom, e0.0
  29290. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29291. t %0.3 = Identical %0.1, %0.2
  29292. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29293. BB2
  29294. void Assume %0.3, %0.4
  29295. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29296. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29297. real$' %2.3 = LdConst [1] 10
  29298. goto BB3
  29299. BB1
  29300. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29301. void Deopt %1.0
  29302. BB3
  29303. val %3.0 = Force %2.2, e0.0
  29304. val %3.1 = Mod %3.0, %2.3, e0.0
  29305. real$' %3.2 = LdConst [1] 1
  29306. goto BB4
  29307. BB4
  29308. val %4.0 = Add %3.1, %3.2, e0.0
  29309. void Return %4.0
  29310. Prom 5:
  29311. BB0
  29312. env e0.0 = LdFunctionEnv
  29313. cls %0.1 = LdFun nextRandom, e0.0
  29314. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29315. t %0.3 = Identical %0.1, %0.2
  29316. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29317. BB2
  29318. void Assume %0.3, %0.4
  29319. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29320. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29321. real$' %2.3 = LdConst [1] 10
  29322. goto BB3
  29323. BB1
  29324. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29325. void Deopt %1.0
  29326. BB3
  29327. val %3.0 = Force %2.2, e0.0
  29328. val %3.1 = Mod %3.0, %2.3, e0.0
  29329. real$' %3.2 = LdConst [1] 1
  29330. goto BB4
  29331. BB4
  29332. val %4.0 = Add %3.1, %3.2, e0.0
  29333. void Return %4.0
  29334. Prom 8:
  29335. BB0
  29336. env e0.0 = LdFunctionEnv
  29337. val^? %0.1 = LdVar depth, e0.0
  29338. val %0.2 = Force %0.1, e0.0
  29339. real$' %0.3 = LdConst [1] 1
  29340. goto BB1
  29341. BB1
  29342. val %1.0 = Sub %0.2, %0.3, e0.0
  29343. void Return %1.0
  29344. Prom 9:
  29345. BB0
  29346. env e0.0 = LdFunctionEnv
  29347. val^? %0.1 = LdVar random, e0.0
  29348. val %0.2 = Force %0.1, e0.0
  29349. void Return %0.2
  29350. ├────── Inline closures: == 658
  29351. buildTreeDepth[0x7f92446010b0]
  29352. BB0
  29353. val^ %0.0 = LdArg 0
  29354. val^ %0.1 = LdArg 1
  29355. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  29356. val %0.3 = Force! %0.0, e0.2
  29357. real$' %0.4 = LdConst [1] 1
  29358. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29359. BB2
  29360. t %2.0 = IsObject %0.3
  29361. void AssumeNot %2.0, %0.5
  29362. lgl' %2.2 = Eq %0.3, %0.4, elided
  29363. lgl %2.3 = AsLogical %2.2
  29364. t %2.4 = AsTest %2.3
  29365. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  29366. BB1
  29367. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  29368. void Deopt %1.0
  29369. BB22
  29370. cls %22.0 = LdFun c, e0.2
  29371. prom %22.1 = MkArg missing, Prom(4), e0.2
  29372. val^ %22.2 = Call %22.0(%22.1) e0.2
  29373. goto BB23
  29374. BB3
  29375. cls %3.0 = LdFun vector, e0.2
  29376. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  29377. BB23
  29378. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  29379. val %23.1 = Force %23.0, e0.2
  29380. void Return %23.1
  29381. BB5
  29382. cls' %5.0 = LdConst function (mode = "logical", length = ...
  29383. t %5.1 = Identical %3.0, %5.0
  29384. void Assume %5.1, %3.1
  29385. str$' %5.3 = LdConst [1] "list"
  29386. real$' %5.4 = LdConst [1] 4
  29387. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  29388. void StVar array, %5.5, e0.2
  29389. real$' %5.7 = LdConst [1] 1
  29390. real$' %5.8 = LdConst [1] 4
  29391. val' %5.9 = Colon %5.7, %5.8, elided
  29392. val' %5.10 = SetShared %5.9
  29393. int$' %5.11 = ForSeqSize %5.10
  29394. int$' %5.12 = LdConst [1] 0
  29395. goto BB6
  29396. BB4
  29397. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  29398. void Deopt %4.0
  29399. BB6
  29400. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  29401. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  29402. int$' %6.2 = Inc %6.1
  29403. int$' %6.3 = EnsureNamed %6.2
  29404. lgl' %6.4 = Lt %5.11, %6.3, elided
  29405. t %6.5 = AsTest %6.4
  29406. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  29407. BB21
  29408. goto BB23
  29409. BB7
  29410. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  29411. void StVar i, %7.0, e0.2
  29412. cls %7.2 = LdFun buildTreeDepth, e0.2
  29413. prom %7.3 = MkArg missing, Prom(2), e0.2
  29414. prom %7.4 = MkArg missing, Prom(3), e0.2
  29415. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  29416. BB9
  29417. cls' %9.0 = LdConst function (depth, random) { if (d...
  29418. t %9.1 = Identical %7.2, %9.0
  29419. void Assume %9.1, %7.5
  29420. val^? %9.3 = CastType %7.3
  29421. val^? %9.4 = CastType %7.4
  29422. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  29423. val %9.6 = Force %9.3, e9.5
  29424. real$' %9.7 = LdConst [1] 1
  29425. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  29426. BB8
  29427. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  29428. void Deopt %8.0
  29429. BB11
  29430. t %11.0 = IsObject %9.6
  29431. void AssumeNot %11.0, %9.8
  29432. lgl' %11.2 = Eq %9.6, %9.7, elided
  29433. lgl %11.3 = AsLogical %11.2
  29434. t %11.4 = AsTest %11.3
  29435. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  29436. BB10
  29437. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29438. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  29439. void Deopt %10.1
  29440. BB20
  29441. cls %20.0 = LdFun c, e9.5
  29442. prom %20.1 = MkArg missing, Prom(5), e9.5
  29443. val^ %20.2 = Call %20.0(%20.1) e9.5
  29444. goto BB24
  29445. BB12
  29446. cls %12.0 = LdFun vector, e9.5
  29447. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  29448. BB24
  29449. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  29450. val %24.1 = Force %24.0, e9.5
  29451. val^? %24.2 = LdVar array, e0.2
  29452. val %24.3 = Force %24.2, e0.2
  29453. val^? %24.4 = LdVar i, e0.2
  29454. val %24.5 = Force %24.4, e0.2
  29455. val %24.6 = EnsureNamed %24.1
  29456. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  29457. void StVar array, %24.7, e0.2
  29458. goto BB6
  29459. BB14
  29460. cls' %14.0 = LdConst function (mode = "logical", length = ...
  29461. t %14.1 = Identical %12.0, %14.0
  29462. void Assume %14.1, %12.1
  29463. real$' %14.3 = LdConst [1] 4
  29464. str$' %14.4 = LdConst [1] "list"
  29465. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  29466. void StVar array, %14.5, e9.5
  29467. real$' %14.7 = LdConst [1] 4
  29468. real$' %14.8 = LdConst [1] 1
  29469. val' %14.9 = Colon %14.8, %14.7, elided
  29470. val' %14.10 = SetShared %14.9
  29471. int$' %14.11 = ForSeqSize %14.10
  29472. int$' %14.12 = LdConst [1] 0
  29473. goto BB15
  29474. BB13
  29475. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29476. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  29477. void Deopt %13.1
  29478. BB15
  29479. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  29480. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  29481. int$' %15.2 = Inc %15.1
  29482. int$' %15.3 = EnsureNamed %15.2
  29483. lgl' %15.4 = Lt %14.11, %15.3, elided
  29484. t %15.5 = AsTest %15.4
  29485. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  29486. BB19
  29487. goto BB24
  29488. BB16
  29489. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  29490. void StVar i, %16.0, e9.5
  29491. cls %16.2 = LdFun buildTreeDepth, e9.5
  29492. prom %16.3 = MkArg missing, Prom(8), e9.5
  29493. prom %16.4 = MkArg missing, Prom(9), e9.5
  29494. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  29495. BB18
  29496. cls' %18.0 = LdConst function (depth, random) { if (d...
  29497. t %18.1 = Identical %16.2, %18.0
  29498. void Assume %18.1, %16.5
  29499. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  29500. val^? %18.4 = LdVar array, e9.5
  29501. val %18.5 = Force %18.4, e9.5
  29502. val^? %18.6 = LdVar i, e9.5
  29503. val %18.7 = Force %18.6, e9.5
  29504. val^ %18.8 = EnsureNamed %18.3
  29505. val %18.9 = Force %18.8, e9.5
  29506. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  29507. void StVar array, %18.10, e9.5
  29508. goto BB15
  29509. BB17
  29510. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29511. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  29512. void Deopt %17.1
  29513. Prom 2:
  29514. BB0
  29515. env e0.0 = LdFunctionEnv
  29516. val^? %0.1 = LdVar depth, e0.0
  29517. val %0.2 = Force %0.1, e0.0
  29518. real$' %0.3 = LdConst [1] 1
  29519. goto BB1
  29520. BB1
  29521. val %1.0 = Sub %0.2, %0.3, e0.0
  29522. void Return %1.0
  29523. Prom 3:
  29524. BB0
  29525. env e0.0 = LdFunctionEnv
  29526. val^? %0.1 = LdVar random, e0.0
  29527. val %0.2 = Force %0.1, e0.0
  29528. void Return %0.2
  29529. Prom 4:
  29530. BB0
  29531. env e0.0 = LdFunctionEnv
  29532. cls %0.1 = LdFun nextRandom, e0.0
  29533. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29534. t %0.3 = Identical %0.1, %0.2
  29535. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29536. BB2
  29537. void Assume %0.3, %0.4
  29538. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29539. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29540. real$' %2.3 = LdConst [1] 10
  29541. goto BB3
  29542. BB1
  29543. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29544. void Deopt %1.0
  29545. BB3
  29546. val %3.0 = Force %2.2, e0.0
  29547. val %3.1 = Mod %3.0, %2.3, e0.0
  29548. real$' %3.2 = LdConst [1] 1
  29549. goto BB4
  29550. BB4
  29551. val %4.0 = Add %3.1, %3.2, e0.0
  29552. void Return %4.0
  29553. Prom 5:
  29554. BB0
  29555. env e0.0 = LdFunctionEnv
  29556. cls %0.1 = LdFun nextRandom, e0.0
  29557. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29558. t %0.3 = Identical %0.1, %0.2
  29559. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29560. BB2
  29561. void Assume %0.3, %0.4
  29562. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29563. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29564. real$' %2.3 = LdConst [1] 10
  29565. goto BB3
  29566. BB1
  29567. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29568. void Deopt %1.0
  29569. BB3
  29570. val %3.0 = Force %2.2, e0.0
  29571. val %3.1 = Mod %3.0, %2.3, e0.0
  29572. real$' %3.2 = LdConst [1] 1
  29573. goto BB4
  29574. BB4
  29575. val %4.0 = Add %3.1, %3.2, e0.0
  29576. void Return %4.0
  29577. Prom 8:
  29578. BB0
  29579. env e0.0 = LdFunctionEnv
  29580. val^? %0.1 = LdVar depth, e0.0
  29581. val %0.2 = Force %0.1, e0.0
  29582. real$' %0.3 = LdConst [1] 1
  29583. goto BB1
  29584. BB1
  29585. val %1.0 = Sub %0.2, %0.3, e0.0
  29586. void Return %1.0
  29587. Prom 9:
  29588. BB0
  29589. env e0.0 = LdFunctionEnv
  29590. val^? %0.1 = LdVar random, e0.0
  29591. val %0.2 = Force %0.1, e0.0
  29592. void Return %0.2
  29593. ├────── Inline Promises: == 665
  29594. buildTreeDepth[0x7f92446010b0]
  29595. BB0
  29596. val^ %0.0 = LdArg 0
  29597. val^ %0.1 = LdArg 1
  29598. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  29599. val %0.3 = Force! %0.0, e0.2
  29600. real$' %0.4 = LdConst [1] 1
  29601. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29602. BB2
  29603. t %2.0 = IsObject %0.3
  29604. void AssumeNot %2.0, %0.5
  29605. lgl' %2.2 = Eq %0.3, %0.4, elided
  29606. lgl %2.3 = AsLogical %2.2
  29607. t %2.4 = AsTest %2.3
  29608. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  29609. BB1
  29610. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  29611. void Deopt %1.0
  29612. BB22
  29613. cls %22.0 = LdFun c, e0.2
  29614. prom %22.1 = MkArg missing, Prom(4), e0.2
  29615. val^ %22.2 = Call %22.0(%22.1) e0.2
  29616. goto BB23
  29617. BB3
  29618. cls %3.0 = LdFun vector, e0.2
  29619. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  29620. BB23
  29621. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  29622. val %23.1 = Force %23.0, e0.2
  29623. void Return %23.1
  29624. BB5
  29625. cls' %5.0 = LdConst function (mode = "logical", length = ...
  29626. t %5.1 = Identical %3.0, %5.0
  29627. void Assume %5.1, %3.1
  29628. str$' %5.3 = LdConst [1] "list"
  29629. real$' %5.4 = LdConst [1] 4
  29630. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  29631. void StVar array, %5.5, e0.2
  29632. real$' %5.7 = LdConst [1] 1
  29633. real$' %5.8 = LdConst [1] 4
  29634. val' %5.9 = Colon %5.7, %5.8, elided
  29635. val' %5.10 = SetShared %5.9
  29636. int$' %5.11 = ForSeqSize %5.10
  29637. int$' %5.12 = LdConst [1] 0
  29638. goto BB6
  29639. BB4
  29640. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  29641. void Deopt %4.0
  29642. BB6
  29643. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  29644. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  29645. int$' %6.2 = Inc %6.1
  29646. int$' %6.3 = EnsureNamed %6.2
  29647. lgl' %6.4 = Lt %5.11, %6.3, elided
  29648. t %6.5 = AsTest %6.4
  29649. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  29650. BB21
  29651. goto BB23
  29652. BB7
  29653. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  29654. void StVar i, %7.0, e0.2
  29655. cls %7.2 = LdFun buildTreeDepth, e0.2
  29656. prom %7.3 = MkArg missing, Prom(2), e0.2
  29657. prom %7.4 = MkArg missing, Prom(3), e0.2
  29658. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  29659. BB9
  29660. cls' %9.0 = LdConst function (depth, random) { if (d...
  29661. t %9.1 = Identical %7.2, %9.0
  29662. void Assume %9.1, %7.5
  29663. val^? %9.3 = CastType %7.3
  29664. val^? %9.4 = CastType %7.4
  29665. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  29666. val %9.6 = Force %9.3, e9.5
  29667. real$' %9.7 = LdConst [1] 1
  29668. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  29669. BB8
  29670. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  29671. void Deopt %8.0
  29672. BB11
  29673. t %11.0 = IsObject %9.6
  29674. void AssumeNot %11.0, %9.8
  29675. lgl' %11.2 = Eq %9.6, %9.7, elided
  29676. lgl %11.3 = AsLogical %11.2
  29677. t %11.4 = AsTest %11.3
  29678. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  29679. BB10
  29680. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29681. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  29682. void Deopt %10.1
  29683. BB20
  29684. cls %20.0 = LdFun c, e9.5
  29685. prom %20.1 = MkArg missing, Prom(5), e9.5
  29686. val^ %20.2 = Call %20.0(%20.1) e9.5
  29687. goto BB24
  29688. BB12
  29689. cls %12.0 = LdFun vector, e9.5
  29690. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  29691. BB24
  29692. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  29693. val %24.1 = Force %24.0, e9.5
  29694. val^? %24.2 = LdVar array, e0.2
  29695. val %24.3 = Force %24.2, e0.2
  29696. val^? %24.4 = LdVar i, e0.2
  29697. val %24.5 = Force %24.4, e0.2
  29698. val %24.6 = EnsureNamed %24.1
  29699. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  29700. void StVar array, %24.7, e0.2
  29701. goto BB6
  29702. BB14
  29703. cls' %14.0 = LdConst function (mode = "logical", length = ...
  29704. t %14.1 = Identical %12.0, %14.0
  29705. void Assume %14.1, %12.1
  29706. real$' %14.3 = LdConst [1] 4
  29707. str$' %14.4 = LdConst [1] "list"
  29708. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  29709. void StVar array, %14.5, e9.5
  29710. real$' %14.7 = LdConst [1] 4
  29711. real$' %14.8 = LdConst [1] 1
  29712. val' %14.9 = Colon %14.8, %14.7, elided
  29713. val' %14.10 = SetShared %14.9
  29714. int$' %14.11 = ForSeqSize %14.10
  29715. int$' %14.12 = LdConst [1] 0
  29716. goto BB15
  29717. BB13
  29718. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29719. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  29720. void Deopt %13.1
  29721. BB15
  29722. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  29723. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  29724. int$' %15.2 = Inc %15.1
  29725. int$' %15.3 = EnsureNamed %15.2
  29726. lgl' %15.4 = Lt %14.11, %15.3, elided
  29727. t %15.5 = AsTest %15.4
  29728. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  29729. BB19
  29730. goto BB24
  29731. BB16
  29732. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  29733. void StVar i, %16.0, e9.5
  29734. cls %16.2 = LdFun buildTreeDepth, e9.5
  29735. prom %16.3 = MkArg missing, Prom(8), e9.5
  29736. prom %16.4 = MkArg missing, Prom(9), e9.5
  29737. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  29738. BB18
  29739. cls' %18.0 = LdConst function (depth, random) { if (d...
  29740. t %18.1 = Identical %16.2, %18.0
  29741. void Assume %18.1, %16.5
  29742. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  29743. val^? %18.4 = LdVar array, e9.5
  29744. val %18.5 = Force %18.4, e9.5
  29745. val^? %18.6 = LdVar i, e9.5
  29746. val %18.7 = Force %18.6, e9.5
  29747. val^ %18.8 = EnsureNamed %18.3
  29748. val %18.9 = Force %18.8, e9.5
  29749. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  29750. void StVar array, %18.10, e9.5
  29751. goto BB15
  29752. BB17
  29753. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29754. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  29755. void Deopt %17.1
  29756. Prom 2:
  29757. BB0
  29758. env e0.0 = LdFunctionEnv
  29759. val^? %0.1 = LdVar depth, e0.0
  29760. val %0.2 = Force %0.1, e0.0
  29761. real$' %0.3 = LdConst [1] 1
  29762. goto BB1
  29763. BB1
  29764. val %1.0 = Sub %0.2, %0.3, e0.0
  29765. void Return %1.0
  29766. Prom 3:
  29767. BB0
  29768. env e0.0 = LdFunctionEnv
  29769. val^? %0.1 = LdVar random, e0.0
  29770. val %0.2 = Force %0.1, e0.0
  29771. void Return %0.2
  29772. Prom 4:
  29773. BB0
  29774. env e0.0 = LdFunctionEnv
  29775. cls %0.1 = LdFun nextRandom, e0.0
  29776. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29777. t %0.3 = Identical %0.1, %0.2
  29778. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29779. BB2
  29780. void Assume %0.3, %0.4
  29781. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29782. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29783. real$' %2.3 = LdConst [1] 10
  29784. goto BB3
  29785. BB1
  29786. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29787. void Deopt %1.0
  29788. BB3
  29789. val %3.0 = Force %2.2, e0.0
  29790. val %3.1 = Mod %3.0, %2.3, e0.0
  29791. real$' %3.2 = LdConst [1] 1
  29792. goto BB4
  29793. BB4
  29794. val %4.0 = Add %3.1, %3.2, e0.0
  29795. void Return %4.0
  29796. Prom 5:
  29797. BB0
  29798. env e0.0 = LdFunctionEnv
  29799. cls %0.1 = LdFun nextRandom, e0.0
  29800. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  29801. t %0.3 = Identical %0.1, %0.2
  29802. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29803. BB2
  29804. void Assume %0.3, %0.4
  29805. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  29806. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  29807. real$' %2.3 = LdConst [1] 10
  29808. goto BB3
  29809. BB1
  29810. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  29811. void Deopt %1.0
  29812. BB3
  29813. val %3.0 = Force %2.2, e0.0
  29814. val %3.1 = Mod %3.0, %2.3, e0.0
  29815. real$' %3.2 = LdConst [1] 1
  29816. goto BB4
  29817. BB4
  29818. val %4.0 = Add %3.1, %3.2, e0.0
  29819. void Return %4.0
  29820. Prom 8:
  29821. BB0
  29822. env e0.0 = LdFunctionEnv
  29823. val^? %0.1 = LdVar depth, e0.0
  29824. val %0.2 = Force %0.1, e0.0
  29825. real$' %0.3 = LdConst [1] 1
  29826. goto BB1
  29827. BB1
  29828. val %1.0 = Sub %0.2, %0.3, e0.0
  29829. void Return %1.0
  29830. Prom 9:
  29831. BB0
  29832. env e0.0 = LdFunctionEnv
  29833. val^? %0.1 = LdVar random, e0.0
  29834. val %0.2 = Force %0.1, e0.0
  29835. void Return %0.2
  29836. ├────── Scope resolution: == 672
  29837. buildTreeDepth[0x7f92446010b0]
  29838. BB0
  29839. val^ %0.0 = LdArg 0
  29840. val^ %0.1 = LdArg 1
  29841. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  29842. val %0.3 = Force! %0.0, e0.2
  29843. real$' %0.4 = LdConst [1] 1
  29844. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  29845. BB2
  29846. t %2.0 = IsObject %0.3
  29847. void AssumeNot %2.0, %0.5
  29848. lgl' %2.2 = Eq %0.3, %0.4, elided
  29849. lgl %2.3 = AsLogical %2.2
  29850. t %2.4 = AsTest %2.3
  29851. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  29852. BB1
  29853. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  29854. void Deopt %1.0
  29855. BB22
  29856. cls %22.0 = LdFun c, e0.2
  29857. prom %22.1 = MkArg missing, Prom(4), e0.2
  29858. val^ %22.2 = Call %22.0(%22.1) e0.2
  29859. goto BB23
  29860. BB3
  29861. cls %3.0 = LdFun vector, e0.2
  29862. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  29863. BB23
  29864. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  29865. val %23.1 = Force %23.0, e0.2
  29866. void Return %23.1
  29867. BB5
  29868. cls' %5.0 = LdConst function (mode = "logical", length = ...
  29869. t %5.1 = Identical %3.0, %5.0
  29870. void Assume %5.1, %3.1
  29871. str$' %5.3 = LdConst [1] "list"
  29872. real$' %5.4 = LdConst [1] 4
  29873. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  29874. void StVar array, %5.5, e0.2
  29875. real$' %5.7 = LdConst [1] 1
  29876. real$' %5.8 = LdConst [1] 4
  29877. val' %5.9 = Colon %5.7, %5.8, elided
  29878. val' %5.10 = SetShared %5.9
  29879. int$' %5.11 = ForSeqSize %5.10
  29880. int$' %5.12 = LdConst [1] 0
  29881. goto BB6
  29882. BB4
  29883. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  29884. void Deopt %4.0
  29885. BB6
  29886. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  29887. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  29888. int$' %6.2 = Inc %6.1
  29889. int$' %6.3 = EnsureNamed %6.2
  29890. lgl' %6.4 = Lt %5.11, %6.3, elided
  29891. t %6.5 = AsTest %6.4
  29892. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  29893. BB21
  29894. goto BB23
  29895. BB7
  29896. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  29897. void StVar i, %7.0, e0.2
  29898. cls %7.2 = LdFun buildTreeDepth, e0.2
  29899. prom %7.3 = MkArg missing, Prom(2), e0.2
  29900. prom %7.4 = MkArg missing, Prom(3), e0.2
  29901. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  29902. BB9
  29903. cls' %9.0 = LdConst function (depth, random) { if (d...
  29904. t %9.1 = Identical %7.2, %9.0
  29905. void Assume %9.1, %7.5
  29906. val^? %9.3 = CastType %7.3
  29907. val^? %9.4 = CastType %7.4
  29908. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  29909. val %9.6 = Force %9.3, e9.5
  29910. real$' %9.7 = LdConst [1] 1
  29911. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  29912. BB8
  29913. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  29914. void Deopt %8.0
  29915. BB11
  29916. t %11.0 = IsObject %9.6
  29917. void AssumeNot %11.0, %9.8
  29918. lgl' %11.2 = Eq %9.6, %9.7, elided
  29919. lgl %11.3 = AsLogical %11.2
  29920. t %11.4 = AsTest %11.3
  29921. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  29922. BB10
  29923. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29924. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  29925. void Deopt %10.1
  29926. BB20
  29927. cls %20.0 = LdFun c, e9.5
  29928. prom %20.1 = MkArg missing, Prom(5), e9.5
  29929. val^ %20.2 = Call %20.0(%20.1) e9.5
  29930. goto BB24
  29931. BB12
  29932. cls %12.0 = LdFun vector, e9.5
  29933. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  29934. BB24
  29935. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  29936. val %24.1 = Force %24.0, e9.5
  29937. val^? %24.2 = LdVar array, e0.2
  29938. val %24.3 = Force %24.2, e0.2
  29939. val^? %24.4 = LdVar i, e0.2
  29940. val %24.5 = Force %24.4, e0.2
  29941. val %24.6 = EnsureNamed %24.1
  29942. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  29943. void StVar array, %24.7, e0.2
  29944. goto BB6
  29945. BB14
  29946. cls' %14.0 = LdConst function (mode = "logical", length = ...
  29947. t %14.1 = Identical %12.0, %14.0
  29948. void Assume %14.1, %12.1
  29949. real$' %14.3 = LdConst [1] 4
  29950. str$' %14.4 = LdConst [1] "list"
  29951. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  29952. void StVar array, %14.5, e9.5
  29953. real$' %14.7 = LdConst [1] 4
  29954. real$' %14.8 = LdConst [1] 1
  29955. val' %14.9 = Colon %14.8, %14.7, elided
  29956. val' %14.10 = SetShared %14.9
  29957. int$' %14.11 = ForSeqSize %14.10
  29958. int$' %14.12 = LdConst [1] 0
  29959. goto BB15
  29960. BB13
  29961. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29962. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  29963. void Deopt %13.1
  29964. BB15
  29965. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  29966. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  29967. int$' %15.2 = Inc %15.1
  29968. int$' %15.3 = EnsureNamed %15.2
  29969. lgl' %15.4 = Lt %14.11, %15.3, elided
  29970. t %15.5 = AsTest %15.4
  29971. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  29972. BB19
  29973. goto BB24
  29974. BB16
  29975. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  29976. void StVar i, %16.0, e9.5
  29977. cls %16.2 = LdFun buildTreeDepth, e9.5
  29978. prom %16.3 = MkArg missing, Prom(8), e9.5
  29979. prom %16.4 = MkArg missing, Prom(9), e9.5
  29980. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  29981. BB18
  29982. cls' %18.0 = LdConst function (depth, random) { if (d...
  29983. t %18.1 = Identical %16.2, %18.0
  29984. void Assume %18.1, %16.5
  29985. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  29986. val^? %18.4 = LdVar array, e9.5
  29987. val %18.5 = Force %18.4, e9.5
  29988. val^? %18.6 = LdVar i, e9.5
  29989. val %18.7 = Force %18.6, e9.5
  29990. val^ %18.8 = EnsureNamed %18.3
  29991. val %18.9 = Force %18.8, e9.5
  29992. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  29993. void StVar array, %18.10, e9.5
  29994. goto BB15
  29995. BB17
  29996. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  29997. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  29998. void Deopt %17.1
  29999. Prom 2:
  30000. BB0
  30001. env e0.0 = LdFunctionEnv
  30002. val^? %0.1 = LdVar depth, e0.0
  30003. val %0.2 = Force %0.1, e0.0
  30004. real$' %0.3 = LdConst [1] 1
  30005. goto BB1
  30006. BB1
  30007. val %1.0 = Sub %0.2, %0.3, e0.0
  30008. void Return %1.0
  30009. Prom 3:
  30010. BB0
  30011. env e0.0 = LdFunctionEnv
  30012. val^? %0.1 = LdVar random, e0.0
  30013. val %0.2 = Force %0.1, e0.0
  30014. void Return %0.2
  30015. Prom 4:
  30016. BB0
  30017. env e0.0 = LdFunctionEnv
  30018. cls %0.1 = LdFun nextRandom, e0.0
  30019. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30020. t %0.3 = Identical %0.1, %0.2
  30021. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30022. BB2
  30023. void Assume %0.3, %0.4
  30024. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30025. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30026. real$' %2.3 = LdConst [1] 10
  30027. goto BB3
  30028. BB1
  30029. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30030. void Deopt %1.0
  30031. BB3
  30032. val %3.0 = Force %2.2, e0.0
  30033. val %3.1 = Mod %3.0, %2.3, e0.0
  30034. real$' %3.2 = LdConst [1] 1
  30035. goto BB4
  30036. BB4
  30037. val %4.0 = Add %3.1, %3.2, e0.0
  30038. void Return %4.0
  30039. Prom 5:
  30040. BB0
  30041. env e0.0 = LdFunctionEnv
  30042. cls %0.1 = LdFun nextRandom, e0.0
  30043. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30044. t %0.3 = Identical %0.1, %0.2
  30045. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30046. BB2
  30047. void Assume %0.3, %0.4
  30048. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30049. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30050. real$' %2.3 = LdConst [1] 10
  30051. goto BB3
  30052. BB1
  30053. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30054. void Deopt %1.0
  30055. BB3
  30056. val %3.0 = Force %2.2, e0.0
  30057. val %3.1 = Mod %3.0, %2.3, e0.0
  30058. real$' %3.2 = LdConst [1] 1
  30059. goto BB4
  30060. BB4
  30061. val %4.0 = Add %3.1, %3.2, e0.0
  30062. void Return %4.0
  30063. Prom 8:
  30064. BB0
  30065. env e0.0 = LdFunctionEnv
  30066. val^? %0.1 = LdVar depth, e0.0
  30067. val %0.2 = Force %0.1, e0.0
  30068. real$' %0.3 = LdConst [1] 1
  30069. goto BB1
  30070. BB1
  30071. val %1.0 = Sub %0.2, %0.3, e0.0
  30072. void Return %1.0
  30073. Prom 9:
  30074. BB0
  30075. env e0.0 = LdFunctionEnv
  30076. val^? %0.1 = LdVar random, e0.0
  30077. val %0.2 = Force %0.1, e0.0
  30078. void Return %0.2
  30079. ├────── Constant folding: == 679
  30080. buildTreeDepth[0x7f92446010b0]
  30081. BB0
  30082. val^ %0.0 = LdArg 0
  30083. val^ %0.1 = LdArg 1
  30084. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  30085. val %0.3 = Force! %0.0, e0.2
  30086. real$' %0.4 = LdConst [1] 1
  30087. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30088. BB2
  30089. t %2.0 = IsObject %0.3
  30090. void AssumeNot %2.0, %0.5
  30091. lgl' %2.2 = Eq %0.3, %0.4, elided
  30092. lgl %2.3 = AsLogical %2.2
  30093. t %2.4 = AsTest %2.3
  30094. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  30095. BB1
  30096. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  30097. void Deopt %1.0
  30098. BB22
  30099. cls %22.0 = LdFun c, e0.2
  30100. prom %22.1 = MkArg missing, Prom(4), e0.2
  30101. val^ %22.2 = Call %22.0(%22.1) e0.2
  30102. goto BB23
  30103. BB3
  30104. cls %3.0 = LdFun vector, e0.2
  30105. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  30106. BB23
  30107. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  30108. val %23.1 = Force %23.0, e0.2
  30109. void Return %23.1
  30110. BB5
  30111. cls' %5.0 = LdConst function (mode = "logical", length = ...
  30112. t %5.1 = Identical %3.0, %5.0
  30113. void Assume %5.1, %3.1
  30114. str$' %5.3 = LdConst [1] "list"
  30115. real$' %5.4 = LdConst [1] 4
  30116. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  30117. void StVar array, %5.5, e0.2
  30118. real$' %5.7 = LdConst [1] 1
  30119. real$' %5.8 = LdConst [1] 4
  30120. val' %5.9 = Colon %5.7, %5.8, elided
  30121. val' %5.10 = SetShared %5.9
  30122. int$' %5.11 = ForSeqSize %5.10
  30123. int$' %5.12 = LdConst [1] 0
  30124. goto BB6
  30125. BB4
  30126. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  30127. void Deopt %4.0
  30128. BB6
  30129. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  30130. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  30131. int$' %6.2 = Inc %6.1
  30132. int$' %6.3 = EnsureNamed %6.2
  30133. lgl' %6.4 = Lt %5.11, %6.3, elided
  30134. t %6.5 = AsTest %6.4
  30135. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  30136. BB21
  30137. goto BB23
  30138. BB7
  30139. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  30140. void StVar i, %7.0, e0.2
  30141. cls %7.2 = LdFun buildTreeDepth, e0.2
  30142. prom %7.3 = MkArg missing, Prom(2), e0.2
  30143. prom %7.4 = MkArg missing, Prom(3), e0.2
  30144. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  30145. BB9
  30146. cls' %9.0 = LdConst function (depth, random) { if (d...
  30147. t %9.1 = Identical %7.2, %9.0
  30148. void Assume %9.1, %7.5
  30149. val^? %9.3 = CastType %7.3
  30150. val^? %9.4 = CastType %7.4
  30151. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  30152. val %9.6 = Force %9.3, e9.5
  30153. real$' %9.7 = LdConst [1] 1
  30154. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  30155. BB8
  30156. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  30157. void Deopt %8.0
  30158. BB11
  30159. t %11.0 = IsObject %9.6
  30160. void AssumeNot %11.0, %9.8
  30161. lgl' %11.2 = Eq %9.6, %9.7, elided
  30162. lgl %11.3 = AsLogical %11.2
  30163. t %11.4 = AsTest %11.3
  30164. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  30165. BB10
  30166. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30167. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  30168. void Deopt %10.1
  30169. BB20
  30170. cls %20.0 = LdFun c, e9.5
  30171. prom %20.1 = MkArg missing, Prom(5), e9.5
  30172. val^ %20.2 = Call %20.0(%20.1) e9.5
  30173. goto BB24
  30174. BB12
  30175. cls %12.0 = LdFun vector, e9.5
  30176. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  30177. BB24
  30178. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  30179. val %24.1 = Force %24.0, e9.5
  30180. val^? %24.2 = LdVar array, e0.2
  30181. val %24.3 = Force %24.2, e0.2
  30182. val^? %24.4 = LdVar i, e0.2
  30183. val %24.5 = Force %24.4, e0.2
  30184. val %24.6 = EnsureNamed %24.1
  30185. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  30186. void StVar array, %24.7, e0.2
  30187. goto BB6
  30188. BB14
  30189. cls' %14.0 = LdConst function (mode = "logical", length = ...
  30190. t %14.1 = Identical %12.0, %14.0
  30191. void Assume %14.1, %12.1
  30192. real$' %14.3 = LdConst [1] 4
  30193. str$' %14.4 = LdConst [1] "list"
  30194. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  30195. void StVar array, %14.5, e9.5
  30196. real$' %14.7 = LdConst [1] 4
  30197. real$' %14.8 = LdConst [1] 1
  30198. val' %14.9 = Colon %14.8, %14.7, elided
  30199. val' %14.10 = SetShared %14.9
  30200. int$' %14.11 = ForSeqSize %14.10
  30201. int$' %14.12 = LdConst [1] 0
  30202. goto BB15
  30203. BB13
  30204. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30205. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  30206. void Deopt %13.1
  30207. BB15
  30208. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  30209. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  30210. int$' %15.2 = Inc %15.1
  30211. int$' %15.3 = EnsureNamed %15.2
  30212. lgl' %15.4 = Lt %14.11, %15.3, elided
  30213. t %15.5 = AsTest %15.4
  30214. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  30215. BB19
  30216. goto BB24
  30217. BB16
  30218. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  30219. void StVar i, %16.0, e9.5
  30220. cls %16.2 = LdFun buildTreeDepth, e9.5
  30221. prom %16.3 = MkArg missing, Prom(8), e9.5
  30222. prom %16.4 = MkArg missing, Prom(9), e9.5
  30223. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  30224. BB18
  30225. cls' %18.0 = LdConst function (depth, random) { if (d...
  30226. t %18.1 = Identical %16.2, %18.0
  30227. void Assume %18.1, %16.5
  30228. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  30229. val^? %18.4 = LdVar array, e9.5
  30230. val %18.5 = Force %18.4, e9.5
  30231. val^? %18.6 = LdVar i, e9.5
  30232. val %18.7 = Force %18.6, e9.5
  30233. val^ %18.8 = EnsureNamed %18.3
  30234. val %18.9 = Force %18.8, e9.5
  30235. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  30236. void StVar array, %18.10, e9.5
  30237. goto BB15
  30238. BB17
  30239. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30240. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  30241. void Deopt %17.1
  30242. Prom 2:
  30243. BB0
  30244. env e0.0 = LdFunctionEnv
  30245. val^? %0.1 = LdVar depth, e0.0
  30246. val %0.2 = Force %0.1, e0.0
  30247. real$' %0.3 = LdConst [1] 1
  30248. goto BB1
  30249. BB1
  30250. val %1.0 = Sub %0.2, %0.3, e0.0
  30251. void Return %1.0
  30252. Prom 3:
  30253. BB0
  30254. env e0.0 = LdFunctionEnv
  30255. val^? %0.1 = LdVar random, e0.0
  30256. val %0.2 = Force %0.1, e0.0
  30257. void Return %0.2
  30258. Prom 4:
  30259. BB0
  30260. env e0.0 = LdFunctionEnv
  30261. cls %0.1 = LdFun nextRandom, e0.0
  30262. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30263. t %0.3 = Identical %0.1, %0.2
  30264. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30265. BB2
  30266. void Assume %0.3, %0.4
  30267. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30268. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30269. real$' %2.3 = LdConst [1] 10
  30270. goto BB3
  30271. BB1
  30272. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30273. void Deopt %1.0
  30274. BB3
  30275. val %3.0 = Force %2.2, e0.0
  30276. val %3.1 = Mod %3.0, %2.3, e0.0
  30277. real$' %3.2 = LdConst [1] 1
  30278. goto BB4
  30279. BB4
  30280. val %4.0 = Add %3.1, %3.2, e0.0
  30281. void Return %4.0
  30282. Prom 5:
  30283. BB0
  30284. env e0.0 = LdFunctionEnv
  30285. cls %0.1 = LdFun nextRandom, e0.0
  30286. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30287. t %0.3 = Identical %0.1, %0.2
  30288. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30289. BB2
  30290. void Assume %0.3, %0.4
  30291. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30292. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30293. real$' %2.3 = LdConst [1] 10
  30294. goto BB3
  30295. BB1
  30296. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30297. void Deopt %1.0
  30298. BB3
  30299. val %3.0 = Force %2.2, e0.0
  30300. val %3.1 = Mod %3.0, %2.3, e0.0
  30301. real$' %3.2 = LdConst [1] 1
  30302. goto BB4
  30303. BB4
  30304. val %4.0 = Add %3.1, %3.2, e0.0
  30305. void Return %4.0
  30306. Prom 8:
  30307. BB0
  30308. env e0.0 = LdFunctionEnv
  30309. val^? %0.1 = LdVar depth, e0.0
  30310. val %0.2 = Force %0.1, e0.0
  30311. real$' %0.3 = LdConst [1] 1
  30312. goto BB1
  30313. BB1
  30314. val %1.0 = Sub %0.2, %0.3, e0.0
  30315. void Return %1.0
  30316. Prom 9:
  30317. BB0
  30318. env e0.0 = LdFunctionEnv
  30319. val^? %0.1 = LdVar random, e0.0
  30320. val %0.2 = Force %0.1, e0.0
  30321. void Return %0.2
  30322. ├────── Cleanup redundant operations: == 686
  30323. buildTreeDepth[0x7f92446010b0]
  30324. BB0
  30325. val^ %0.0 = LdArg 0
  30326. val^ %0.1 = LdArg 1
  30327. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  30328. val %0.3 = Force! %0.0, e0.2
  30329. real$' %0.4 = LdConst [1] 1
  30330. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30331. BB2
  30332. t %2.0 = IsObject %0.3
  30333. void AssumeNot %2.0, %0.5
  30334. lgl' %2.2 = Eq %0.3, %0.4, elided
  30335. lgl %2.3 = AsLogical %2.2
  30336. t %2.4 = AsTest %2.3
  30337. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  30338. BB1
  30339. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  30340. void Deopt %1.0
  30341. BB22
  30342. cls %22.0 = LdFun c, e0.2
  30343. prom %22.1 = MkArg missing, Prom(4), e0.2
  30344. val^ %22.2 = Call %22.0(%22.1) e0.2
  30345. goto BB23
  30346. BB3
  30347. cls %3.0 = LdFun vector, e0.2
  30348. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  30349. BB23
  30350. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  30351. val %23.1 = Force %23.0, e0.2
  30352. void Return %23.1
  30353. BB5
  30354. cls' %5.0 = LdConst function (mode = "logical", length = ...
  30355. t %5.1 = Identical %3.0, %5.0
  30356. void Assume %5.1, %3.1
  30357. str$' %5.3 = LdConst [1] "list"
  30358. real$' %5.4 = LdConst [1] 4
  30359. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  30360. void StVar array, %5.5, e0.2
  30361. real$' %5.7 = LdConst [1] 1
  30362. real$' %5.8 = LdConst [1] 4
  30363. val' %5.9 = Colon %5.7, %5.8, elided
  30364. val' %5.10 = SetShared %5.9
  30365. int$' %5.11 = ForSeqSize %5.10
  30366. int$' %5.12 = LdConst [1] 0
  30367. goto BB6
  30368. BB4
  30369. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  30370. void Deopt %4.0
  30371. BB6
  30372. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  30373. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  30374. int$' %6.2 = Inc %6.1
  30375. int$' %6.3 = EnsureNamed %6.2
  30376. lgl' %6.4 = Lt %5.11, %6.3, elided
  30377. t %6.5 = AsTest %6.4
  30378. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  30379. BB21
  30380. goto BB23
  30381. BB7
  30382. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  30383. void StVar i, %7.0, e0.2
  30384. cls %7.2 = LdFun buildTreeDepth, e0.2
  30385. prom %7.3 = MkArg missing, Prom(2), e0.2
  30386. prom %7.4 = MkArg missing, Prom(3), e0.2
  30387. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  30388. BB9
  30389. cls' %9.0 = LdConst function (depth, random) { if (d...
  30390. t %9.1 = Identical %7.2, %9.0
  30391. void Assume %9.1, %7.5
  30392. val^? %9.3 = CastType %7.3
  30393. val^? %9.4 = CastType %7.4
  30394. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  30395. val %9.6 = Force %9.3, e9.5
  30396. real$' %9.7 = LdConst [1] 1
  30397. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  30398. BB8
  30399. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  30400. void Deopt %8.0
  30401. BB11
  30402. t %11.0 = IsObject %9.6
  30403. void AssumeNot %11.0, %9.8
  30404. lgl' %11.2 = Eq %9.6, %9.7, elided
  30405. lgl %11.3 = AsLogical %11.2
  30406. t %11.4 = AsTest %11.3
  30407. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  30408. BB10
  30409. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30410. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  30411. void Deopt %10.1
  30412. BB20
  30413. cls %20.0 = LdFun c, e9.5
  30414. prom %20.1 = MkArg missing, Prom(5), e9.5
  30415. val^ %20.2 = Call %20.0(%20.1) e9.5
  30416. goto BB24
  30417. BB12
  30418. cls %12.0 = LdFun vector, e9.5
  30419. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  30420. BB24
  30421. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  30422. val %24.1 = Force %24.0, e9.5
  30423. val^? %24.2 = LdVar array, e0.2
  30424. val %24.3 = Force %24.2, e0.2
  30425. val^? %24.4 = LdVar i, e0.2
  30426. val %24.5 = Force %24.4, e0.2
  30427. val %24.6 = EnsureNamed %24.1
  30428. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  30429. void StVar array, %24.7, e0.2
  30430. goto BB6
  30431. BB14
  30432. cls' %14.0 = LdConst function (mode = "logical", length = ...
  30433. t %14.1 = Identical %12.0, %14.0
  30434. void Assume %14.1, %12.1
  30435. real$' %14.3 = LdConst [1] 4
  30436. str$' %14.4 = LdConst [1] "list"
  30437. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  30438. void StVar array, %14.5, e9.5
  30439. real$' %14.7 = LdConst [1] 4
  30440. real$' %14.8 = LdConst [1] 1
  30441. val' %14.9 = Colon %14.8, %14.7, elided
  30442. val' %14.10 = SetShared %14.9
  30443. int$' %14.11 = ForSeqSize %14.10
  30444. int$' %14.12 = LdConst [1] 0
  30445. goto BB15
  30446. BB13
  30447. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30448. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  30449. void Deopt %13.1
  30450. BB15
  30451. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  30452. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  30453. int$' %15.2 = Inc %15.1
  30454. int$' %15.3 = EnsureNamed %15.2
  30455. lgl' %15.4 = Lt %14.11, %15.3, elided
  30456. t %15.5 = AsTest %15.4
  30457. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  30458. BB19
  30459. goto BB24
  30460. BB16
  30461. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  30462. void StVar i, %16.0, e9.5
  30463. cls %16.2 = LdFun buildTreeDepth, e9.5
  30464. prom %16.3 = MkArg missing, Prom(8), e9.5
  30465. prom %16.4 = MkArg missing, Prom(9), e9.5
  30466. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  30467. BB18
  30468. cls' %18.0 = LdConst function (depth, random) { if (d...
  30469. t %18.1 = Identical %16.2, %18.0
  30470. void Assume %18.1, %16.5
  30471. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  30472. val^? %18.4 = LdVar array, e9.5
  30473. val %18.5 = Force %18.4, e9.5
  30474. val^? %18.6 = LdVar i, e9.5
  30475. val %18.7 = Force %18.6, e9.5
  30476. val^ %18.8 = EnsureNamed %18.3
  30477. val %18.9 = Force %18.8, e9.5
  30478. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  30479. void StVar array, %18.10, e9.5
  30480. goto BB15
  30481. BB17
  30482. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30483. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  30484. void Deopt %17.1
  30485. Prom 2:
  30486. BB0
  30487. env e0.0 = LdFunctionEnv
  30488. val^? %0.1 = LdVar depth, e0.0
  30489. val %0.2 = Force %0.1, e0.0
  30490. real$' %0.3 = LdConst [1] 1
  30491. goto BB1
  30492. BB1
  30493. val %1.0 = Sub %0.2, %0.3, e0.0
  30494. void Return %1.0
  30495. Prom 3:
  30496. BB0
  30497. env e0.0 = LdFunctionEnv
  30498. val^? %0.1 = LdVar random, e0.0
  30499. val %0.2 = Force %0.1, e0.0
  30500. void Return %0.2
  30501. Prom 4:
  30502. BB0
  30503. env e0.0 = LdFunctionEnv
  30504. cls %0.1 = LdFun nextRandom, e0.0
  30505. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30506. t %0.3 = Identical %0.1, %0.2
  30507. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30508. BB2
  30509. void Assume %0.3, %0.4
  30510. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30511. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30512. real$' %2.3 = LdConst [1] 10
  30513. goto BB3
  30514. BB1
  30515. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30516. void Deopt %1.0
  30517. BB3
  30518. val %3.0 = Force %2.2, e0.0
  30519. val %3.1 = Mod %3.0, %2.3, e0.0
  30520. real$' %3.2 = LdConst [1] 1
  30521. goto BB4
  30522. BB4
  30523. val %4.0 = Add %3.1, %3.2, e0.0
  30524. void Return %4.0
  30525. Prom 5:
  30526. BB0
  30527. env e0.0 = LdFunctionEnv
  30528. cls %0.1 = LdFun nextRandom, e0.0
  30529. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30530. t %0.3 = Identical %0.1, %0.2
  30531. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30532. BB2
  30533. void Assume %0.3, %0.4
  30534. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30535. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30536. real$' %2.3 = LdConst [1] 10
  30537. goto BB3
  30538. BB1
  30539. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30540. void Deopt %1.0
  30541. BB3
  30542. val %3.0 = Force %2.2, e0.0
  30543. val %3.1 = Mod %3.0, %2.3, e0.0
  30544. real$' %3.2 = LdConst [1] 1
  30545. goto BB4
  30546. BB4
  30547. val %4.0 = Add %3.1, %3.2, e0.0
  30548. void Return %4.0
  30549. Prom 8:
  30550. BB0
  30551. env e0.0 = LdFunctionEnv
  30552. val^? %0.1 = LdVar depth, e0.0
  30553. val %0.2 = Force %0.1, e0.0
  30554. real$' %0.3 = LdConst [1] 1
  30555. goto BB1
  30556. BB1
  30557. val %1.0 = Sub %0.2, %0.3, e0.0
  30558. void Return %1.0
  30559. Prom 9:
  30560. BB0
  30561. env e0.0 = LdFunctionEnv
  30562. val^? %0.1 = LdVar random, e0.0
  30563. val %0.2 = Force %0.1, e0.0
  30564. void Return %0.2
  30565. ├────── Delay instructions: == 693
  30566. buildTreeDepth[0x7f92446010b0]
  30567. BB0
  30568. val^ %0.0 = LdArg 0
  30569. val^ %0.1 = LdArg 1
  30570. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  30571. val %0.3 = Force! %0.0, e0.2
  30572. real$' %0.4 = LdConst [1] 1
  30573. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30574. BB2
  30575. t %2.0 = IsObject %0.3
  30576. void AssumeNot %2.0, %0.5
  30577. lgl' %2.2 = Eq %0.3, %0.4, elided
  30578. lgl %2.3 = AsLogical %2.2
  30579. t %2.4 = AsTest %2.3
  30580. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  30581. BB1
  30582. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  30583. void Deopt %1.0
  30584. BB22
  30585. cls %22.0 = LdFun c, e0.2
  30586. prom %22.1 = MkArg missing, Prom(4), e0.2
  30587. val^ %22.2 = Call %22.0(%22.1) e0.2
  30588. goto BB23
  30589. BB3
  30590. cls %3.0 = LdFun vector, e0.2
  30591. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  30592. BB23
  30593. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  30594. val %23.1 = Force %23.0, e0.2
  30595. void Return %23.1
  30596. BB5
  30597. cls' %5.0 = LdConst function (mode = "logical", length = ...
  30598. t %5.1 = Identical %3.0, %5.0
  30599. void Assume %5.1, %3.1
  30600. real$' %5.3 = LdConst [1] 4
  30601. str$' %5.4 = LdConst [1] "list"
  30602. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  30603. void StVar array, %5.5, e0.2
  30604. real$' %5.7 = LdConst [1] 4
  30605. real$' %5.8 = LdConst [1] 1
  30606. val' %5.9 = Colon %5.8, %5.7, elided
  30607. val' %5.10 = SetShared %5.9
  30608. int$' %5.11 = ForSeqSize %5.10
  30609. int$' %5.12 = LdConst [1] 0
  30610. goto BB6
  30611. BB4
  30612. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  30613. void Deopt %4.0
  30614. BB6
  30615. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  30616. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  30617. int$' %6.2 = Inc %6.1
  30618. int$' %6.3 = EnsureNamed %6.2
  30619. lgl' %6.4 = Lt %5.11, %6.3, elided
  30620. t %6.5 = AsTest %6.4
  30621. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  30622. BB21
  30623. goto BB23
  30624. BB7
  30625. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  30626. void StVar i, %7.0, e0.2
  30627. cls %7.2 = LdFun buildTreeDepth, e0.2
  30628. prom %7.3 = MkArg missing, Prom(2), e0.2
  30629. prom %7.4 = MkArg missing, Prom(3), e0.2
  30630. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  30631. BB9
  30632. cls' %9.0 = LdConst function (depth, random) { if (d...
  30633. t %9.1 = Identical %7.2, %9.0
  30634. void Assume %9.1, %7.5
  30635. val^? %9.3 = CastType %7.3
  30636. val^? %9.4 = CastType %7.4
  30637. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  30638. val %9.6 = Force %9.3, e9.5
  30639. real$' %9.7 = LdConst [1] 1
  30640. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  30641. BB8
  30642. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  30643. void Deopt %8.0
  30644. BB11
  30645. t %11.0 = IsObject %9.6
  30646. void AssumeNot %11.0, %9.8
  30647. lgl' %11.2 = Eq %9.6, %9.7, elided
  30648. lgl %11.3 = AsLogical %11.2
  30649. t %11.4 = AsTest %11.3
  30650. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  30651. BB10
  30652. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30653. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  30654. void Deopt %10.1
  30655. BB20
  30656. cls %20.0 = LdFun c, e9.5
  30657. prom %20.1 = MkArg missing, Prom(5), e9.5
  30658. val^ %20.2 = Call %20.0(%20.1) e9.5
  30659. goto BB24
  30660. BB12
  30661. cls %12.0 = LdFun vector, e9.5
  30662. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  30663. BB24
  30664. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  30665. val %24.1 = Force %24.0, e9.5
  30666. val^? %24.2 = LdVar array, e0.2
  30667. val %24.3 = Force %24.2, e0.2
  30668. val^? %24.4 = LdVar i, e0.2
  30669. val %24.5 = Force %24.4, e0.2
  30670. val %24.6 = EnsureNamed %24.1
  30671. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  30672. void StVar array, %24.7, e0.2
  30673. goto BB6
  30674. BB14
  30675. cls' %14.0 = LdConst function (mode = "logical", length = ...
  30676. t %14.1 = Identical %12.0, %14.0
  30677. void Assume %14.1, %12.1
  30678. str$' %14.3 = LdConst [1] "list"
  30679. real$' %14.4 = LdConst [1] 4
  30680. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  30681. void StVar array, %14.5, e9.5
  30682. real$' %14.7 = LdConst [1] 1
  30683. real$' %14.8 = LdConst [1] 4
  30684. val' %14.9 = Colon %14.7, %14.8, elided
  30685. val' %14.10 = SetShared %14.9
  30686. int$' %14.11 = ForSeqSize %14.10
  30687. int$' %14.12 = LdConst [1] 0
  30688. goto BB15
  30689. BB13
  30690. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30691. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  30692. void Deopt %13.1
  30693. BB15
  30694. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  30695. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  30696. int$' %15.2 = Inc %15.1
  30697. int$' %15.3 = EnsureNamed %15.2
  30698. lgl' %15.4 = Lt %14.11, %15.3, elided
  30699. t %15.5 = AsTest %15.4
  30700. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  30701. BB19
  30702. goto BB24
  30703. BB16
  30704. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  30705. void StVar i, %16.0, e9.5
  30706. cls %16.2 = LdFun buildTreeDepth, e9.5
  30707. prom %16.3 = MkArg missing, Prom(8), e9.5
  30708. prom %16.4 = MkArg missing, Prom(9), e9.5
  30709. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  30710. BB18
  30711. cls' %18.0 = LdConst function (depth, random) { if (d...
  30712. t %18.1 = Identical %16.2, %18.0
  30713. void Assume %18.1, %16.5
  30714. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  30715. val^? %18.4 = LdVar array, e9.5
  30716. val %18.5 = Force %18.4, e9.5
  30717. val^? %18.6 = LdVar i, e9.5
  30718. val %18.7 = Force %18.6, e9.5
  30719. val^ %18.8 = EnsureNamed %18.3
  30720. val %18.9 = Force %18.8, e9.5
  30721. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  30722. void StVar array, %18.10, e9.5
  30723. goto BB15
  30724. BB17
  30725. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30726. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  30727. void Deopt %17.1
  30728. Prom 2:
  30729. BB0
  30730. env e0.0 = LdFunctionEnv
  30731. val^? %0.1 = LdVar depth, e0.0
  30732. val %0.2 = Force %0.1, e0.0
  30733. real$' %0.3 = LdConst [1] 1
  30734. goto BB1
  30735. BB1
  30736. val %1.0 = Sub %0.2, %0.3, e0.0
  30737. void Return %1.0
  30738. Prom 3:
  30739. BB0
  30740. env e0.0 = LdFunctionEnv
  30741. val^? %0.1 = LdVar random, e0.0
  30742. val %0.2 = Force %0.1, e0.0
  30743. void Return %0.2
  30744. Prom 4:
  30745. BB0
  30746. env e0.0 = LdFunctionEnv
  30747. cls %0.1 = LdFun nextRandom, e0.0
  30748. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30749. t %0.3 = Identical %0.1, %0.2
  30750. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30751. BB2
  30752. void Assume %0.3, %0.4
  30753. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30754. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30755. real$' %2.3 = LdConst [1] 10
  30756. goto BB3
  30757. BB1
  30758. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30759. void Deopt %1.0
  30760. BB3
  30761. val %3.0 = Force %2.2, e0.0
  30762. val %3.1 = Mod %3.0, %2.3, e0.0
  30763. real$' %3.2 = LdConst [1] 1
  30764. goto BB4
  30765. BB4
  30766. val %4.0 = Add %3.1, %3.2, e0.0
  30767. void Return %4.0
  30768. Prom 5:
  30769. BB0
  30770. env e0.0 = LdFunctionEnv
  30771. cls %0.1 = LdFun nextRandom, e0.0
  30772. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30773. t %0.3 = Identical %0.1, %0.2
  30774. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30775. BB2
  30776. void Assume %0.3, %0.4
  30777. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30778. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30779. real$' %2.3 = LdConst [1] 10
  30780. goto BB3
  30781. BB1
  30782. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  30783. void Deopt %1.0
  30784. BB3
  30785. val %3.0 = Force %2.2, e0.0
  30786. val %3.1 = Mod %3.0, %2.3, e0.0
  30787. real$' %3.2 = LdConst [1] 1
  30788. goto BB4
  30789. BB4
  30790. val %4.0 = Add %3.1, %3.2, e0.0
  30791. void Return %4.0
  30792. Prom 8:
  30793. BB0
  30794. env e0.0 = LdFunctionEnv
  30795. val^? %0.1 = LdVar depth, e0.0
  30796. val %0.2 = Force %0.1, e0.0
  30797. real$' %0.3 = LdConst [1] 1
  30798. goto BB1
  30799. BB1
  30800. val %1.0 = Sub %0.2, %0.3, e0.0
  30801. void Return %1.0
  30802. Prom 9:
  30803. BB0
  30804. env e0.0 = LdFunctionEnv
  30805. val^? %0.1 = LdVar random, e0.0
  30806. val %0.2 = Force %0.1, e0.0
  30807. void Return %0.2
  30808. ├────── Elide environments not needed: == 700
  30809. buildTreeDepth[0x7f92446010b0]
  30810. BB0
  30811. val^ %0.0 = LdArg 0
  30812. val^ %0.1 = LdArg 1
  30813. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  30814. val %0.3 = Force! %0.0, e0.2
  30815. real$' %0.4 = LdConst [1] 1
  30816. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30817. BB2
  30818. t %2.0 = IsObject %0.3
  30819. void AssumeNot %2.0, %0.5
  30820. lgl' %2.2 = Eq %0.3, %0.4, elided
  30821. lgl %2.3 = AsLogical %2.2
  30822. t %2.4 = AsTest %2.3
  30823. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  30824. BB1
  30825. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  30826. void Deopt %1.0
  30827. BB22
  30828. cls %22.0 = LdFun c, e0.2
  30829. prom %22.1 = MkArg missing, Prom(4), e0.2
  30830. val^ %22.2 = Call %22.0(%22.1) e0.2
  30831. goto BB23
  30832. BB3
  30833. cls %3.0 = LdFun vector, e0.2
  30834. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  30835. BB23
  30836. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  30837. val %23.1 = Force %23.0, e0.2
  30838. void Return %23.1
  30839. BB5
  30840. cls' %5.0 = LdConst function (mode = "logical", length = ...
  30841. t %5.1 = Identical %3.0, %5.0
  30842. void Assume %5.1, %3.1
  30843. real$' %5.3 = LdConst [1] 4
  30844. str$' %5.4 = LdConst [1] "list"
  30845. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  30846. void StVar array, %5.5, e0.2
  30847. real$' %5.7 = LdConst [1] 4
  30848. real$' %5.8 = LdConst [1] 1
  30849. val' %5.9 = Colon %5.8, %5.7, elided
  30850. val' %5.10 = SetShared %5.9
  30851. int$' %5.11 = ForSeqSize %5.10
  30852. int$' %5.12 = LdConst [1] 0
  30853. goto BB6
  30854. BB4
  30855. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  30856. void Deopt %4.0
  30857. BB6
  30858. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  30859. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  30860. int$' %6.2 = Inc %6.1
  30861. int$' %6.3 = EnsureNamed %6.2
  30862. lgl' %6.4 = Lt %5.11, %6.3, elided
  30863. t %6.5 = AsTest %6.4
  30864. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  30865. BB21
  30866. goto BB23
  30867. BB7
  30868. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  30869. void StVar i, %7.0, e0.2
  30870. cls %7.2 = LdFun buildTreeDepth, e0.2
  30871. prom %7.3 = MkArg missing, Prom(2), e0.2
  30872. prom %7.4 = MkArg missing, Prom(3), e0.2
  30873. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  30874. BB9
  30875. cls' %9.0 = LdConst function (depth, random) { if (d...
  30876. t %9.1 = Identical %7.2, %9.0
  30877. void Assume %9.1, %7.5
  30878. val^? %9.3 = CastType %7.3
  30879. val^? %9.4 = CastType %7.4
  30880. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  30881. val %9.6 = Force %9.3, e9.5
  30882. real$' %9.7 = LdConst [1] 1
  30883. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  30884. BB8
  30885. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  30886. void Deopt %8.0
  30887. BB11
  30888. t %11.0 = IsObject %9.6
  30889. void AssumeNot %11.0, %9.8
  30890. lgl' %11.2 = Eq %9.6, %9.7, elided
  30891. lgl %11.3 = AsLogical %11.2
  30892. t %11.4 = AsTest %11.3
  30893. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  30894. BB10
  30895. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30896. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  30897. void Deopt %10.1
  30898. BB20
  30899. cls %20.0 = LdFun c, e9.5
  30900. prom %20.1 = MkArg missing, Prom(5), e9.5
  30901. val^ %20.2 = Call %20.0(%20.1) e9.5
  30902. goto BB24
  30903. BB12
  30904. cls %12.0 = LdFun vector, e9.5
  30905. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  30906. BB24
  30907. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  30908. val %24.1 = Force %24.0, e9.5
  30909. val^? %24.2 = LdVar array, e0.2
  30910. val %24.3 = Force %24.2, e0.2
  30911. val^? %24.4 = LdVar i, e0.2
  30912. val %24.5 = Force %24.4, e0.2
  30913. val %24.6 = EnsureNamed %24.1
  30914. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  30915. void StVar array, %24.7, e0.2
  30916. goto BB6
  30917. BB14
  30918. cls' %14.0 = LdConst function (mode = "logical", length = ...
  30919. t %14.1 = Identical %12.0, %14.0
  30920. void Assume %14.1, %12.1
  30921. str$' %14.3 = LdConst [1] "list"
  30922. real$' %14.4 = LdConst [1] 4
  30923. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  30924. void StVar array, %14.5, e9.5
  30925. real$' %14.7 = LdConst [1] 1
  30926. real$' %14.8 = LdConst [1] 4
  30927. val' %14.9 = Colon %14.7, %14.8, elided
  30928. val' %14.10 = SetShared %14.9
  30929. int$' %14.11 = ForSeqSize %14.10
  30930. int$' %14.12 = LdConst [1] 0
  30931. goto BB15
  30932. BB13
  30933. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30934. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  30935. void Deopt %13.1
  30936. BB15
  30937. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  30938. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  30939. int$' %15.2 = Inc %15.1
  30940. int$' %15.3 = EnsureNamed %15.2
  30941. lgl' %15.4 = Lt %14.11, %15.3, elided
  30942. t %15.5 = AsTest %15.4
  30943. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  30944. BB19
  30945. goto BB24
  30946. BB16
  30947. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  30948. void StVar i, %16.0, e9.5
  30949. cls %16.2 = LdFun buildTreeDepth, e9.5
  30950. prom %16.3 = MkArg missing, Prom(8), e9.5
  30951. prom %16.4 = MkArg missing, Prom(9), e9.5
  30952. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  30953. BB18
  30954. cls' %18.0 = LdConst function (depth, random) { if (d...
  30955. t %18.1 = Identical %16.2, %18.0
  30956. void Assume %18.1, %16.5
  30957. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  30958. val^? %18.4 = LdVar array, e9.5
  30959. val %18.5 = Force %18.4, e9.5
  30960. val^? %18.6 = LdVar i, e9.5
  30961. val %18.7 = Force %18.6, e9.5
  30962. val^ %18.8 = EnsureNamed %18.3
  30963. val %18.9 = Force %18.8, e9.5
  30964. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  30965. void StVar array, %18.10, e9.5
  30966. goto BB15
  30967. BB17
  30968. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  30969. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  30970. void Deopt %17.1
  30971. Prom 2:
  30972. BB0
  30973. env e0.0 = LdFunctionEnv
  30974. val^? %0.1 = LdVar depth, e0.0
  30975. val %0.2 = Force %0.1, e0.0
  30976. real$' %0.3 = LdConst [1] 1
  30977. goto BB1
  30978. BB1
  30979. val %1.0 = Sub %0.2, %0.3, e0.0
  30980. void Return %1.0
  30981. Prom 3:
  30982. BB0
  30983. env e0.0 = LdFunctionEnv
  30984. val^? %0.1 = LdVar random, e0.0
  30985. val %0.2 = Force %0.1, e0.0
  30986. void Return %0.2
  30987. Prom 4:
  30988. BB0
  30989. env e0.0 = LdFunctionEnv
  30990. cls %0.1 = LdFun nextRandom, e0.0
  30991. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  30992. t %0.3 = Identical %0.1, %0.2
  30993. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  30994. BB2
  30995. void Assume %0.3, %0.4
  30996. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  30997. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  30998. real$' %2.3 = LdConst [1] 10
  30999. goto BB3
  31000. BB1
  31001. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31002. void Deopt %1.0
  31003. BB3
  31004. val %3.0 = Force %2.2, e0.0
  31005. val %3.1 = Mod %3.0, %2.3, e0.0
  31006. real$' %3.2 = LdConst [1] 1
  31007. goto BB4
  31008. BB4
  31009. val %4.0 = Add %3.1, %3.2, e0.0
  31010. void Return %4.0
  31011. Prom 5:
  31012. BB0
  31013. env e0.0 = LdFunctionEnv
  31014. cls %0.1 = LdFun nextRandom, e0.0
  31015. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31016. t %0.3 = Identical %0.1, %0.2
  31017. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31018. BB2
  31019. void Assume %0.3, %0.4
  31020. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31021. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31022. real$' %2.3 = LdConst [1] 10
  31023. goto BB3
  31024. BB1
  31025. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31026. void Deopt %1.0
  31027. BB3
  31028. val %3.0 = Force %2.2, e0.0
  31029. val %3.1 = Mod %3.0, %2.3, e0.0
  31030. real$' %3.2 = LdConst [1] 1
  31031. goto BB4
  31032. BB4
  31033. val %4.0 = Add %3.1, %3.2, e0.0
  31034. void Return %4.0
  31035. Prom 8:
  31036. BB0
  31037. env e0.0 = LdFunctionEnv
  31038. val^? %0.1 = LdVar depth, e0.0
  31039. val %0.2 = Force %0.1, e0.0
  31040. real$' %0.3 = LdConst [1] 1
  31041. goto BB1
  31042. BB1
  31043. val %1.0 = Sub %0.2, %0.3, e0.0
  31044. void Return %1.0
  31045. Prom 9:
  31046. BB0
  31047. env e0.0 = LdFunctionEnv
  31048. val^? %0.1 = LdVar random, e0.0
  31049. val %0.2 = Force %0.1, e0.0
  31050. void Return %0.2
  31051. ├────── Move environment creation as far as possible: == 707
  31052. buildTreeDepth[0x7f92446010b0]
  31053. BB0
  31054. val^ %0.0 = LdArg 0
  31055. val^ %0.1 = LdArg 1
  31056. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  31057. val %0.3 = Force! %0.0, e0.2
  31058. real$' %0.4 = LdConst [1] 1
  31059. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31060. BB2
  31061. t %2.0 = IsObject %0.3
  31062. void AssumeNot %2.0, %0.5
  31063. lgl' %2.2 = Eq %0.3, %0.4, elided
  31064. lgl %2.3 = AsLogical %2.2
  31065. t %2.4 = AsTest %2.3
  31066. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  31067. BB1
  31068. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  31069. void Deopt %1.0
  31070. BB22
  31071. cls %22.0 = LdFun c, e0.2
  31072. prom %22.1 = MkArg missing, Prom(4), e0.2
  31073. val^ %22.2 = Call %22.0(%22.1) e0.2
  31074. goto BB23
  31075. BB3
  31076. cls %3.0 = LdFun vector, e0.2
  31077. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  31078. BB23
  31079. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  31080. val %23.1 = Force %23.0, e0.2
  31081. void Return %23.1
  31082. BB5
  31083. cls' %5.0 = LdConst function (mode = "logical", length = ...
  31084. t %5.1 = Identical %3.0, %5.0
  31085. void Assume %5.1, %3.1
  31086. real$' %5.3 = LdConst [1] 4
  31087. str$' %5.4 = LdConst [1] "list"
  31088. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  31089. void StVar array, %5.5, e0.2
  31090. real$' %5.7 = LdConst [1] 4
  31091. real$' %5.8 = LdConst [1] 1
  31092. val' %5.9 = Colon %5.8, %5.7, elided
  31093. val' %5.10 = SetShared %5.9
  31094. int$' %5.11 = ForSeqSize %5.10
  31095. int$' %5.12 = LdConst [1] 0
  31096. goto BB6
  31097. BB4
  31098. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  31099. void Deopt %4.0
  31100. BB6
  31101. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  31102. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  31103. int$' %6.2 = Inc %6.1
  31104. int$' %6.3 = EnsureNamed %6.2
  31105. lgl' %6.4 = Lt %5.11, %6.3, elided
  31106. t %6.5 = AsTest %6.4
  31107. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  31108. BB21
  31109. goto BB23
  31110. BB7
  31111. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  31112. void StVar i, %7.0, e0.2
  31113. cls %7.2 = LdFun buildTreeDepth, e0.2
  31114. prom %7.3 = MkArg missing, Prom(2), e0.2
  31115. prom %7.4 = MkArg missing, Prom(3), e0.2
  31116. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  31117. BB9
  31118. cls' %9.0 = LdConst function (depth, random) { if (d...
  31119. t %9.1 = Identical %7.2, %9.0
  31120. void Assume %9.1, %7.5
  31121. val^? %9.3 = CastType %7.3
  31122. val^? %9.4 = CastType %7.4
  31123. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  31124. val %9.6 = Force %9.3, e9.5
  31125. real$' %9.7 = LdConst [1] 1
  31126. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  31127. BB8
  31128. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  31129. void Deopt %8.0
  31130. BB11
  31131. t %11.0 = IsObject %9.6
  31132. void AssumeNot %11.0, %9.8
  31133. lgl' %11.2 = Eq %9.6, %9.7, elided
  31134. lgl %11.3 = AsLogical %11.2
  31135. t %11.4 = AsTest %11.3
  31136. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  31137. BB10
  31138. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31139. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  31140. void Deopt %10.1
  31141. BB20
  31142. cls %20.0 = LdFun c, e9.5
  31143. prom %20.1 = MkArg missing, Prom(5), e9.5
  31144. val^ %20.2 = Call %20.0(%20.1) e9.5
  31145. goto BB24
  31146. BB12
  31147. cls %12.0 = LdFun vector, e9.5
  31148. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  31149. BB24
  31150. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  31151. val %24.1 = Force %24.0, e9.5
  31152. val^? %24.2 = LdVar array, e0.2
  31153. val %24.3 = Force %24.2, e0.2
  31154. val^? %24.4 = LdVar i, e0.2
  31155. val %24.5 = Force %24.4, e0.2
  31156. val %24.6 = EnsureNamed %24.1
  31157. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  31158. void StVar array, %24.7, e0.2
  31159. goto BB6
  31160. BB14
  31161. cls' %14.0 = LdConst function (mode = "logical", length = ...
  31162. t %14.1 = Identical %12.0, %14.0
  31163. void Assume %14.1, %12.1
  31164. str$' %14.3 = LdConst [1] "list"
  31165. real$' %14.4 = LdConst [1] 4
  31166. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  31167. void StVar array, %14.5, e9.5
  31168. real$' %14.7 = LdConst [1] 1
  31169. real$' %14.8 = LdConst [1] 4
  31170. val' %14.9 = Colon %14.7, %14.8, elided
  31171. val' %14.10 = SetShared %14.9
  31172. int$' %14.11 = ForSeqSize %14.10
  31173. int$' %14.12 = LdConst [1] 0
  31174. goto BB15
  31175. BB13
  31176. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31177. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  31178. void Deopt %13.1
  31179. BB15
  31180. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  31181. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  31182. int$' %15.2 = Inc %15.1
  31183. int$' %15.3 = EnsureNamed %15.2
  31184. lgl' %15.4 = Lt %14.11, %15.3, elided
  31185. t %15.5 = AsTest %15.4
  31186. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  31187. BB19
  31188. goto BB24
  31189. BB16
  31190. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  31191. void StVar i, %16.0, e9.5
  31192. cls %16.2 = LdFun buildTreeDepth, e9.5
  31193. prom %16.3 = MkArg missing, Prom(8), e9.5
  31194. prom %16.4 = MkArg missing, Prom(9), e9.5
  31195. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  31196. BB18
  31197. cls' %18.0 = LdConst function (depth, random) { if (d...
  31198. t %18.1 = Identical %16.2, %18.0
  31199. void Assume %18.1, %16.5
  31200. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  31201. val^? %18.4 = LdVar array, e9.5
  31202. val %18.5 = Force %18.4, e9.5
  31203. val^? %18.6 = LdVar i, e9.5
  31204. val %18.7 = Force %18.6, e9.5
  31205. val^ %18.8 = EnsureNamed %18.3
  31206. val %18.9 = Force %18.8, e9.5
  31207. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  31208. void StVar array, %18.10, e9.5
  31209. goto BB15
  31210. BB17
  31211. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31212. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  31213. void Deopt %17.1
  31214. Prom 2:
  31215. BB0
  31216. env e0.0 = LdFunctionEnv
  31217. val^? %0.1 = LdVar depth, e0.0
  31218. val %0.2 = Force %0.1, e0.0
  31219. real$' %0.3 = LdConst [1] 1
  31220. goto BB1
  31221. BB1
  31222. val %1.0 = Sub %0.2, %0.3, e0.0
  31223. void Return %1.0
  31224. Prom 3:
  31225. BB0
  31226. env e0.0 = LdFunctionEnv
  31227. val^? %0.1 = LdVar random, e0.0
  31228. val %0.2 = Force %0.1, e0.0
  31229. void Return %0.2
  31230. Prom 4:
  31231. BB0
  31232. env e0.0 = LdFunctionEnv
  31233. cls %0.1 = LdFun nextRandom, e0.0
  31234. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31235. t %0.3 = Identical %0.1, %0.2
  31236. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31237. BB2
  31238. void Assume %0.3, %0.4
  31239. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31240. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31241. real$' %2.3 = LdConst [1] 10
  31242. goto BB3
  31243. BB1
  31244. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31245. void Deopt %1.0
  31246. BB3
  31247. val %3.0 = Force %2.2, e0.0
  31248. val %3.1 = Mod %3.0, %2.3, e0.0
  31249. real$' %3.2 = LdConst [1] 1
  31250. goto BB4
  31251. BB4
  31252. val %4.0 = Add %3.1, %3.2, e0.0
  31253. void Return %4.0
  31254. Prom 5:
  31255. BB0
  31256. env e0.0 = LdFunctionEnv
  31257. cls %0.1 = LdFun nextRandom, e0.0
  31258. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31259. t %0.3 = Identical %0.1, %0.2
  31260. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31261. BB2
  31262. void Assume %0.3, %0.4
  31263. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31264. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31265. real$' %2.3 = LdConst [1] 10
  31266. goto BB3
  31267. BB1
  31268. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31269. void Deopt %1.0
  31270. BB3
  31271. val %3.0 = Force %2.2, e0.0
  31272. val %3.1 = Mod %3.0, %2.3, e0.0
  31273. real$' %3.2 = LdConst [1] 1
  31274. goto BB4
  31275. BB4
  31276. val %4.0 = Add %3.1, %3.2, e0.0
  31277. void Return %4.0
  31278. Prom 8:
  31279. BB0
  31280. env e0.0 = LdFunctionEnv
  31281. val^? %0.1 = LdVar depth, e0.0
  31282. val %0.2 = Force %0.1, e0.0
  31283. real$' %0.3 = LdConst [1] 1
  31284. goto BB1
  31285. BB1
  31286. val %1.0 = Sub %0.2, %0.3, e0.0
  31287. void Return %1.0
  31288. Prom 9:
  31289. BB0
  31290. env e0.0 = LdFunctionEnv
  31291. val^? %0.1 = LdVar random, e0.0
  31292. val %0.2 = Force %0.1, e0.0
  31293. void Return %0.2
  31294. ├────── Cleanup redundant operations: == 714
  31295. buildTreeDepth[0x7f92446010b0]
  31296. BB0
  31297. val^ %0.0 = LdArg 0
  31298. val^ %0.1 = LdArg 1
  31299. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  31300. val %0.3 = Force! %0.0, e0.2
  31301. real$' %0.4 = LdConst [1] 1
  31302. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31303. BB2
  31304. t %2.0 = IsObject %0.3
  31305. void AssumeNot %2.0, %0.5
  31306. lgl' %2.2 = Eq %0.3, %0.4, elided
  31307. lgl %2.3 = AsLogical %2.2
  31308. t %2.4 = AsTest %2.3
  31309. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  31310. BB1
  31311. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  31312. void Deopt %1.0
  31313. BB22
  31314. cls %22.0 = LdFun c, e0.2
  31315. prom %22.1 = MkArg missing, Prom(4), e0.2
  31316. val^ %22.2 = Call %22.0(%22.1) e0.2
  31317. goto BB23
  31318. BB3
  31319. cls %3.0 = LdFun vector, e0.2
  31320. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  31321. BB23
  31322. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  31323. val %23.1 = Force %23.0, e0.2
  31324. void Return %23.1
  31325. BB5
  31326. cls' %5.0 = LdConst function (mode = "logical", length = ...
  31327. t %5.1 = Identical %3.0, %5.0
  31328. void Assume %5.1, %3.1
  31329. real$' %5.3 = LdConst [1] 4
  31330. str$' %5.4 = LdConst [1] "list"
  31331. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  31332. void StVar array, %5.5, e0.2
  31333. real$' %5.7 = LdConst [1] 4
  31334. real$' %5.8 = LdConst [1] 1
  31335. val' %5.9 = Colon %5.8, %5.7, elided
  31336. val' %5.10 = SetShared %5.9
  31337. int$' %5.11 = ForSeqSize %5.10
  31338. int$' %5.12 = LdConst [1] 0
  31339. goto BB6
  31340. BB4
  31341. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  31342. void Deopt %4.0
  31343. BB6
  31344. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  31345. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  31346. int$' %6.2 = Inc %6.1
  31347. int$' %6.3 = EnsureNamed %6.2
  31348. lgl' %6.4 = Lt %5.11, %6.3, elided
  31349. t %6.5 = AsTest %6.4
  31350. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  31351. BB21
  31352. goto BB23
  31353. BB7
  31354. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  31355. void StVar i, %7.0, e0.2
  31356. cls %7.2 = LdFun buildTreeDepth, e0.2
  31357. prom %7.3 = MkArg missing, Prom(2), e0.2
  31358. prom %7.4 = MkArg missing, Prom(3), e0.2
  31359. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  31360. BB9
  31361. cls' %9.0 = LdConst function (depth, random) { if (d...
  31362. t %9.1 = Identical %7.2, %9.0
  31363. void Assume %9.1, %7.5
  31364. val^? %9.3 = CastType %7.3
  31365. val^? %9.4 = CastType %7.4
  31366. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  31367. val %9.6 = Force %9.3, e9.5
  31368. real$' %9.7 = LdConst [1] 1
  31369. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  31370. BB8
  31371. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  31372. void Deopt %8.0
  31373. BB11
  31374. t %11.0 = IsObject %9.6
  31375. void AssumeNot %11.0, %9.8
  31376. lgl' %11.2 = Eq %9.6, %9.7, elided
  31377. lgl %11.3 = AsLogical %11.2
  31378. t %11.4 = AsTest %11.3
  31379. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  31380. BB10
  31381. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31382. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  31383. void Deopt %10.1
  31384. BB20
  31385. cls %20.0 = LdFun c, e9.5
  31386. prom %20.1 = MkArg missing, Prom(5), e9.5
  31387. val^ %20.2 = Call %20.0(%20.1) e9.5
  31388. goto BB24
  31389. BB12
  31390. cls %12.0 = LdFun vector, e9.5
  31391. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  31392. BB24
  31393. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  31394. val %24.1 = Force %24.0, e9.5
  31395. val^? %24.2 = LdVar array, e0.2
  31396. val %24.3 = Force %24.2, e0.2
  31397. val^? %24.4 = LdVar i, e0.2
  31398. val %24.5 = Force %24.4, e0.2
  31399. val %24.6 = EnsureNamed %24.1
  31400. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  31401. void StVar array, %24.7, e0.2
  31402. goto BB6
  31403. BB14
  31404. cls' %14.0 = LdConst function (mode = "logical", length = ...
  31405. t %14.1 = Identical %12.0, %14.0
  31406. void Assume %14.1, %12.1
  31407. str$' %14.3 = LdConst [1] "list"
  31408. real$' %14.4 = LdConst [1] 4
  31409. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  31410. void StVar array, %14.5, e9.5
  31411. real$' %14.7 = LdConst [1] 1
  31412. real$' %14.8 = LdConst [1] 4
  31413. val' %14.9 = Colon %14.7, %14.8, elided
  31414. val' %14.10 = SetShared %14.9
  31415. int$' %14.11 = ForSeqSize %14.10
  31416. int$' %14.12 = LdConst [1] 0
  31417. goto BB15
  31418. BB13
  31419. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31420. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  31421. void Deopt %13.1
  31422. BB15
  31423. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  31424. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  31425. int$' %15.2 = Inc %15.1
  31426. int$' %15.3 = EnsureNamed %15.2
  31427. lgl' %15.4 = Lt %14.11, %15.3, elided
  31428. t %15.5 = AsTest %15.4
  31429. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  31430. BB19
  31431. goto BB24
  31432. BB16
  31433. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  31434. void StVar i, %16.0, e9.5
  31435. cls %16.2 = LdFun buildTreeDepth, e9.5
  31436. prom %16.3 = MkArg missing, Prom(8), e9.5
  31437. prom %16.4 = MkArg missing, Prom(9), e9.5
  31438. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  31439. BB18
  31440. cls' %18.0 = LdConst function (depth, random) { if (d...
  31441. t %18.1 = Identical %16.2, %18.0
  31442. void Assume %18.1, %16.5
  31443. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  31444. val^? %18.4 = LdVar array, e9.5
  31445. val %18.5 = Force %18.4, e9.5
  31446. val^? %18.6 = LdVar i, e9.5
  31447. val %18.7 = Force %18.6, e9.5
  31448. val^ %18.8 = EnsureNamed %18.3
  31449. val %18.9 = Force %18.8, e9.5
  31450. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  31451. void StVar array, %18.10, e9.5
  31452. goto BB15
  31453. BB17
  31454. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31455. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  31456. void Deopt %17.1
  31457. Prom 2:
  31458. BB0
  31459. env e0.0 = LdFunctionEnv
  31460. val^? %0.1 = LdVar depth, e0.0
  31461. val %0.2 = Force %0.1, e0.0
  31462. real$' %0.3 = LdConst [1] 1
  31463. goto BB1
  31464. BB1
  31465. val %1.0 = Sub %0.2, %0.3, e0.0
  31466. void Return %1.0
  31467. Prom 3:
  31468. BB0
  31469. env e0.0 = LdFunctionEnv
  31470. val^? %0.1 = LdVar random, e0.0
  31471. val %0.2 = Force %0.1, e0.0
  31472. void Return %0.2
  31473. Prom 4:
  31474. BB0
  31475. env e0.0 = LdFunctionEnv
  31476. cls %0.1 = LdFun nextRandom, e0.0
  31477. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31478. t %0.3 = Identical %0.1, %0.2
  31479. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31480. BB2
  31481. void Assume %0.3, %0.4
  31482. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31483. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31484. real$' %2.3 = LdConst [1] 10
  31485. goto BB3
  31486. BB1
  31487. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31488. void Deopt %1.0
  31489. BB3
  31490. val %3.0 = Force %2.2, e0.0
  31491. val %3.1 = Mod %3.0, %2.3, e0.0
  31492. real$' %3.2 = LdConst [1] 1
  31493. goto BB4
  31494. BB4
  31495. val %4.0 = Add %3.1, %3.2, e0.0
  31496. void Return %4.0
  31497. Prom 5:
  31498. BB0
  31499. env e0.0 = LdFunctionEnv
  31500. cls %0.1 = LdFun nextRandom, e0.0
  31501. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31502. t %0.3 = Identical %0.1, %0.2
  31503. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31504. BB2
  31505. void Assume %0.3, %0.4
  31506. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31507. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31508. real$' %2.3 = LdConst [1] 10
  31509. goto BB3
  31510. BB1
  31511. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31512. void Deopt %1.0
  31513. BB3
  31514. val %3.0 = Force %2.2, e0.0
  31515. val %3.1 = Mod %3.0, %2.3, e0.0
  31516. real$' %3.2 = LdConst [1] 1
  31517. goto BB4
  31518. BB4
  31519. val %4.0 = Add %3.1, %3.2, e0.0
  31520. void Return %4.0
  31521. Prom 8:
  31522. BB0
  31523. env e0.0 = LdFunctionEnv
  31524. val^? %0.1 = LdVar depth, e0.0
  31525. val %0.2 = Force %0.1, e0.0
  31526. real$' %0.3 = LdConst [1] 1
  31527. goto BB1
  31528. BB1
  31529. val %1.0 = Sub %0.2, %0.3, e0.0
  31530. void Return %1.0
  31531. Prom 9:
  31532. BB0
  31533. env e0.0 = LdFunctionEnv
  31534. val^? %0.1 = LdVar random, e0.0
  31535. val %0.2 = Force %0.1, e0.0
  31536. void Return %0.2
  31537. ├────── Inline closures: == 721
  31538. buildTreeDepth[0x7f92446010b0]
  31539. BB0
  31540. val^ %0.0 = LdArg 0
  31541. val^ %0.1 = LdArg 1
  31542. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  31543. val %0.3 = Force! %0.0, e0.2
  31544. real$' %0.4 = LdConst [1] 1
  31545. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31546. BB2
  31547. t %2.0 = IsObject %0.3
  31548. void AssumeNot %2.0, %0.5
  31549. lgl' %2.2 = Eq %0.3, %0.4, elided
  31550. lgl %2.3 = AsLogical %2.2
  31551. t %2.4 = AsTest %2.3
  31552. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  31553. BB1
  31554. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  31555. void Deopt %1.0
  31556. BB22
  31557. cls %22.0 = LdFun c, e0.2
  31558. prom %22.1 = MkArg missing, Prom(4), e0.2
  31559. val^ %22.2 = Call %22.0(%22.1) e0.2
  31560. goto BB23
  31561. BB3
  31562. cls %3.0 = LdFun vector, e0.2
  31563. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  31564. BB23
  31565. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  31566. val %23.1 = Force %23.0, e0.2
  31567. void Return %23.1
  31568. BB5
  31569. cls' %5.0 = LdConst function (mode = "logical", length = ...
  31570. t %5.1 = Identical %3.0, %5.0
  31571. void Assume %5.1, %3.1
  31572. real$' %5.3 = LdConst [1] 4
  31573. str$' %5.4 = LdConst [1] "list"
  31574. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  31575. void StVar array, %5.5, e0.2
  31576. real$' %5.7 = LdConst [1] 4
  31577. real$' %5.8 = LdConst [1] 1
  31578. val' %5.9 = Colon %5.8, %5.7, elided
  31579. val' %5.10 = SetShared %5.9
  31580. int$' %5.11 = ForSeqSize %5.10
  31581. int$' %5.12 = LdConst [1] 0
  31582. goto BB6
  31583. BB4
  31584. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  31585. void Deopt %4.0
  31586. BB6
  31587. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  31588. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  31589. int$' %6.2 = Inc %6.1
  31590. int$' %6.3 = EnsureNamed %6.2
  31591. lgl' %6.4 = Lt %5.11, %6.3, elided
  31592. t %6.5 = AsTest %6.4
  31593. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  31594. BB21
  31595. goto BB23
  31596. BB7
  31597. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  31598. void StVar i, %7.0, e0.2
  31599. cls %7.2 = LdFun buildTreeDepth, e0.2
  31600. prom %7.3 = MkArg missing, Prom(2), e0.2
  31601. prom %7.4 = MkArg missing, Prom(3), e0.2
  31602. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  31603. BB9
  31604. cls' %9.0 = LdConst function (depth, random) { if (d...
  31605. t %9.1 = Identical %7.2, %9.0
  31606. void Assume %9.1, %7.5
  31607. val^? %9.3 = CastType %7.3
  31608. val^? %9.4 = CastType %7.4
  31609. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  31610. val %9.6 = Force %9.3, e9.5
  31611. real$' %9.7 = LdConst [1] 1
  31612. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  31613. BB8
  31614. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  31615. void Deopt %8.0
  31616. BB11
  31617. t %11.0 = IsObject %9.6
  31618. void AssumeNot %11.0, %9.8
  31619. lgl' %11.2 = Eq %9.6, %9.7, elided
  31620. lgl %11.3 = AsLogical %11.2
  31621. t %11.4 = AsTest %11.3
  31622. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  31623. BB10
  31624. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31625. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  31626. void Deopt %10.1
  31627. BB20
  31628. cls %20.0 = LdFun c, e9.5
  31629. prom %20.1 = MkArg missing, Prom(5), e9.5
  31630. val^ %20.2 = Call %20.0(%20.1) e9.5
  31631. goto BB24
  31632. BB12
  31633. cls %12.0 = LdFun vector, e9.5
  31634. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  31635. BB24
  31636. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  31637. val %24.1 = Force %24.0, e9.5
  31638. val^? %24.2 = LdVar array, e0.2
  31639. val %24.3 = Force %24.2, e0.2
  31640. val^? %24.4 = LdVar i, e0.2
  31641. val %24.5 = Force %24.4, e0.2
  31642. val %24.6 = EnsureNamed %24.1
  31643. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  31644. void StVar array, %24.7, e0.2
  31645. goto BB6
  31646. BB14
  31647. cls' %14.0 = LdConst function (mode = "logical", length = ...
  31648. t %14.1 = Identical %12.0, %14.0
  31649. void Assume %14.1, %12.1
  31650. str$' %14.3 = LdConst [1] "list"
  31651. real$' %14.4 = LdConst [1] 4
  31652. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  31653. void StVar array, %14.5, e9.5
  31654. real$' %14.7 = LdConst [1] 1
  31655. real$' %14.8 = LdConst [1] 4
  31656. val' %14.9 = Colon %14.7, %14.8, elided
  31657. val' %14.10 = SetShared %14.9
  31658. int$' %14.11 = ForSeqSize %14.10
  31659. int$' %14.12 = LdConst [1] 0
  31660. goto BB15
  31661. BB13
  31662. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31663. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  31664. void Deopt %13.1
  31665. BB15
  31666. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  31667. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  31668. int$' %15.2 = Inc %15.1
  31669. int$' %15.3 = EnsureNamed %15.2
  31670. lgl' %15.4 = Lt %14.11, %15.3, elided
  31671. t %15.5 = AsTest %15.4
  31672. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  31673. BB19
  31674. goto BB24
  31675. BB16
  31676. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  31677. void StVar i, %16.0, e9.5
  31678. cls %16.2 = LdFun buildTreeDepth, e9.5
  31679. prom %16.3 = MkArg missing, Prom(8), e9.5
  31680. prom %16.4 = MkArg missing, Prom(9), e9.5
  31681. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  31682. BB18
  31683. cls' %18.0 = LdConst function (depth, random) { if (d...
  31684. t %18.1 = Identical %16.2, %18.0
  31685. void Assume %18.1, %16.5
  31686. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  31687. val^? %18.4 = LdVar array, e9.5
  31688. val %18.5 = Force %18.4, e9.5
  31689. val^? %18.6 = LdVar i, e9.5
  31690. val %18.7 = Force %18.6, e9.5
  31691. val^ %18.8 = EnsureNamed %18.3
  31692. val %18.9 = Force %18.8, e9.5
  31693. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  31694. void StVar array, %18.10, e9.5
  31695. goto BB15
  31696. BB17
  31697. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31698. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  31699. void Deopt %17.1
  31700. Prom 2:
  31701. BB0
  31702. env e0.0 = LdFunctionEnv
  31703. val^? %0.1 = LdVar depth, e0.0
  31704. val %0.2 = Force %0.1, e0.0
  31705. real$' %0.3 = LdConst [1] 1
  31706. goto BB1
  31707. BB1
  31708. val %1.0 = Sub %0.2, %0.3, e0.0
  31709. void Return %1.0
  31710. Prom 3:
  31711. BB0
  31712. env e0.0 = LdFunctionEnv
  31713. val^? %0.1 = LdVar random, e0.0
  31714. val %0.2 = Force %0.1, e0.0
  31715. void Return %0.2
  31716. Prom 4:
  31717. BB0
  31718. env e0.0 = LdFunctionEnv
  31719. cls %0.1 = LdFun nextRandom, e0.0
  31720. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31721. t %0.3 = Identical %0.1, %0.2
  31722. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31723. BB2
  31724. void Assume %0.3, %0.4
  31725. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31726. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31727. real$' %2.3 = LdConst [1] 10
  31728. goto BB3
  31729. BB1
  31730. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31731. void Deopt %1.0
  31732. BB3
  31733. val %3.0 = Force %2.2, e0.0
  31734. val %3.1 = Mod %3.0, %2.3, e0.0
  31735. real$' %3.2 = LdConst [1] 1
  31736. goto BB4
  31737. BB4
  31738. val %4.0 = Add %3.1, %3.2, e0.0
  31739. void Return %4.0
  31740. Prom 5:
  31741. BB0
  31742. env e0.0 = LdFunctionEnv
  31743. cls %0.1 = LdFun nextRandom, e0.0
  31744. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31745. t %0.3 = Identical %0.1, %0.2
  31746. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31747. BB2
  31748. void Assume %0.3, %0.4
  31749. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31750. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31751. real$' %2.3 = LdConst [1] 10
  31752. goto BB3
  31753. BB1
  31754. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31755. void Deopt %1.0
  31756. BB3
  31757. val %3.0 = Force %2.2, e0.0
  31758. val %3.1 = Mod %3.0, %2.3, e0.0
  31759. real$' %3.2 = LdConst [1] 1
  31760. goto BB4
  31761. BB4
  31762. val %4.0 = Add %3.1, %3.2, e0.0
  31763. void Return %4.0
  31764. Prom 8:
  31765. BB0
  31766. env e0.0 = LdFunctionEnv
  31767. val^? %0.1 = LdVar depth, e0.0
  31768. val %0.2 = Force %0.1, e0.0
  31769. real$' %0.3 = LdConst [1] 1
  31770. goto BB1
  31771. BB1
  31772. val %1.0 = Sub %0.2, %0.3, e0.0
  31773. void Return %1.0
  31774. Prom 9:
  31775. BB0
  31776. env e0.0 = LdFunctionEnv
  31777. val^? %0.1 = LdVar random, e0.0
  31778. val %0.2 = Force %0.1, e0.0
  31779. void Return %0.2
  31780. ├────── Inline Promises: == 728
  31781. buildTreeDepth[0x7f92446010b0]
  31782. BB0
  31783. val^ %0.0 = LdArg 0
  31784. val^ %0.1 = LdArg 1
  31785. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  31786. val %0.3 = Force! %0.0, e0.2
  31787. real$' %0.4 = LdConst [1] 1
  31788. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31789. BB2
  31790. t %2.0 = IsObject %0.3
  31791. void AssumeNot %2.0, %0.5
  31792. lgl' %2.2 = Eq %0.3, %0.4, elided
  31793. lgl %2.3 = AsLogical %2.2
  31794. t %2.4 = AsTest %2.3
  31795. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  31796. BB1
  31797. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  31798. void Deopt %1.0
  31799. BB22
  31800. cls %22.0 = LdFun c, e0.2
  31801. prom %22.1 = MkArg missing, Prom(4), e0.2
  31802. val^ %22.2 = Call %22.0(%22.1) e0.2
  31803. goto BB23
  31804. BB3
  31805. cls %3.0 = LdFun vector, e0.2
  31806. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  31807. BB23
  31808. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  31809. val %23.1 = Force %23.0, e0.2
  31810. void Return %23.1
  31811. BB5
  31812. cls' %5.0 = LdConst function (mode = "logical", length = ...
  31813. t %5.1 = Identical %3.0, %5.0
  31814. void Assume %5.1, %3.1
  31815. real$' %5.3 = LdConst [1] 4
  31816. str$' %5.4 = LdConst [1] "list"
  31817. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  31818. void StVar array, %5.5, e0.2
  31819. real$' %5.7 = LdConst [1] 4
  31820. real$' %5.8 = LdConst [1] 1
  31821. val' %5.9 = Colon %5.8, %5.7, elided
  31822. val' %5.10 = SetShared %5.9
  31823. int$' %5.11 = ForSeqSize %5.10
  31824. int$' %5.12 = LdConst [1] 0
  31825. goto BB6
  31826. BB4
  31827. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  31828. void Deopt %4.0
  31829. BB6
  31830. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  31831. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  31832. int$' %6.2 = Inc %6.1
  31833. int$' %6.3 = EnsureNamed %6.2
  31834. lgl' %6.4 = Lt %5.11, %6.3, elided
  31835. t %6.5 = AsTest %6.4
  31836. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  31837. BB21
  31838. goto BB23
  31839. BB7
  31840. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  31841. void StVar i, %7.0, e0.2
  31842. cls %7.2 = LdFun buildTreeDepth, e0.2
  31843. prom %7.3 = MkArg missing, Prom(2), e0.2
  31844. prom %7.4 = MkArg missing, Prom(3), e0.2
  31845. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  31846. BB9
  31847. cls' %9.0 = LdConst function (depth, random) { if (d...
  31848. t %9.1 = Identical %7.2, %9.0
  31849. void Assume %9.1, %7.5
  31850. val^? %9.3 = CastType %7.3
  31851. val^? %9.4 = CastType %7.4
  31852. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  31853. val %9.6 = Force %9.3, e9.5
  31854. real$' %9.7 = LdConst [1] 1
  31855. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  31856. BB8
  31857. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  31858. void Deopt %8.0
  31859. BB11
  31860. t %11.0 = IsObject %9.6
  31861. void AssumeNot %11.0, %9.8
  31862. lgl' %11.2 = Eq %9.6, %9.7, elided
  31863. lgl %11.3 = AsLogical %11.2
  31864. t %11.4 = AsTest %11.3
  31865. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  31866. BB10
  31867. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31868. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  31869. void Deopt %10.1
  31870. BB20
  31871. cls %20.0 = LdFun c, e9.5
  31872. prom %20.1 = MkArg missing, Prom(5), e9.5
  31873. val^ %20.2 = Call %20.0(%20.1) e9.5
  31874. goto BB24
  31875. BB12
  31876. cls %12.0 = LdFun vector, e9.5
  31877. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  31878. BB24
  31879. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  31880. val %24.1 = Force %24.0, e9.5
  31881. val^? %24.2 = LdVar array, e0.2
  31882. val %24.3 = Force %24.2, e0.2
  31883. val^? %24.4 = LdVar i, e0.2
  31884. val %24.5 = Force %24.4, e0.2
  31885. val %24.6 = EnsureNamed %24.1
  31886. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  31887. void StVar array, %24.7, e0.2
  31888. goto BB6
  31889. BB14
  31890. cls' %14.0 = LdConst function (mode = "logical", length = ...
  31891. t %14.1 = Identical %12.0, %14.0
  31892. void Assume %14.1, %12.1
  31893. str$' %14.3 = LdConst [1] "list"
  31894. real$' %14.4 = LdConst [1] 4
  31895. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  31896. void StVar array, %14.5, e9.5
  31897. real$' %14.7 = LdConst [1] 1
  31898. real$' %14.8 = LdConst [1] 4
  31899. val' %14.9 = Colon %14.7, %14.8, elided
  31900. val' %14.10 = SetShared %14.9
  31901. int$' %14.11 = ForSeqSize %14.10
  31902. int$' %14.12 = LdConst [1] 0
  31903. goto BB15
  31904. BB13
  31905. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31906. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  31907. void Deopt %13.1
  31908. BB15
  31909. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  31910. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  31911. int$' %15.2 = Inc %15.1
  31912. int$' %15.3 = EnsureNamed %15.2
  31913. lgl' %15.4 = Lt %14.11, %15.3, elided
  31914. t %15.5 = AsTest %15.4
  31915. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  31916. BB19
  31917. goto BB24
  31918. BB16
  31919. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  31920. void StVar i, %16.0, e9.5
  31921. cls %16.2 = LdFun buildTreeDepth, e9.5
  31922. prom %16.3 = MkArg missing, Prom(8), e9.5
  31923. prom %16.4 = MkArg missing, Prom(9), e9.5
  31924. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  31925. BB18
  31926. cls' %18.0 = LdConst function (depth, random) { if (d...
  31927. t %18.1 = Identical %16.2, %18.0
  31928. void Assume %18.1, %16.5
  31929. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  31930. val^? %18.4 = LdVar array, e9.5
  31931. val %18.5 = Force %18.4, e9.5
  31932. val^? %18.6 = LdVar i, e9.5
  31933. val %18.7 = Force %18.6, e9.5
  31934. val^ %18.8 = EnsureNamed %18.3
  31935. val %18.9 = Force %18.8, e9.5
  31936. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  31937. void StVar array, %18.10, e9.5
  31938. goto BB15
  31939. BB17
  31940. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  31941. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  31942. void Deopt %17.1
  31943. Prom 2:
  31944. BB0
  31945. env e0.0 = LdFunctionEnv
  31946. val^? %0.1 = LdVar depth, e0.0
  31947. val %0.2 = Force %0.1, e0.0
  31948. real$' %0.3 = LdConst [1] 1
  31949. goto BB1
  31950. BB1
  31951. val %1.0 = Sub %0.2, %0.3, e0.0
  31952. void Return %1.0
  31953. Prom 3:
  31954. BB0
  31955. env e0.0 = LdFunctionEnv
  31956. val^? %0.1 = LdVar random, e0.0
  31957. val %0.2 = Force %0.1, e0.0
  31958. void Return %0.2
  31959. Prom 4:
  31960. BB0
  31961. env e0.0 = LdFunctionEnv
  31962. cls %0.1 = LdFun nextRandom, e0.0
  31963. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31964. t %0.3 = Identical %0.1, %0.2
  31965. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31966. BB2
  31967. void Assume %0.3, %0.4
  31968. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31969. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31970. real$' %2.3 = LdConst [1] 10
  31971. goto BB3
  31972. BB1
  31973. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31974. void Deopt %1.0
  31975. BB3
  31976. val %3.0 = Force %2.2, e0.0
  31977. val %3.1 = Mod %3.0, %2.3, e0.0
  31978. real$' %3.2 = LdConst [1] 1
  31979. goto BB4
  31980. BB4
  31981. val %4.0 = Add %3.1, %3.2, e0.0
  31982. void Return %4.0
  31983. Prom 5:
  31984. BB0
  31985. env e0.0 = LdFunctionEnv
  31986. cls %0.1 = LdFun nextRandom, e0.0
  31987. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  31988. t %0.3 = Identical %0.1, %0.2
  31989. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  31990. BB2
  31991. void Assume %0.3, %0.4
  31992. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  31993. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  31994. real$' %2.3 = LdConst [1] 10
  31995. goto BB3
  31996. BB1
  31997. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  31998. void Deopt %1.0
  31999. BB3
  32000. val %3.0 = Force %2.2, e0.0
  32001. val %3.1 = Mod %3.0, %2.3, e0.0
  32002. real$' %3.2 = LdConst [1] 1
  32003. goto BB4
  32004. BB4
  32005. val %4.0 = Add %3.1, %3.2, e0.0
  32006. void Return %4.0
  32007. Prom 8:
  32008. BB0
  32009. env e0.0 = LdFunctionEnv
  32010. val^? %0.1 = LdVar depth, e0.0
  32011. val %0.2 = Force %0.1, e0.0
  32012. real$' %0.3 = LdConst [1] 1
  32013. goto BB1
  32014. BB1
  32015. val %1.0 = Sub %0.2, %0.3, e0.0
  32016. void Return %1.0
  32017. Prom 9:
  32018. BB0
  32019. env e0.0 = LdFunctionEnv
  32020. val^? %0.1 = LdVar random, e0.0
  32021. val %0.2 = Force %0.1, e0.0
  32022. void Return %0.2
  32023. ├────── Scope resolution: == 735
  32024. buildTreeDepth[0x7f92446010b0]
  32025. BB0
  32026. val^ %0.0 = LdArg 0
  32027. val^ %0.1 = LdArg 1
  32028. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  32029. val %0.3 = Force! %0.0, e0.2
  32030. real$' %0.4 = LdConst [1] 1
  32031. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32032. BB2
  32033. t %2.0 = IsObject %0.3
  32034. void AssumeNot %2.0, %0.5
  32035. lgl' %2.2 = Eq %0.3, %0.4, elided
  32036. lgl %2.3 = AsLogical %2.2
  32037. t %2.4 = AsTest %2.3
  32038. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  32039. BB1
  32040. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  32041. void Deopt %1.0
  32042. BB22
  32043. cls %22.0 = LdFun c, e0.2
  32044. prom %22.1 = MkArg missing, Prom(4), e0.2
  32045. val^ %22.2 = Call %22.0(%22.1) e0.2
  32046. goto BB23
  32047. BB3
  32048. cls %3.0 = LdFun vector, e0.2
  32049. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  32050. BB23
  32051. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  32052. val %23.1 = Force %23.0, e0.2
  32053. void Return %23.1
  32054. BB5
  32055. cls' %5.0 = LdConst function (mode = "logical", length = ...
  32056. t %5.1 = Identical %3.0, %5.0
  32057. void Assume %5.1, %3.1
  32058. real$' %5.3 = LdConst [1] 4
  32059. str$' %5.4 = LdConst [1] "list"
  32060. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  32061. void StVar array, %5.5, e0.2
  32062. real$' %5.7 = LdConst [1] 4
  32063. real$' %5.8 = LdConst [1] 1
  32064. val' %5.9 = Colon %5.8, %5.7, elided
  32065. val' %5.10 = SetShared %5.9
  32066. int$' %5.11 = ForSeqSize %5.10
  32067. int$' %5.12 = LdConst [1] 0
  32068. goto BB6
  32069. BB4
  32070. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  32071. void Deopt %4.0
  32072. BB6
  32073. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  32074. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  32075. int$' %6.2 = Inc %6.1
  32076. int$' %6.3 = EnsureNamed %6.2
  32077. lgl' %6.4 = Lt %5.11, %6.3, elided
  32078. t %6.5 = AsTest %6.4
  32079. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  32080. BB21
  32081. goto BB23
  32082. BB7
  32083. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  32084. void StVar i, %7.0, e0.2
  32085. cls %7.2 = LdFun buildTreeDepth, e0.2
  32086. prom %7.3 = MkArg missing, Prom(2), e0.2
  32087. prom %7.4 = MkArg missing, Prom(3), e0.2
  32088. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  32089. BB9
  32090. cls' %9.0 = LdConst function (depth, random) { if (d...
  32091. t %9.1 = Identical %7.2, %9.0
  32092. void Assume %9.1, %7.5
  32093. val^? %9.3 = CastType %7.3
  32094. val^? %9.4 = CastType %7.4
  32095. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  32096. val %9.6 = Force %9.3, e9.5
  32097. real$' %9.7 = LdConst [1] 1
  32098. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  32099. BB8
  32100. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  32101. void Deopt %8.0
  32102. BB11
  32103. t %11.0 = IsObject %9.6
  32104. void AssumeNot %11.0, %9.8
  32105. lgl' %11.2 = Eq %9.6, %9.7, elided
  32106. lgl %11.3 = AsLogical %11.2
  32107. t %11.4 = AsTest %11.3
  32108. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  32109. BB10
  32110. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32111. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  32112. void Deopt %10.1
  32113. BB20
  32114. cls %20.0 = LdFun c, e9.5
  32115. prom %20.1 = MkArg missing, Prom(5), e9.5
  32116. val^ %20.2 = Call %20.0(%20.1) e9.5
  32117. goto BB24
  32118. BB12
  32119. cls %12.0 = LdFun vector, e9.5
  32120. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  32121. BB24
  32122. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  32123. val %24.1 = Force %24.0, e9.5
  32124. val^? %24.2 = LdVar array, e0.2
  32125. val %24.3 = Force %24.2, e0.2
  32126. val^? %24.4 = LdVar i, e0.2
  32127. val %24.5 = Force %24.4, e0.2
  32128. val %24.6 = EnsureNamed %24.1
  32129. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  32130. void StVar array, %24.7, e0.2
  32131. goto BB6
  32132. BB14
  32133. cls' %14.0 = LdConst function (mode = "logical", length = ...
  32134. t %14.1 = Identical %12.0, %14.0
  32135. void Assume %14.1, %12.1
  32136. str$' %14.3 = LdConst [1] "list"
  32137. real$' %14.4 = LdConst [1] 4
  32138. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  32139. void StVar array, %14.5, e9.5
  32140. real$' %14.7 = LdConst [1] 1
  32141. real$' %14.8 = LdConst [1] 4
  32142. val' %14.9 = Colon %14.7, %14.8, elided
  32143. val' %14.10 = SetShared %14.9
  32144. int$' %14.11 = ForSeqSize %14.10
  32145. int$' %14.12 = LdConst [1] 0
  32146. goto BB15
  32147. BB13
  32148. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32149. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  32150. void Deopt %13.1
  32151. BB15
  32152. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  32153. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  32154. int$' %15.2 = Inc %15.1
  32155. int$' %15.3 = EnsureNamed %15.2
  32156. lgl' %15.4 = Lt %14.11, %15.3, elided
  32157. t %15.5 = AsTest %15.4
  32158. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  32159. BB19
  32160. goto BB24
  32161. BB16
  32162. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  32163. void StVar i, %16.0, e9.5
  32164. cls %16.2 = LdFun buildTreeDepth, e9.5
  32165. prom %16.3 = MkArg missing, Prom(8), e9.5
  32166. prom %16.4 = MkArg missing, Prom(9), e9.5
  32167. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  32168. BB18
  32169. cls' %18.0 = LdConst function (depth, random) { if (d...
  32170. t %18.1 = Identical %16.2, %18.0
  32171. void Assume %18.1, %16.5
  32172. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  32173. val^? %18.4 = LdVar array, e9.5
  32174. val %18.5 = Force %18.4, e9.5
  32175. val^? %18.6 = LdVar i, e9.5
  32176. val %18.7 = Force %18.6, e9.5
  32177. val^ %18.8 = EnsureNamed %18.3
  32178. val %18.9 = Force %18.8, e9.5
  32179. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  32180. void StVar array, %18.10, e9.5
  32181. goto BB15
  32182. BB17
  32183. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32184. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  32185. void Deopt %17.1
  32186. Prom 2:
  32187. BB0
  32188. env e0.0 = LdFunctionEnv
  32189. val^? %0.1 = LdVar depth, e0.0
  32190. val %0.2 = Force %0.1, e0.0
  32191. real$' %0.3 = LdConst [1] 1
  32192. goto BB1
  32193. BB1
  32194. val %1.0 = Sub %0.2, %0.3, e0.0
  32195. void Return %1.0
  32196. Prom 3:
  32197. BB0
  32198. env e0.0 = LdFunctionEnv
  32199. val^? %0.1 = LdVar random, e0.0
  32200. val %0.2 = Force %0.1, e0.0
  32201. void Return %0.2
  32202. Prom 4:
  32203. BB0
  32204. env e0.0 = LdFunctionEnv
  32205. cls %0.1 = LdFun nextRandom, e0.0
  32206. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32207. t %0.3 = Identical %0.1, %0.2
  32208. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32209. BB2
  32210. void Assume %0.3, %0.4
  32211. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32212. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32213. real$' %2.3 = LdConst [1] 10
  32214. goto BB3
  32215. BB1
  32216. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32217. void Deopt %1.0
  32218. BB3
  32219. val %3.0 = Force %2.2, e0.0
  32220. val %3.1 = Mod %3.0, %2.3, e0.0
  32221. real$' %3.2 = LdConst [1] 1
  32222. goto BB4
  32223. BB4
  32224. val %4.0 = Add %3.1, %3.2, e0.0
  32225. void Return %4.0
  32226. Prom 5:
  32227. BB0
  32228. env e0.0 = LdFunctionEnv
  32229. cls %0.1 = LdFun nextRandom, e0.0
  32230. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32231. t %0.3 = Identical %0.1, %0.2
  32232. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32233. BB2
  32234. void Assume %0.3, %0.4
  32235. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32236. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32237. real$' %2.3 = LdConst [1] 10
  32238. goto BB3
  32239. BB1
  32240. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32241. void Deopt %1.0
  32242. BB3
  32243. val %3.0 = Force %2.2, e0.0
  32244. val %3.1 = Mod %3.0, %2.3, e0.0
  32245. real$' %3.2 = LdConst [1] 1
  32246. goto BB4
  32247. BB4
  32248. val %4.0 = Add %3.1, %3.2, e0.0
  32249. void Return %4.0
  32250. Prom 8:
  32251. BB0
  32252. env e0.0 = LdFunctionEnv
  32253. val^? %0.1 = LdVar depth, e0.0
  32254. val %0.2 = Force %0.1, e0.0
  32255. real$' %0.3 = LdConst [1] 1
  32256. goto BB1
  32257. BB1
  32258. val %1.0 = Sub %0.2, %0.3, e0.0
  32259. void Return %1.0
  32260. Prom 9:
  32261. BB0
  32262. env e0.0 = LdFunctionEnv
  32263. val^? %0.1 = LdVar random, e0.0
  32264. val %0.2 = Force %0.1, e0.0
  32265. void Return %0.2
  32266. ├────── Constant folding: == 742
  32267. buildTreeDepth[0x7f92446010b0]
  32268. BB0
  32269. val^ %0.0 = LdArg 0
  32270. val^ %0.1 = LdArg 1
  32271. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  32272. val %0.3 = Force! %0.0, e0.2
  32273. real$' %0.4 = LdConst [1] 1
  32274. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32275. BB2
  32276. t %2.0 = IsObject %0.3
  32277. void AssumeNot %2.0, %0.5
  32278. lgl' %2.2 = Eq %0.3, %0.4, elided
  32279. lgl %2.3 = AsLogical %2.2
  32280. t %2.4 = AsTest %2.3
  32281. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  32282. BB1
  32283. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  32284. void Deopt %1.0
  32285. BB22
  32286. cls %22.0 = LdFun c, e0.2
  32287. prom %22.1 = MkArg missing, Prom(4), e0.2
  32288. val^ %22.2 = Call %22.0(%22.1) e0.2
  32289. goto BB23
  32290. BB3
  32291. cls %3.0 = LdFun vector, e0.2
  32292. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  32293. BB23
  32294. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  32295. val %23.1 = Force %23.0, e0.2
  32296. void Return %23.1
  32297. BB5
  32298. cls' %5.0 = LdConst function (mode = "logical", length = ...
  32299. t %5.1 = Identical %3.0, %5.0
  32300. void Assume %5.1, %3.1
  32301. real$' %5.3 = LdConst [1] 4
  32302. str$' %5.4 = LdConst [1] "list"
  32303. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  32304. void StVar array, %5.5, e0.2
  32305. real$' %5.7 = LdConst [1] 4
  32306. real$' %5.8 = LdConst [1] 1
  32307. val' %5.9 = Colon %5.8, %5.7, elided
  32308. val' %5.10 = SetShared %5.9
  32309. int$' %5.11 = ForSeqSize %5.10
  32310. int$' %5.12 = LdConst [1] 0
  32311. goto BB6
  32312. BB4
  32313. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  32314. void Deopt %4.0
  32315. BB6
  32316. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  32317. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  32318. int$' %6.2 = Inc %6.1
  32319. int$' %6.3 = EnsureNamed %6.2
  32320. lgl' %6.4 = Lt %5.11, %6.3, elided
  32321. t %6.5 = AsTest %6.4
  32322. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  32323. BB21
  32324. goto BB23
  32325. BB7
  32326. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  32327. void StVar i, %7.0, e0.2
  32328. cls %7.2 = LdFun buildTreeDepth, e0.2
  32329. prom %7.3 = MkArg missing, Prom(2), e0.2
  32330. prom %7.4 = MkArg missing, Prom(3), e0.2
  32331. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  32332. BB9
  32333. cls' %9.0 = LdConst function (depth, random) { if (d...
  32334. t %9.1 = Identical %7.2, %9.0
  32335. void Assume %9.1, %7.5
  32336. val^? %9.3 = CastType %7.3
  32337. val^? %9.4 = CastType %7.4
  32338. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  32339. val %9.6 = Force %9.3, e9.5
  32340. real$' %9.7 = LdConst [1] 1
  32341. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  32342. BB8
  32343. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  32344. void Deopt %8.0
  32345. BB11
  32346. t %11.0 = IsObject %9.6
  32347. void AssumeNot %11.0, %9.8
  32348. lgl' %11.2 = Eq %9.6, %9.7, elided
  32349. lgl %11.3 = AsLogical %11.2
  32350. t %11.4 = AsTest %11.3
  32351. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  32352. BB10
  32353. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32354. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  32355. void Deopt %10.1
  32356. BB20
  32357. cls %20.0 = LdFun c, e9.5
  32358. prom %20.1 = MkArg missing, Prom(5), e9.5
  32359. val^ %20.2 = Call %20.0(%20.1) e9.5
  32360. goto BB24
  32361. BB12
  32362. cls %12.0 = LdFun vector, e9.5
  32363. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  32364. BB24
  32365. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  32366. val %24.1 = Force %24.0, e9.5
  32367. val^? %24.2 = LdVar array, e0.2
  32368. val %24.3 = Force %24.2, e0.2
  32369. val^? %24.4 = LdVar i, e0.2
  32370. val %24.5 = Force %24.4, e0.2
  32371. val %24.6 = EnsureNamed %24.1
  32372. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  32373. void StVar array, %24.7, e0.2
  32374. goto BB6
  32375. BB14
  32376. cls' %14.0 = LdConst function (mode = "logical", length = ...
  32377. t %14.1 = Identical %12.0, %14.0
  32378. void Assume %14.1, %12.1
  32379. str$' %14.3 = LdConst [1] "list"
  32380. real$' %14.4 = LdConst [1] 4
  32381. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  32382. void StVar array, %14.5, e9.5
  32383. real$' %14.7 = LdConst [1] 1
  32384. real$' %14.8 = LdConst [1] 4
  32385. val' %14.9 = Colon %14.7, %14.8, elided
  32386. val' %14.10 = SetShared %14.9
  32387. int$' %14.11 = ForSeqSize %14.10
  32388. int$' %14.12 = LdConst [1] 0
  32389. goto BB15
  32390. BB13
  32391. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32392. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  32393. void Deopt %13.1
  32394. BB15
  32395. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  32396. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  32397. int$' %15.2 = Inc %15.1
  32398. int$' %15.3 = EnsureNamed %15.2
  32399. lgl' %15.4 = Lt %14.11, %15.3, elided
  32400. t %15.5 = AsTest %15.4
  32401. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  32402. BB19
  32403. goto BB24
  32404. BB16
  32405. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  32406. void StVar i, %16.0, e9.5
  32407. cls %16.2 = LdFun buildTreeDepth, e9.5
  32408. prom %16.3 = MkArg missing, Prom(8), e9.5
  32409. prom %16.4 = MkArg missing, Prom(9), e9.5
  32410. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  32411. BB18
  32412. cls' %18.0 = LdConst function (depth, random) { if (d...
  32413. t %18.1 = Identical %16.2, %18.0
  32414. void Assume %18.1, %16.5
  32415. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  32416. val^? %18.4 = LdVar array, e9.5
  32417. val %18.5 = Force %18.4, e9.5
  32418. val^? %18.6 = LdVar i, e9.5
  32419. val %18.7 = Force %18.6, e9.5
  32420. val^ %18.8 = EnsureNamed %18.3
  32421. val %18.9 = Force %18.8, e9.5
  32422. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  32423. void StVar array, %18.10, e9.5
  32424. goto BB15
  32425. BB17
  32426. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32427. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  32428. void Deopt %17.1
  32429. Prom 2:
  32430. BB0
  32431. env e0.0 = LdFunctionEnv
  32432. val^? %0.1 = LdVar depth, e0.0
  32433. val %0.2 = Force %0.1, e0.0
  32434. real$' %0.3 = LdConst [1] 1
  32435. goto BB1
  32436. BB1
  32437. val %1.0 = Sub %0.2, %0.3, e0.0
  32438. void Return %1.0
  32439. Prom 3:
  32440. BB0
  32441. env e0.0 = LdFunctionEnv
  32442. val^? %0.1 = LdVar random, e0.0
  32443. val %0.2 = Force %0.1, e0.0
  32444. void Return %0.2
  32445. Prom 4:
  32446. BB0
  32447. env e0.0 = LdFunctionEnv
  32448. cls %0.1 = LdFun nextRandom, e0.0
  32449. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32450. t %0.3 = Identical %0.1, %0.2
  32451. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32452. BB2
  32453. void Assume %0.3, %0.4
  32454. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32455. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32456. real$' %2.3 = LdConst [1] 10
  32457. goto BB3
  32458. BB1
  32459. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32460. void Deopt %1.0
  32461. BB3
  32462. val %3.0 = Force %2.2, e0.0
  32463. val %3.1 = Mod %3.0, %2.3, e0.0
  32464. real$' %3.2 = LdConst [1] 1
  32465. goto BB4
  32466. BB4
  32467. val %4.0 = Add %3.1, %3.2, e0.0
  32468. void Return %4.0
  32469. Prom 5:
  32470. BB0
  32471. env e0.0 = LdFunctionEnv
  32472. cls %0.1 = LdFun nextRandom, e0.0
  32473. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32474. t %0.3 = Identical %0.1, %0.2
  32475. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32476. BB2
  32477. void Assume %0.3, %0.4
  32478. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32479. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32480. real$' %2.3 = LdConst [1] 10
  32481. goto BB3
  32482. BB1
  32483. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32484. void Deopt %1.0
  32485. BB3
  32486. val %3.0 = Force %2.2, e0.0
  32487. val %3.1 = Mod %3.0, %2.3, e0.0
  32488. real$' %3.2 = LdConst [1] 1
  32489. goto BB4
  32490. BB4
  32491. val %4.0 = Add %3.1, %3.2, e0.0
  32492. void Return %4.0
  32493. Prom 8:
  32494. BB0
  32495. env e0.0 = LdFunctionEnv
  32496. val^? %0.1 = LdVar depth, e0.0
  32497. val %0.2 = Force %0.1, e0.0
  32498. real$' %0.3 = LdConst [1] 1
  32499. goto BB1
  32500. BB1
  32501. val %1.0 = Sub %0.2, %0.3, e0.0
  32502. void Return %1.0
  32503. Prom 9:
  32504. BB0
  32505. env e0.0 = LdFunctionEnv
  32506. val^? %0.1 = LdVar random, e0.0
  32507. val %0.2 = Force %0.1, e0.0
  32508. void Return %0.2
  32509. ├────── Cleanup redundant operations: == 749
  32510. buildTreeDepth[0x7f92446010b0]
  32511. BB0
  32512. val^ %0.0 = LdArg 0
  32513. val^ %0.1 = LdArg 1
  32514. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  32515. val %0.3 = Force! %0.0, e0.2
  32516. real$' %0.4 = LdConst [1] 1
  32517. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32518. BB2
  32519. t %2.0 = IsObject %0.3
  32520. void AssumeNot %2.0, %0.5
  32521. lgl' %2.2 = Eq %0.3, %0.4, elided
  32522. lgl %2.3 = AsLogical %2.2
  32523. t %2.4 = AsTest %2.3
  32524. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  32525. BB1
  32526. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  32527. void Deopt %1.0
  32528. BB22
  32529. cls %22.0 = LdFun c, e0.2
  32530. prom %22.1 = MkArg missing, Prom(4), e0.2
  32531. val^ %22.2 = Call %22.0(%22.1) e0.2
  32532. goto BB23
  32533. BB3
  32534. cls %3.0 = LdFun vector, e0.2
  32535. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  32536. BB23
  32537. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  32538. val %23.1 = Force %23.0, e0.2
  32539. void Return %23.1
  32540. BB5
  32541. cls' %5.0 = LdConst function (mode = "logical", length = ...
  32542. t %5.1 = Identical %3.0, %5.0
  32543. void Assume %5.1, %3.1
  32544. real$' %5.3 = LdConst [1] 4
  32545. str$' %5.4 = LdConst [1] "list"
  32546. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  32547. void StVar array, %5.5, e0.2
  32548. real$' %5.7 = LdConst [1] 4
  32549. real$' %5.8 = LdConst [1] 1
  32550. val' %5.9 = Colon %5.8, %5.7, elided
  32551. val' %5.10 = SetShared %5.9
  32552. int$' %5.11 = ForSeqSize %5.10
  32553. int$' %5.12 = LdConst [1] 0
  32554. goto BB6
  32555. BB4
  32556. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  32557. void Deopt %4.0
  32558. BB6
  32559. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  32560. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  32561. int$' %6.2 = Inc %6.1
  32562. int$' %6.3 = EnsureNamed %6.2
  32563. lgl' %6.4 = Lt %5.11, %6.3, elided
  32564. t %6.5 = AsTest %6.4
  32565. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  32566. BB21
  32567. goto BB23
  32568. BB7
  32569. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  32570. void StVar i, %7.0, e0.2
  32571. cls %7.2 = LdFun buildTreeDepth, e0.2
  32572. prom %7.3 = MkArg missing, Prom(2), e0.2
  32573. prom %7.4 = MkArg missing, Prom(3), e0.2
  32574. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  32575. BB9
  32576. cls' %9.0 = LdConst function (depth, random) { if (d...
  32577. t %9.1 = Identical %7.2, %9.0
  32578. void Assume %9.1, %7.5
  32579. val^? %9.3 = CastType %7.3
  32580. val^? %9.4 = CastType %7.4
  32581. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  32582. val %9.6 = Force %9.3, e9.5
  32583. real$' %9.7 = LdConst [1] 1
  32584. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  32585. BB8
  32586. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  32587. void Deopt %8.0
  32588. BB11
  32589. t %11.0 = IsObject %9.6
  32590. void AssumeNot %11.0, %9.8
  32591. lgl' %11.2 = Eq %9.6, %9.7, elided
  32592. lgl %11.3 = AsLogical %11.2
  32593. t %11.4 = AsTest %11.3
  32594. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  32595. BB10
  32596. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32597. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  32598. void Deopt %10.1
  32599. BB20
  32600. cls %20.0 = LdFun c, e9.5
  32601. prom %20.1 = MkArg missing, Prom(5), e9.5
  32602. val^ %20.2 = Call %20.0(%20.1) e9.5
  32603. goto BB24
  32604. BB12
  32605. cls %12.0 = LdFun vector, e9.5
  32606. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  32607. BB24
  32608. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  32609. val %24.1 = Force %24.0, e9.5
  32610. val^? %24.2 = LdVar array, e0.2
  32611. val %24.3 = Force %24.2, e0.2
  32612. val^? %24.4 = LdVar i, e0.2
  32613. val %24.5 = Force %24.4, e0.2
  32614. val %24.6 = EnsureNamed %24.1
  32615. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  32616. void StVar array, %24.7, e0.2
  32617. goto BB6
  32618. BB14
  32619. cls' %14.0 = LdConst function (mode = "logical", length = ...
  32620. t %14.1 = Identical %12.0, %14.0
  32621. void Assume %14.1, %12.1
  32622. str$' %14.3 = LdConst [1] "list"
  32623. real$' %14.4 = LdConst [1] 4
  32624. val %14.5 = CallSafeBuiltin vector(%14.3, %14.4)
  32625. void StVar array, %14.5, e9.5
  32626. real$' %14.7 = LdConst [1] 1
  32627. real$' %14.8 = LdConst [1] 4
  32628. val' %14.9 = Colon %14.7, %14.8, elided
  32629. val' %14.10 = SetShared %14.9
  32630. int$' %14.11 = ForSeqSize %14.10
  32631. int$' %14.12 = LdConst [1] 0
  32632. goto BB15
  32633. BB13
  32634. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32635. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  32636. void Deopt %13.1
  32637. BB15
  32638. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  32639. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  32640. int$' %15.2 = Inc %15.1
  32641. int$' %15.3 = EnsureNamed %15.2
  32642. lgl' %15.4 = Lt %14.11, %15.3, elided
  32643. t %15.5 = AsTest %15.4
  32644. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  32645. BB19
  32646. goto BB24
  32647. BB16
  32648. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  32649. void StVar i, %16.0, e9.5
  32650. cls %16.2 = LdFun buildTreeDepth, e9.5
  32651. prom %16.3 = MkArg missing, Prom(8), e9.5
  32652. prom %16.4 = MkArg missing, Prom(9), e9.5
  32653. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  32654. BB18
  32655. cls' %18.0 = LdConst function (depth, random) { if (d...
  32656. t %18.1 = Identical %16.2, %18.0
  32657. void Assume %18.1, %16.5
  32658. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  32659. val^? %18.4 = LdVar array, e9.5
  32660. val %18.5 = Force %18.4, e9.5
  32661. val^? %18.6 = LdVar i, e9.5
  32662. val %18.7 = Force %18.6, e9.5
  32663. val^ %18.8 = EnsureNamed %18.3
  32664. val %18.9 = Force %18.8, e9.5
  32665. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  32666. void StVar array, %18.10, e9.5
  32667. goto BB15
  32668. BB17
  32669. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32670. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  32671. void Deopt %17.1
  32672. Prom 2:
  32673. BB0
  32674. env e0.0 = LdFunctionEnv
  32675. val^? %0.1 = LdVar depth, e0.0
  32676. val %0.2 = Force %0.1, e0.0
  32677. real$' %0.3 = LdConst [1] 1
  32678. goto BB1
  32679. BB1
  32680. val %1.0 = Sub %0.2, %0.3, e0.0
  32681. void Return %1.0
  32682. Prom 3:
  32683. BB0
  32684. env e0.0 = LdFunctionEnv
  32685. val^? %0.1 = LdVar random, e0.0
  32686. val %0.2 = Force %0.1, e0.0
  32687. void Return %0.2
  32688. Prom 4:
  32689. BB0
  32690. env e0.0 = LdFunctionEnv
  32691. cls %0.1 = LdFun nextRandom, e0.0
  32692. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32693. t %0.3 = Identical %0.1, %0.2
  32694. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32695. BB2
  32696. void Assume %0.3, %0.4
  32697. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32698. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32699. real$' %2.3 = LdConst [1] 10
  32700. goto BB3
  32701. BB1
  32702. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32703. void Deopt %1.0
  32704. BB3
  32705. val %3.0 = Force %2.2, e0.0
  32706. val %3.1 = Mod %3.0, %2.3, e0.0
  32707. real$' %3.2 = LdConst [1] 1
  32708. goto BB4
  32709. BB4
  32710. val %4.0 = Add %3.1, %3.2, e0.0
  32711. void Return %4.0
  32712. Prom 5:
  32713. BB0
  32714. env e0.0 = LdFunctionEnv
  32715. cls %0.1 = LdFun nextRandom, e0.0
  32716. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32717. t %0.3 = Identical %0.1, %0.2
  32718. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32719. BB2
  32720. void Assume %0.3, %0.4
  32721. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32722. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32723. real$' %2.3 = LdConst [1] 10
  32724. goto BB3
  32725. BB1
  32726. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32727. void Deopt %1.0
  32728. BB3
  32729. val %3.0 = Force %2.2, e0.0
  32730. val %3.1 = Mod %3.0, %2.3, e0.0
  32731. real$' %3.2 = LdConst [1] 1
  32732. goto BB4
  32733. BB4
  32734. val %4.0 = Add %3.1, %3.2, e0.0
  32735. void Return %4.0
  32736. Prom 8:
  32737. BB0
  32738. env e0.0 = LdFunctionEnv
  32739. val^? %0.1 = LdVar depth, e0.0
  32740. val %0.2 = Force %0.1, e0.0
  32741. real$' %0.3 = LdConst [1] 1
  32742. goto BB1
  32743. BB1
  32744. val %1.0 = Sub %0.2, %0.3, e0.0
  32745. void Return %1.0
  32746. Prom 9:
  32747. BB0
  32748. env e0.0 = LdFunctionEnv
  32749. val^? %0.1 = LdVar random, e0.0
  32750. val %0.2 = Force %0.1, e0.0
  32751. void Return %0.2
  32752. ├────── Delay instructions: == 756
  32753. buildTreeDepth[0x7f92446010b0]
  32754. BB0
  32755. val^ %0.0 = LdArg 0
  32756. val^ %0.1 = LdArg 1
  32757. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  32758. val %0.3 = Force! %0.0, e0.2
  32759. real$' %0.4 = LdConst [1] 1
  32760. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32761. BB2
  32762. t %2.0 = IsObject %0.3
  32763. void AssumeNot %2.0, %0.5
  32764. lgl' %2.2 = Eq %0.3, %0.4, elided
  32765. lgl %2.3 = AsLogical %2.2
  32766. t %2.4 = AsTest %2.3
  32767. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  32768. BB1
  32769. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  32770. void Deopt %1.0
  32771. BB22
  32772. cls %22.0 = LdFun c, e0.2
  32773. prom %22.1 = MkArg missing, Prom(4), e0.2
  32774. val^ %22.2 = Call %22.0(%22.1) e0.2
  32775. goto BB23
  32776. BB3
  32777. cls %3.0 = LdFun vector, e0.2
  32778. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  32779. BB23
  32780. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  32781. val %23.1 = Force %23.0, e0.2
  32782. void Return %23.1
  32783. BB5
  32784. cls' %5.0 = LdConst function (mode = "logical", length = ...
  32785. t %5.1 = Identical %3.0, %5.0
  32786. void Assume %5.1, %3.1
  32787. str$' %5.3 = LdConst [1] "list"
  32788. real$' %5.4 = LdConst [1] 4
  32789. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  32790. void StVar array, %5.5, e0.2
  32791. real$' %5.7 = LdConst [1] 1
  32792. real$' %5.8 = LdConst [1] 4
  32793. val' %5.9 = Colon %5.7, %5.8, elided
  32794. val' %5.10 = SetShared %5.9
  32795. int$' %5.11 = ForSeqSize %5.10
  32796. int$' %5.12 = LdConst [1] 0
  32797. goto BB6
  32798. BB4
  32799. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  32800. void Deopt %4.0
  32801. BB6
  32802. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  32803. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  32804. int$' %6.2 = Inc %6.1
  32805. int$' %6.3 = EnsureNamed %6.2
  32806. lgl' %6.4 = Lt %5.11, %6.3, elided
  32807. t %6.5 = AsTest %6.4
  32808. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  32809. BB21
  32810. goto BB23
  32811. BB7
  32812. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  32813. void StVar i, %7.0, e0.2
  32814. cls %7.2 = LdFun buildTreeDepth, e0.2
  32815. prom %7.3 = MkArg missing, Prom(2), e0.2
  32816. prom %7.4 = MkArg missing, Prom(3), e0.2
  32817. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  32818. BB9
  32819. cls' %9.0 = LdConst function (depth, random) { if (d...
  32820. t %9.1 = Identical %7.2, %9.0
  32821. void Assume %9.1, %7.5
  32822. val^? %9.3 = CastType %7.3
  32823. val^? %9.4 = CastType %7.4
  32824. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  32825. val %9.6 = Force %9.3, e9.5
  32826. real$' %9.7 = LdConst [1] 1
  32827. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  32828. BB8
  32829. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  32830. void Deopt %8.0
  32831. BB11
  32832. t %11.0 = IsObject %9.6
  32833. void AssumeNot %11.0, %9.8
  32834. lgl' %11.2 = Eq %9.6, %9.7, elided
  32835. lgl %11.3 = AsLogical %11.2
  32836. t %11.4 = AsTest %11.3
  32837. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  32838. BB10
  32839. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32840. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  32841. void Deopt %10.1
  32842. BB20
  32843. cls %20.0 = LdFun c, e9.5
  32844. prom %20.1 = MkArg missing, Prom(5), e9.5
  32845. val^ %20.2 = Call %20.0(%20.1) e9.5
  32846. goto BB24
  32847. BB12
  32848. cls %12.0 = LdFun vector, e9.5
  32849. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  32850. BB24
  32851. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  32852. val %24.1 = Force %24.0, e9.5
  32853. val^? %24.2 = LdVar array, e0.2
  32854. val %24.3 = Force %24.2, e0.2
  32855. val^? %24.4 = LdVar i, e0.2
  32856. val %24.5 = Force %24.4, e0.2
  32857. val %24.6 = EnsureNamed %24.1
  32858. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  32859. void StVar array, %24.7, e0.2
  32860. goto BB6
  32861. BB14
  32862. cls' %14.0 = LdConst function (mode = "logical", length = ...
  32863. t %14.1 = Identical %12.0, %14.0
  32864. void Assume %14.1, %12.1
  32865. real$' %14.3 = LdConst [1] 4
  32866. str$' %14.4 = LdConst [1] "list"
  32867. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  32868. void StVar array, %14.5, e9.5
  32869. real$' %14.7 = LdConst [1] 4
  32870. real$' %14.8 = LdConst [1] 1
  32871. val' %14.9 = Colon %14.8, %14.7, elided
  32872. val' %14.10 = SetShared %14.9
  32873. int$' %14.11 = ForSeqSize %14.10
  32874. int$' %14.12 = LdConst [1] 0
  32875. goto BB15
  32876. BB13
  32877. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32878. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  32879. void Deopt %13.1
  32880. BB15
  32881. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  32882. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  32883. int$' %15.2 = Inc %15.1
  32884. int$' %15.3 = EnsureNamed %15.2
  32885. lgl' %15.4 = Lt %14.11, %15.3, elided
  32886. t %15.5 = AsTest %15.4
  32887. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  32888. BB19
  32889. goto BB24
  32890. BB16
  32891. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  32892. void StVar i, %16.0, e9.5
  32893. cls %16.2 = LdFun buildTreeDepth, e9.5
  32894. prom %16.3 = MkArg missing, Prom(8), e9.5
  32895. prom %16.4 = MkArg missing, Prom(9), e9.5
  32896. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  32897. BB18
  32898. cls' %18.0 = LdConst function (depth, random) { if (d...
  32899. t %18.1 = Identical %16.2, %18.0
  32900. void Assume %18.1, %16.5
  32901. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  32902. val^? %18.4 = LdVar array, e9.5
  32903. val %18.5 = Force %18.4, e9.5
  32904. val^? %18.6 = LdVar i, e9.5
  32905. val %18.7 = Force %18.6, e9.5
  32906. val^ %18.8 = EnsureNamed %18.3
  32907. val %18.9 = Force %18.8, e9.5
  32908. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  32909. void StVar array, %18.10, e9.5
  32910. goto BB15
  32911. BB17
  32912. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  32913. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  32914. void Deopt %17.1
  32915. Prom 2:
  32916. BB0
  32917. env e0.0 = LdFunctionEnv
  32918. val^? %0.1 = LdVar depth, e0.0
  32919. val %0.2 = Force %0.1, e0.0
  32920. real$' %0.3 = LdConst [1] 1
  32921. goto BB1
  32922. BB1
  32923. val %1.0 = Sub %0.2, %0.3, e0.0
  32924. void Return %1.0
  32925. Prom 3:
  32926. BB0
  32927. env e0.0 = LdFunctionEnv
  32928. val^? %0.1 = LdVar random, e0.0
  32929. val %0.2 = Force %0.1, e0.0
  32930. void Return %0.2
  32931. Prom 4:
  32932. BB0
  32933. env e0.0 = LdFunctionEnv
  32934. cls %0.1 = LdFun nextRandom, e0.0
  32935. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32936. t %0.3 = Identical %0.1, %0.2
  32937. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32938. BB2
  32939. void Assume %0.3, %0.4
  32940. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32941. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32942. real$' %2.3 = LdConst [1] 10
  32943. goto BB3
  32944. BB1
  32945. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32946. void Deopt %1.0
  32947. BB3
  32948. val %3.0 = Force %2.2, e0.0
  32949. val %3.1 = Mod %3.0, %2.3, e0.0
  32950. real$' %3.2 = LdConst [1] 1
  32951. goto BB4
  32952. BB4
  32953. val %4.0 = Add %3.1, %3.2, e0.0
  32954. void Return %4.0
  32955. Prom 5:
  32956. BB0
  32957. env e0.0 = LdFunctionEnv
  32958. cls %0.1 = LdFun nextRandom, e0.0
  32959. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  32960. t %0.3 = Identical %0.1, %0.2
  32961. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  32962. BB2
  32963. void Assume %0.3, %0.4
  32964. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  32965. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  32966. real$' %2.3 = LdConst [1] 10
  32967. goto BB3
  32968. BB1
  32969. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  32970. void Deopt %1.0
  32971. BB3
  32972. val %3.0 = Force %2.2, e0.0
  32973. val %3.1 = Mod %3.0, %2.3, e0.0
  32974. real$' %3.2 = LdConst [1] 1
  32975. goto BB4
  32976. BB4
  32977. val %4.0 = Add %3.1, %3.2, e0.0
  32978. void Return %4.0
  32979. Prom 8:
  32980. BB0
  32981. env e0.0 = LdFunctionEnv
  32982. val^? %0.1 = LdVar depth, e0.0
  32983. val %0.2 = Force %0.1, e0.0
  32984. real$' %0.3 = LdConst [1] 1
  32985. goto BB1
  32986. BB1
  32987. val %1.0 = Sub %0.2, %0.3, e0.0
  32988. void Return %1.0
  32989. Prom 9:
  32990. BB0
  32991. env e0.0 = LdFunctionEnv
  32992. val^? %0.1 = LdVar random, e0.0
  32993. val %0.2 = Force %0.1, e0.0
  32994. void Return %0.2
  32995. ├────── Elide environments not needed: == 763
  32996. buildTreeDepth[0x7f92446010b0]
  32997. BB0
  32998. val^ %0.0 = LdArg 0
  32999. val^ %0.1 = LdArg 1
  33000. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  33001. val %0.3 = Force! %0.0, e0.2
  33002. real$' %0.4 = LdConst [1] 1
  33003. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33004. BB2
  33005. t %2.0 = IsObject %0.3
  33006. void AssumeNot %2.0, %0.5
  33007. lgl' %2.2 = Eq %0.3, %0.4, elided
  33008. lgl %2.3 = AsLogical %2.2
  33009. t %2.4 = AsTest %2.3
  33010. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  33011. BB1
  33012. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  33013. void Deopt %1.0
  33014. BB22
  33015. cls %22.0 = LdFun c, e0.2
  33016. prom %22.1 = MkArg missing, Prom(4), e0.2
  33017. val^ %22.2 = Call %22.0(%22.1) e0.2
  33018. goto BB23
  33019. BB3
  33020. cls %3.0 = LdFun vector, e0.2
  33021. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  33022. BB23
  33023. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  33024. val %23.1 = Force %23.0, e0.2
  33025. void Return %23.1
  33026. BB5
  33027. cls' %5.0 = LdConst function (mode = "logical", length = ...
  33028. t %5.1 = Identical %3.0, %5.0
  33029. void Assume %5.1, %3.1
  33030. str$' %5.3 = LdConst [1] "list"
  33031. real$' %5.4 = LdConst [1] 4
  33032. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  33033. void StVar array, %5.5, e0.2
  33034. real$' %5.7 = LdConst [1] 1
  33035. real$' %5.8 = LdConst [1] 4
  33036. val' %5.9 = Colon %5.7, %5.8, elided
  33037. val' %5.10 = SetShared %5.9
  33038. int$' %5.11 = ForSeqSize %5.10
  33039. int$' %5.12 = LdConst [1] 0
  33040. goto BB6
  33041. BB4
  33042. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  33043. void Deopt %4.0
  33044. BB6
  33045. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  33046. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  33047. int$' %6.2 = Inc %6.1
  33048. int$' %6.3 = EnsureNamed %6.2
  33049. lgl' %6.4 = Lt %5.11, %6.3, elided
  33050. t %6.5 = AsTest %6.4
  33051. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  33052. BB21
  33053. goto BB23
  33054. BB7
  33055. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  33056. void StVar i, %7.0, e0.2
  33057. cls %7.2 = LdFun buildTreeDepth, e0.2
  33058. prom %7.3 = MkArg missing, Prom(2), e0.2
  33059. prom %7.4 = MkArg missing, Prom(3), e0.2
  33060. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  33061. BB9
  33062. cls' %9.0 = LdConst function (depth, random) { if (d...
  33063. t %9.1 = Identical %7.2, %9.0
  33064. void Assume %9.1, %7.5
  33065. val^? %9.3 = CastType %7.3
  33066. val^? %9.4 = CastType %7.4
  33067. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  33068. val %9.6 = Force %9.3, e9.5
  33069. real$' %9.7 = LdConst [1] 1
  33070. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  33071. BB8
  33072. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  33073. void Deopt %8.0
  33074. BB11
  33075. t %11.0 = IsObject %9.6
  33076. void AssumeNot %11.0, %9.8
  33077. lgl' %11.2 = Eq %9.6, %9.7, elided
  33078. lgl %11.3 = AsLogical %11.2
  33079. t %11.4 = AsTest %11.3
  33080. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  33081. BB10
  33082. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33083. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  33084. void Deopt %10.1
  33085. BB20
  33086. cls %20.0 = LdFun c, e9.5
  33087. prom %20.1 = MkArg missing, Prom(5), e9.5
  33088. val^ %20.2 = Call %20.0(%20.1) e9.5
  33089. goto BB24
  33090. BB12
  33091. cls %12.0 = LdFun vector, e9.5
  33092. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  33093. BB24
  33094. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  33095. val %24.1 = Force %24.0, e9.5
  33096. val^? %24.2 = LdVar array, e0.2
  33097. val %24.3 = Force %24.2, e0.2
  33098. val^? %24.4 = LdVar i, e0.2
  33099. val %24.5 = Force %24.4, e0.2
  33100. val %24.6 = EnsureNamed %24.1
  33101. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  33102. void StVar array, %24.7, e0.2
  33103. goto BB6
  33104. BB14
  33105. cls' %14.0 = LdConst function (mode = "logical", length = ...
  33106. t %14.1 = Identical %12.0, %14.0
  33107. void Assume %14.1, %12.1
  33108. real$' %14.3 = LdConst [1] 4
  33109. str$' %14.4 = LdConst [1] "list"
  33110. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  33111. void StVar array, %14.5, e9.5
  33112. real$' %14.7 = LdConst [1] 4
  33113. real$' %14.8 = LdConst [1] 1
  33114. val' %14.9 = Colon %14.8, %14.7, elided
  33115. val' %14.10 = SetShared %14.9
  33116. int$' %14.11 = ForSeqSize %14.10
  33117. int$' %14.12 = LdConst [1] 0
  33118. goto BB15
  33119. BB13
  33120. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33121. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  33122. void Deopt %13.1
  33123. BB15
  33124. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  33125. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  33126. int$' %15.2 = Inc %15.1
  33127. int$' %15.3 = EnsureNamed %15.2
  33128. lgl' %15.4 = Lt %14.11, %15.3, elided
  33129. t %15.5 = AsTest %15.4
  33130. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  33131. BB19
  33132. goto BB24
  33133. BB16
  33134. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  33135. void StVar i, %16.0, e9.5
  33136. cls %16.2 = LdFun buildTreeDepth, e9.5
  33137. prom %16.3 = MkArg missing, Prom(8), e9.5
  33138. prom %16.4 = MkArg missing, Prom(9), e9.5
  33139. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  33140. BB18
  33141. cls' %18.0 = LdConst function (depth, random) { if (d...
  33142. t %18.1 = Identical %16.2, %18.0
  33143. void Assume %18.1, %16.5
  33144. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  33145. val^? %18.4 = LdVar array, e9.5
  33146. val %18.5 = Force %18.4, e9.5
  33147. val^? %18.6 = LdVar i, e9.5
  33148. val %18.7 = Force %18.6, e9.5
  33149. val^ %18.8 = EnsureNamed %18.3
  33150. val %18.9 = Force %18.8, e9.5
  33151. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  33152. void StVar array, %18.10, e9.5
  33153. goto BB15
  33154. BB17
  33155. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33156. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  33157. void Deopt %17.1
  33158. Prom 2:
  33159. BB0
  33160. env e0.0 = LdFunctionEnv
  33161. val^? %0.1 = LdVar depth, e0.0
  33162. val %0.2 = Force %0.1, e0.0
  33163. real$' %0.3 = LdConst [1] 1
  33164. goto BB1
  33165. BB1
  33166. val %1.0 = Sub %0.2, %0.3, e0.0
  33167. void Return %1.0
  33168. Prom 3:
  33169. BB0
  33170. env e0.0 = LdFunctionEnv
  33171. val^? %0.1 = LdVar random, e0.0
  33172. val %0.2 = Force %0.1, e0.0
  33173. void Return %0.2
  33174. Prom 4:
  33175. BB0
  33176. env e0.0 = LdFunctionEnv
  33177. cls %0.1 = LdFun nextRandom, e0.0
  33178. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33179. t %0.3 = Identical %0.1, %0.2
  33180. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33181. BB2
  33182. void Assume %0.3, %0.4
  33183. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33184. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33185. real$' %2.3 = LdConst [1] 10
  33186. goto BB3
  33187. BB1
  33188. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33189. void Deopt %1.0
  33190. BB3
  33191. val %3.0 = Force %2.2, e0.0
  33192. val %3.1 = Mod %3.0, %2.3, e0.0
  33193. real$' %3.2 = LdConst [1] 1
  33194. goto BB4
  33195. BB4
  33196. val %4.0 = Add %3.1, %3.2, e0.0
  33197. void Return %4.0
  33198. Prom 5:
  33199. BB0
  33200. env e0.0 = LdFunctionEnv
  33201. cls %0.1 = LdFun nextRandom, e0.0
  33202. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33203. t %0.3 = Identical %0.1, %0.2
  33204. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33205. BB2
  33206. void Assume %0.3, %0.4
  33207. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33208. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33209. real$' %2.3 = LdConst [1] 10
  33210. goto BB3
  33211. BB1
  33212. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33213. void Deopt %1.0
  33214. BB3
  33215. val %3.0 = Force %2.2, e0.0
  33216. val %3.1 = Mod %3.0, %2.3, e0.0
  33217. real$' %3.2 = LdConst [1] 1
  33218. goto BB4
  33219. BB4
  33220. val %4.0 = Add %3.1, %3.2, e0.0
  33221. void Return %4.0
  33222. Prom 8:
  33223. BB0
  33224. env e0.0 = LdFunctionEnv
  33225. val^? %0.1 = LdVar depth, e0.0
  33226. val %0.2 = Force %0.1, e0.0
  33227. real$' %0.3 = LdConst [1] 1
  33228. goto BB1
  33229. BB1
  33230. val %1.0 = Sub %0.2, %0.3, e0.0
  33231. void Return %1.0
  33232. Prom 9:
  33233. BB0
  33234. env e0.0 = LdFunctionEnv
  33235. val^? %0.1 = LdVar random, e0.0
  33236. val %0.2 = Force %0.1, e0.0
  33237. void Return %0.2
  33238. ├────── Move environment creation as far as possible: == 770
  33239. buildTreeDepth[0x7f92446010b0]
  33240. BB0
  33241. val^ %0.0 = LdArg 0
  33242. val^ %0.1 = LdArg 1
  33243. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  33244. val %0.3 = Force! %0.0, e0.2
  33245. real$' %0.4 = LdConst [1] 1
  33246. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33247. BB2
  33248. t %2.0 = IsObject %0.3
  33249. void AssumeNot %2.0, %0.5
  33250. lgl' %2.2 = Eq %0.3, %0.4, elided
  33251. lgl %2.3 = AsLogical %2.2
  33252. t %2.4 = AsTest %2.3
  33253. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  33254. BB1
  33255. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  33256. void Deopt %1.0
  33257. BB22
  33258. cls %22.0 = LdFun c, e0.2
  33259. prom %22.1 = MkArg missing, Prom(4), e0.2
  33260. val^ %22.2 = Call %22.0(%22.1) e0.2
  33261. goto BB23
  33262. BB3
  33263. cls %3.0 = LdFun vector, e0.2
  33264. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  33265. BB23
  33266. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  33267. val %23.1 = Force %23.0, e0.2
  33268. void Return %23.1
  33269. BB5
  33270. cls' %5.0 = LdConst function (mode = "logical", length = ...
  33271. t %5.1 = Identical %3.0, %5.0
  33272. void Assume %5.1, %3.1
  33273. str$' %5.3 = LdConst [1] "list"
  33274. real$' %5.4 = LdConst [1] 4
  33275. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  33276. void StVar array, %5.5, e0.2
  33277. real$' %5.7 = LdConst [1] 1
  33278. real$' %5.8 = LdConst [1] 4
  33279. val' %5.9 = Colon %5.7, %5.8, elided
  33280. val' %5.10 = SetShared %5.9
  33281. int$' %5.11 = ForSeqSize %5.10
  33282. int$' %5.12 = LdConst [1] 0
  33283. goto BB6
  33284. BB4
  33285. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  33286. void Deopt %4.0
  33287. BB6
  33288. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  33289. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  33290. int$' %6.2 = Inc %6.1
  33291. int$' %6.3 = EnsureNamed %6.2
  33292. lgl' %6.4 = Lt %5.11, %6.3, elided
  33293. t %6.5 = AsTest %6.4
  33294. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  33295. BB21
  33296. goto BB23
  33297. BB7
  33298. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  33299. void StVar i, %7.0, e0.2
  33300. cls %7.2 = LdFun buildTreeDepth, e0.2
  33301. prom %7.3 = MkArg missing, Prom(2), e0.2
  33302. prom %7.4 = MkArg missing, Prom(3), e0.2
  33303. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  33304. BB9
  33305. cls' %9.0 = LdConst function (depth, random) { if (d...
  33306. t %9.1 = Identical %7.2, %9.0
  33307. void Assume %9.1, %7.5
  33308. val^? %9.3 = CastType %7.3
  33309. val^? %9.4 = CastType %7.4
  33310. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  33311. val %9.6 = Force %9.3, e9.5
  33312. real$' %9.7 = LdConst [1] 1
  33313. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  33314. BB8
  33315. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  33316. void Deopt %8.0
  33317. BB11
  33318. t %11.0 = IsObject %9.6
  33319. void AssumeNot %11.0, %9.8
  33320. lgl' %11.2 = Eq %9.6, %9.7, elided
  33321. lgl %11.3 = AsLogical %11.2
  33322. t %11.4 = AsTest %11.3
  33323. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  33324. BB10
  33325. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33326. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  33327. void Deopt %10.1
  33328. BB20
  33329. cls %20.0 = LdFun c, e9.5
  33330. prom %20.1 = MkArg missing, Prom(5), e9.5
  33331. val^ %20.2 = Call %20.0(%20.1) e9.5
  33332. goto BB24
  33333. BB12
  33334. cls %12.0 = LdFun vector, e9.5
  33335. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  33336. BB24
  33337. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  33338. val %24.1 = Force %24.0, e9.5
  33339. val^? %24.2 = LdVar array, e0.2
  33340. val %24.3 = Force %24.2, e0.2
  33341. val^? %24.4 = LdVar i, e0.2
  33342. val %24.5 = Force %24.4, e0.2
  33343. val %24.6 = EnsureNamed %24.1
  33344. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  33345. void StVar array, %24.7, e0.2
  33346. goto BB6
  33347. BB14
  33348. cls' %14.0 = LdConst function (mode = "logical", length = ...
  33349. t %14.1 = Identical %12.0, %14.0
  33350. void Assume %14.1, %12.1
  33351. real$' %14.3 = LdConst [1] 4
  33352. str$' %14.4 = LdConst [1] "list"
  33353. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  33354. void StVar array, %14.5, e9.5
  33355. real$' %14.7 = LdConst [1] 4
  33356. real$' %14.8 = LdConst [1] 1
  33357. val' %14.9 = Colon %14.8, %14.7, elided
  33358. val' %14.10 = SetShared %14.9
  33359. int$' %14.11 = ForSeqSize %14.10
  33360. int$' %14.12 = LdConst [1] 0
  33361. goto BB15
  33362. BB13
  33363. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33364. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  33365. void Deopt %13.1
  33366. BB15
  33367. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  33368. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  33369. int$' %15.2 = Inc %15.1
  33370. int$' %15.3 = EnsureNamed %15.2
  33371. lgl' %15.4 = Lt %14.11, %15.3, elided
  33372. t %15.5 = AsTest %15.4
  33373. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  33374. BB19
  33375. goto BB24
  33376. BB16
  33377. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  33378. void StVar i, %16.0, e9.5
  33379. cls %16.2 = LdFun buildTreeDepth, e9.5
  33380. prom %16.3 = MkArg missing, Prom(8), e9.5
  33381. prom %16.4 = MkArg missing, Prom(9), e9.5
  33382. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  33383. BB18
  33384. cls' %18.0 = LdConst function (depth, random) { if (d...
  33385. t %18.1 = Identical %16.2, %18.0
  33386. void Assume %18.1, %16.5
  33387. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  33388. val^? %18.4 = LdVar array, e9.5
  33389. val %18.5 = Force %18.4, e9.5
  33390. val^? %18.6 = LdVar i, e9.5
  33391. val %18.7 = Force %18.6, e9.5
  33392. val^ %18.8 = EnsureNamed %18.3
  33393. val %18.9 = Force %18.8, e9.5
  33394. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  33395. void StVar array, %18.10, e9.5
  33396. goto BB15
  33397. BB17
  33398. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33399. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  33400. void Deopt %17.1
  33401. Prom 2:
  33402. BB0
  33403. env e0.0 = LdFunctionEnv
  33404. val^? %0.1 = LdVar depth, e0.0
  33405. val %0.2 = Force %0.1, e0.0
  33406. real$' %0.3 = LdConst [1] 1
  33407. goto BB1
  33408. BB1
  33409. val %1.0 = Sub %0.2, %0.3, e0.0
  33410. void Return %1.0
  33411. Prom 3:
  33412. BB0
  33413. env e0.0 = LdFunctionEnv
  33414. val^? %0.1 = LdVar random, e0.0
  33415. val %0.2 = Force %0.1, e0.0
  33416. void Return %0.2
  33417. Prom 4:
  33418. BB0
  33419. env e0.0 = LdFunctionEnv
  33420. cls %0.1 = LdFun nextRandom, e0.0
  33421. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33422. t %0.3 = Identical %0.1, %0.2
  33423. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33424. BB2
  33425. void Assume %0.3, %0.4
  33426. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33427. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33428. real$' %2.3 = LdConst [1] 10
  33429. goto BB3
  33430. BB1
  33431. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33432. void Deopt %1.0
  33433. BB3
  33434. val %3.0 = Force %2.2, e0.0
  33435. val %3.1 = Mod %3.0, %2.3, e0.0
  33436. real$' %3.2 = LdConst [1] 1
  33437. goto BB4
  33438. BB4
  33439. val %4.0 = Add %3.1, %3.2, e0.0
  33440. void Return %4.0
  33441. Prom 5:
  33442. BB0
  33443. env e0.0 = LdFunctionEnv
  33444. cls %0.1 = LdFun nextRandom, e0.0
  33445. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33446. t %0.3 = Identical %0.1, %0.2
  33447. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33448. BB2
  33449. void Assume %0.3, %0.4
  33450. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33451. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33452. real$' %2.3 = LdConst [1] 10
  33453. goto BB3
  33454. BB1
  33455. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33456. void Deopt %1.0
  33457. BB3
  33458. val %3.0 = Force %2.2, e0.0
  33459. val %3.1 = Mod %3.0, %2.3, e0.0
  33460. real$' %3.2 = LdConst [1] 1
  33461. goto BB4
  33462. BB4
  33463. val %4.0 = Add %3.1, %3.2, e0.0
  33464. void Return %4.0
  33465. Prom 8:
  33466. BB0
  33467. env e0.0 = LdFunctionEnv
  33468. val^? %0.1 = LdVar depth, e0.0
  33469. val %0.2 = Force %0.1, e0.0
  33470. real$' %0.3 = LdConst [1] 1
  33471. goto BB1
  33472. BB1
  33473. val %1.0 = Sub %0.2, %0.3, e0.0
  33474. void Return %1.0
  33475. Prom 9:
  33476. BB0
  33477. env e0.0 = LdFunctionEnv
  33478. val^? %0.1 = LdVar random, e0.0
  33479. val %0.2 = Force %0.1, e0.0
  33480. void Return %0.2
  33481. ├────── Cleanup redundant operations: == 777
  33482. buildTreeDepth[0x7f92446010b0]
  33483. BB0
  33484. val^ %0.0 = LdArg 0
  33485. val^ %0.1 = LdArg 1
  33486. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  33487. val %0.3 = Force! %0.0, e0.2
  33488. real$' %0.4 = LdConst [1] 1
  33489. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33490. BB2
  33491. t %2.0 = IsObject %0.3
  33492. void AssumeNot %2.0, %0.5
  33493. lgl' %2.2 = Eq %0.3, %0.4, elided
  33494. lgl %2.3 = AsLogical %2.2
  33495. t %2.4 = AsTest %2.3
  33496. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  33497. BB1
  33498. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  33499. void Deopt %1.0
  33500. BB22
  33501. cls %22.0 = LdFun c, e0.2
  33502. prom %22.1 = MkArg missing, Prom(4), e0.2
  33503. val^ %22.2 = Call %22.0(%22.1) e0.2
  33504. goto BB23
  33505. BB3
  33506. cls %3.0 = LdFun vector, e0.2
  33507. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  33508. BB23
  33509. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  33510. val %23.1 = Force %23.0, e0.2
  33511. void Return %23.1
  33512. BB5
  33513. cls' %5.0 = LdConst function (mode = "logical", length = ...
  33514. t %5.1 = Identical %3.0, %5.0
  33515. void Assume %5.1, %3.1
  33516. str$' %5.3 = LdConst [1] "list"
  33517. real$' %5.4 = LdConst [1] 4
  33518. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  33519. void StVar array, %5.5, e0.2
  33520. real$' %5.7 = LdConst [1] 1
  33521. real$' %5.8 = LdConst [1] 4
  33522. val' %5.9 = Colon %5.7, %5.8, elided
  33523. val' %5.10 = SetShared %5.9
  33524. int$' %5.11 = ForSeqSize %5.10
  33525. int$' %5.12 = LdConst [1] 0
  33526. goto BB6
  33527. BB4
  33528. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  33529. void Deopt %4.0
  33530. BB6
  33531. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  33532. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  33533. int$' %6.2 = Inc %6.1
  33534. int$' %6.3 = EnsureNamed %6.2
  33535. lgl' %6.4 = Lt %5.11, %6.3, elided
  33536. t %6.5 = AsTest %6.4
  33537. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  33538. BB21
  33539. goto BB23
  33540. BB7
  33541. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  33542. void StVar i, %7.0, e0.2
  33543. cls %7.2 = LdFun buildTreeDepth, e0.2
  33544. prom %7.3 = MkArg missing, Prom(2), e0.2
  33545. prom %7.4 = MkArg missing, Prom(3), e0.2
  33546. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  33547. BB9
  33548. cls' %9.0 = LdConst function (depth, random) { if (d...
  33549. t %9.1 = Identical %7.2, %9.0
  33550. void Assume %9.1, %7.5
  33551. val^? %9.3 = CastType %7.3
  33552. val^? %9.4 = CastType %7.4
  33553. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  33554. val %9.6 = Force %9.3, e9.5
  33555. real$' %9.7 = LdConst [1] 1
  33556. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  33557. BB8
  33558. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  33559. void Deopt %8.0
  33560. BB11
  33561. t %11.0 = IsObject %9.6
  33562. void AssumeNot %11.0, %9.8
  33563. lgl' %11.2 = Eq %9.6, %9.7, elided
  33564. lgl %11.3 = AsLogical %11.2
  33565. t %11.4 = AsTest %11.3
  33566. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  33567. BB10
  33568. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33569. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  33570. void Deopt %10.1
  33571. BB20
  33572. cls %20.0 = LdFun c, e9.5
  33573. prom %20.1 = MkArg missing, Prom(5), e9.5
  33574. val^ %20.2 = Call %20.0(%20.1) e9.5
  33575. goto BB24
  33576. BB12
  33577. cls %12.0 = LdFun vector, e9.5
  33578. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  33579. BB24
  33580. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  33581. val %24.1 = Force %24.0, e9.5
  33582. val^? %24.2 = LdVar array, e0.2
  33583. val %24.3 = Force %24.2, e0.2
  33584. val^? %24.4 = LdVar i, e0.2
  33585. val %24.5 = Force %24.4, e0.2
  33586. val %24.6 = EnsureNamed %24.1
  33587. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  33588. void StVar array, %24.7, e0.2
  33589. goto BB6
  33590. BB14
  33591. cls' %14.0 = LdConst function (mode = "logical", length = ...
  33592. t %14.1 = Identical %12.0, %14.0
  33593. void Assume %14.1, %12.1
  33594. real$' %14.3 = LdConst [1] 4
  33595. str$' %14.4 = LdConst [1] "list"
  33596. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  33597. void StVar array, %14.5, e9.5
  33598. real$' %14.7 = LdConst [1] 4
  33599. real$' %14.8 = LdConst [1] 1
  33600. val' %14.9 = Colon %14.8, %14.7, elided
  33601. val' %14.10 = SetShared %14.9
  33602. int$' %14.11 = ForSeqSize %14.10
  33603. int$' %14.12 = LdConst [1] 0
  33604. goto BB15
  33605. BB13
  33606. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33607. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  33608. void Deopt %13.1
  33609. BB15
  33610. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  33611. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  33612. int$' %15.2 = Inc %15.1
  33613. int$' %15.3 = EnsureNamed %15.2
  33614. lgl' %15.4 = Lt %14.11, %15.3, elided
  33615. t %15.5 = AsTest %15.4
  33616. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  33617. BB19
  33618. goto BB24
  33619. BB16
  33620. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  33621. void StVar i, %16.0, e9.5
  33622. cls %16.2 = LdFun buildTreeDepth, e9.5
  33623. prom %16.3 = MkArg missing, Prom(8), e9.5
  33624. prom %16.4 = MkArg missing, Prom(9), e9.5
  33625. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  33626. BB18
  33627. cls' %18.0 = LdConst function (depth, random) { if (d...
  33628. t %18.1 = Identical %16.2, %18.0
  33629. void Assume %18.1, %16.5
  33630. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  33631. val^? %18.4 = LdVar array, e9.5
  33632. val %18.5 = Force %18.4, e9.5
  33633. val^? %18.6 = LdVar i, e9.5
  33634. val %18.7 = Force %18.6, e9.5
  33635. val^ %18.8 = EnsureNamed %18.3
  33636. val %18.9 = Force %18.8, e9.5
  33637. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  33638. void StVar array, %18.10, e9.5
  33639. goto BB15
  33640. BB17
  33641. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33642. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  33643. void Deopt %17.1
  33644. Prom 2:
  33645. BB0
  33646. env e0.0 = LdFunctionEnv
  33647. val^? %0.1 = LdVar depth, e0.0
  33648. val %0.2 = Force %0.1, e0.0
  33649. real$' %0.3 = LdConst [1] 1
  33650. goto BB1
  33651. BB1
  33652. val %1.0 = Sub %0.2, %0.3, e0.0
  33653. void Return %1.0
  33654. Prom 3:
  33655. BB0
  33656. env e0.0 = LdFunctionEnv
  33657. val^? %0.1 = LdVar random, e0.0
  33658. val %0.2 = Force %0.1, e0.0
  33659. void Return %0.2
  33660. Prom 4:
  33661. BB0
  33662. env e0.0 = LdFunctionEnv
  33663. cls %0.1 = LdFun nextRandom, e0.0
  33664. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33665. t %0.3 = Identical %0.1, %0.2
  33666. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33667. BB2
  33668. void Assume %0.3, %0.4
  33669. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33670. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33671. real$' %2.3 = LdConst [1] 10
  33672. goto BB3
  33673. BB1
  33674. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33675. void Deopt %1.0
  33676. BB3
  33677. val %3.0 = Force %2.2, e0.0
  33678. val %3.1 = Mod %3.0, %2.3, e0.0
  33679. real$' %3.2 = LdConst [1] 1
  33680. goto BB4
  33681. BB4
  33682. val %4.0 = Add %3.1, %3.2, e0.0
  33683. void Return %4.0
  33684. Prom 5:
  33685. BB0
  33686. env e0.0 = LdFunctionEnv
  33687. cls %0.1 = LdFun nextRandom, e0.0
  33688. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33689. t %0.3 = Identical %0.1, %0.2
  33690. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33691. BB2
  33692. void Assume %0.3, %0.4
  33693. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33694. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33695. real$' %2.3 = LdConst [1] 10
  33696. goto BB3
  33697. BB1
  33698. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33699. void Deopt %1.0
  33700. BB3
  33701. val %3.0 = Force %2.2, e0.0
  33702. val %3.1 = Mod %3.0, %2.3, e0.0
  33703. real$' %3.2 = LdConst [1] 1
  33704. goto BB4
  33705. BB4
  33706. val %4.0 = Add %3.1, %3.2, e0.0
  33707. void Return %4.0
  33708. Prom 8:
  33709. BB0
  33710. env e0.0 = LdFunctionEnv
  33711. val^? %0.1 = LdVar depth, e0.0
  33712. val %0.2 = Force %0.1, e0.0
  33713. real$' %0.3 = LdConst [1] 1
  33714. goto BB1
  33715. BB1
  33716. val %1.0 = Sub %0.2, %0.3, e0.0
  33717. void Return %1.0
  33718. Prom 9:
  33719. BB0
  33720. env e0.0 = LdFunctionEnv
  33721. val^? %0.1 = LdVar random, e0.0
  33722. val %0.2 = Force %0.1, e0.0
  33723. void Return %0.2
  33724. ├────── Inline closures: == 784
  33725. buildTreeDepth[0x7f92446010b0]
  33726. BB0
  33727. val^ %0.0 = LdArg 0
  33728. val^ %0.1 = LdArg 1
  33729. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  33730. val %0.3 = Force! %0.0, e0.2
  33731. real$' %0.4 = LdConst [1] 1
  33732. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33733. BB2
  33734. t %2.0 = IsObject %0.3
  33735. void AssumeNot %2.0, %0.5
  33736. lgl' %2.2 = Eq %0.3, %0.4, elided
  33737. lgl %2.3 = AsLogical %2.2
  33738. t %2.4 = AsTest %2.3
  33739. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  33740. BB1
  33741. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  33742. void Deopt %1.0
  33743. BB22
  33744. cls %22.0 = LdFun c, e0.2
  33745. prom %22.1 = MkArg missing, Prom(4), e0.2
  33746. val^ %22.2 = Call %22.0(%22.1) e0.2
  33747. goto BB23
  33748. BB3
  33749. cls %3.0 = LdFun vector, e0.2
  33750. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  33751. BB23
  33752. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  33753. val %23.1 = Force %23.0, e0.2
  33754. void Return %23.1
  33755. BB5
  33756. cls' %5.0 = LdConst function (mode = "logical", length = ...
  33757. t %5.1 = Identical %3.0, %5.0
  33758. void Assume %5.1, %3.1
  33759. str$' %5.3 = LdConst [1] "list"
  33760. real$' %5.4 = LdConst [1] 4
  33761. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  33762. void StVar array, %5.5, e0.2
  33763. real$' %5.7 = LdConst [1] 1
  33764. real$' %5.8 = LdConst [1] 4
  33765. val' %5.9 = Colon %5.7, %5.8, elided
  33766. val' %5.10 = SetShared %5.9
  33767. int$' %5.11 = ForSeqSize %5.10
  33768. int$' %5.12 = LdConst [1] 0
  33769. goto BB6
  33770. BB4
  33771. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  33772. void Deopt %4.0
  33773. BB6
  33774. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  33775. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  33776. int$' %6.2 = Inc %6.1
  33777. int$' %6.3 = EnsureNamed %6.2
  33778. lgl' %6.4 = Lt %5.11, %6.3, elided
  33779. t %6.5 = AsTest %6.4
  33780. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  33781. BB21
  33782. goto BB23
  33783. BB7
  33784. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  33785. void StVar i, %7.0, e0.2
  33786. cls %7.2 = LdFun buildTreeDepth, e0.2
  33787. prom %7.3 = MkArg missing, Prom(2), e0.2
  33788. prom %7.4 = MkArg missing, Prom(3), e0.2
  33789. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  33790. BB9
  33791. cls' %9.0 = LdConst function (depth, random) { if (d...
  33792. t %9.1 = Identical %7.2, %9.0
  33793. void Assume %9.1, %7.5
  33794. val^? %9.3 = CastType %7.3
  33795. val^? %9.4 = CastType %7.4
  33796. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  33797. val %9.6 = Force %9.3, e9.5
  33798. real$' %9.7 = LdConst [1] 1
  33799. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  33800. BB8
  33801. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  33802. void Deopt %8.0
  33803. BB11
  33804. t %11.0 = IsObject %9.6
  33805. void AssumeNot %11.0, %9.8
  33806. lgl' %11.2 = Eq %9.6, %9.7, elided
  33807. lgl %11.3 = AsLogical %11.2
  33808. t %11.4 = AsTest %11.3
  33809. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  33810. BB10
  33811. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33812. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  33813. void Deopt %10.1
  33814. BB20
  33815. cls %20.0 = LdFun c, e9.5
  33816. prom %20.1 = MkArg missing, Prom(5), e9.5
  33817. val^ %20.2 = Call %20.0(%20.1) e9.5
  33818. goto BB24
  33819. BB12
  33820. cls %12.0 = LdFun vector, e9.5
  33821. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  33822. BB24
  33823. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  33824. val %24.1 = Force %24.0, e9.5
  33825. val^? %24.2 = LdVar array, e0.2
  33826. val %24.3 = Force %24.2, e0.2
  33827. val^? %24.4 = LdVar i, e0.2
  33828. val %24.5 = Force %24.4, e0.2
  33829. val %24.6 = EnsureNamed %24.1
  33830. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  33831. void StVar array, %24.7, e0.2
  33832. goto BB6
  33833. BB14
  33834. cls' %14.0 = LdConst function (mode = "logical", length = ...
  33835. t %14.1 = Identical %12.0, %14.0
  33836. void Assume %14.1, %12.1
  33837. real$' %14.3 = LdConst [1] 4
  33838. str$' %14.4 = LdConst [1] "list"
  33839. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  33840. void StVar array, %14.5, e9.5
  33841. real$' %14.7 = LdConst [1] 4
  33842. real$' %14.8 = LdConst [1] 1
  33843. val' %14.9 = Colon %14.8, %14.7, elided
  33844. val' %14.10 = SetShared %14.9
  33845. int$' %14.11 = ForSeqSize %14.10
  33846. int$' %14.12 = LdConst [1] 0
  33847. goto BB15
  33848. BB13
  33849. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33850. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  33851. void Deopt %13.1
  33852. BB15
  33853. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  33854. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  33855. int$' %15.2 = Inc %15.1
  33856. int$' %15.3 = EnsureNamed %15.2
  33857. lgl' %15.4 = Lt %14.11, %15.3, elided
  33858. t %15.5 = AsTest %15.4
  33859. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  33860. BB19
  33861. goto BB24
  33862. BB16
  33863. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  33864. void StVar i, %16.0, e9.5
  33865. cls %16.2 = LdFun buildTreeDepth, e9.5
  33866. prom %16.3 = MkArg missing, Prom(8), e9.5
  33867. prom %16.4 = MkArg missing, Prom(9), e9.5
  33868. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  33869. BB18
  33870. cls' %18.0 = LdConst function (depth, random) { if (d...
  33871. t %18.1 = Identical %16.2, %18.0
  33872. void Assume %18.1, %16.5
  33873. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  33874. val^? %18.4 = LdVar array, e9.5
  33875. val %18.5 = Force %18.4, e9.5
  33876. val^? %18.6 = LdVar i, e9.5
  33877. val %18.7 = Force %18.6, e9.5
  33878. val^ %18.8 = EnsureNamed %18.3
  33879. val %18.9 = Force %18.8, e9.5
  33880. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  33881. void StVar array, %18.10, e9.5
  33882. goto BB15
  33883. BB17
  33884. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  33885. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  33886. void Deopt %17.1
  33887. Prom 2:
  33888. BB0
  33889. env e0.0 = LdFunctionEnv
  33890. val^? %0.1 = LdVar depth, e0.0
  33891. val %0.2 = Force %0.1, e0.0
  33892. real$' %0.3 = LdConst [1] 1
  33893. goto BB1
  33894. BB1
  33895. val %1.0 = Sub %0.2, %0.3, e0.0
  33896. void Return %1.0
  33897. Prom 3:
  33898. BB0
  33899. env e0.0 = LdFunctionEnv
  33900. val^? %0.1 = LdVar random, e0.0
  33901. val %0.2 = Force %0.1, e0.0
  33902. void Return %0.2
  33903. Prom 4:
  33904. BB0
  33905. env e0.0 = LdFunctionEnv
  33906. cls %0.1 = LdFun nextRandom, e0.0
  33907. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33908. t %0.3 = Identical %0.1, %0.2
  33909. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33910. BB2
  33911. void Assume %0.3, %0.4
  33912. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33913. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33914. real$' %2.3 = LdConst [1] 10
  33915. goto BB3
  33916. BB1
  33917. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33918. void Deopt %1.0
  33919. BB3
  33920. val %3.0 = Force %2.2, e0.0
  33921. val %3.1 = Mod %3.0, %2.3, e0.0
  33922. real$' %3.2 = LdConst [1] 1
  33923. goto BB4
  33924. BB4
  33925. val %4.0 = Add %3.1, %3.2, e0.0
  33926. void Return %4.0
  33927. Prom 5:
  33928. BB0
  33929. env e0.0 = LdFunctionEnv
  33930. cls %0.1 = LdFun nextRandom, e0.0
  33931. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  33932. t %0.3 = Identical %0.1, %0.2
  33933. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33934. BB2
  33935. void Assume %0.3, %0.4
  33936. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  33937. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  33938. real$' %2.3 = LdConst [1] 10
  33939. goto BB3
  33940. BB1
  33941. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  33942. void Deopt %1.0
  33943. BB3
  33944. val %3.0 = Force %2.2, e0.0
  33945. val %3.1 = Mod %3.0, %2.3, e0.0
  33946. real$' %3.2 = LdConst [1] 1
  33947. goto BB4
  33948. BB4
  33949. val %4.0 = Add %3.1, %3.2, e0.0
  33950. void Return %4.0
  33951. Prom 8:
  33952. BB0
  33953. env e0.0 = LdFunctionEnv
  33954. val^? %0.1 = LdVar depth, e0.0
  33955. val %0.2 = Force %0.1, e0.0
  33956. real$' %0.3 = LdConst [1] 1
  33957. goto BB1
  33958. BB1
  33959. val %1.0 = Sub %0.2, %0.3, e0.0
  33960. void Return %1.0
  33961. Prom 9:
  33962. BB0
  33963. env e0.0 = LdFunctionEnv
  33964. val^? %0.1 = LdVar random, e0.0
  33965. val %0.2 = Force %0.1, e0.0
  33966. void Return %0.2
  33967. ├────── Speculate on values to elide environments: == 791
  33968. buildTreeDepth[0x7f92446010b0]
  33969. BB0
  33970. val^ %0.0 = LdArg 0
  33971. val^ %0.1 = LdArg 1
  33972. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  33973. val %0.3 = Force! %0.0, e0.2
  33974. real$' %0.4 = LdConst [1] 1
  33975. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  33976. BB2
  33977. t %2.0 = IsObject %0.3
  33978. void AssumeNot %2.0, %0.5
  33979. lgl' %2.2 = Eq %0.3, %0.4, elided
  33980. lgl %2.3 = AsLogical %2.2
  33981. t %2.4 = AsTest %2.3
  33982. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  33983. BB1
  33984. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  33985. void Deopt %1.0
  33986. BB22
  33987. cls %22.0 = LdFun c, e0.2
  33988. prom %22.1 = MkArg missing, Prom(4), e0.2
  33989. val^ %22.2 = Call %22.0(%22.1) e0.2
  33990. goto BB23
  33991. BB3
  33992. cls %3.0 = LdFun vector, e0.2
  33993. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  33994. BB23
  33995. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  33996. val %23.1 = Force %23.0, e0.2
  33997. void Return %23.1
  33998. BB5
  33999. cls' %5.0 = LdConst function (mode = "logical", length = ...
  34000. t %5.1 = Identical %3.0, %5.0
  34001. void Assume %5.1, %3.1
  34002. str$' %5.3 = LdConst [1] "list"
  34003. real$' %5.4 = LdConst [1] 4
  34004. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  34005. void StVar array, %5.5, e0.2
  34006. real$' %5.7 = LdConst [1] 1
  34007. real$' %5.8 = LdConst [1] 4
  34008. val' %5.9 = Colon %5.7, %5.8, elided
  34009. val' %5.10 = SetShared %5.9
  34010. int$' %5.11 = ForSeqSize %5.10
  34011. int$' %5.12 = LdConst [1] 0
  34012. goto BB6
  34013. BB4
  34014. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  34015. void Deopt %4.0
  34016. BB6
  34017. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  34018. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  34019. int$' %6.2 = Inc %6.1
  34020. int$' %6.3 = EnsureNamed %6.2
  34021. lgl' %6.4 = Lt %5.11, %6.3, elided
  34022. t %6.5 = AsTest %6.4
  34023. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  34024. BB21
  34025. goto BB23
  34026. BB7
  34027. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  34028. void StVar i, %7.0, e0.2
  34029. cls %7.2 = LdFun buildTreeDepth, e0.2
  34030. prom %7.3 = MkArg missing, Prom(2), e0.2
  34031. prom %7.4 = MkArg missing, Prom(3), e0.2
  34032. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  34033. BB9
  34034. cls' %9.0 = LdConst function (depth, random) { if (d...
  34035. t %9.1 = Identical %7.2, %9.0
  34036. void Assume %9.1, %7.5
  34037. val^? %9.3 = CastType %7.3
  34038. val^? %9.4 = CastType %7.4
  34039. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  34040. val %9.6 = Force %9.3, e9.5
  34041. real$' %9.7 = LdConst [1] 1
  34042. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  34043. BB8
  34044. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  34045. void Deopt %8.0
  34046. BB11
  34047. t %11.0 = IsObject %9.6
  34048. void AssumeNot %11.0, %9.8
  34049. lgl' %11.2 = Eq %9.6, %9.7, elided
  34050. lgl %11.3 = AsLogical %11.2
  34051. t %11.4 = AsTest %11.3
  34052. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  34053. BB10
  34054. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  34055. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  34056. void Deopt %10.1
  34057. BB20
  34058. cls %20.0 = LdFun c, e9.5
  34059. prom %20.1 = MkArg missing, Prom(5), e9.5
  34060. val^ %20.2 = Call %20.0(%20.1) e9.5
  34061. goto BB24
  34062. BB12
  34063. cls %12.0 = LdFun vector, e9.5
  34064. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  34065. BB24
  34066. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  34067. val %24.1 = Force %24.0, e9.5
  34068. val^? %24.2 = LdVar array, e0.2
  34069. val %24.3 = Force %24.2, e0.2
  34070. val^? %24.4 = LdVar i, e0.2
  34071. val %24.5 = Force %24.4, e0.2
  34072. val %24.6 = EnsureNamed %24.1
  34073. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  34074. void StVar array, %24.7, e0.2
  34075. goto BB6
  34076. BB14
  34077. cls' %14.0 = LdConst function (mode = "logical", length = ...
  34078. t %14.1 = Identical %12.0, %14.0
  34079. void Assume %14.1, %12.1
  34080. real$' %14.3 = LdConst [1] 4
  34081. str$' %14.4 = LdConst [1] "list"
  34082. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  34083. void StVar array, %14.5, e9.5
  34084. real$' %14.7 = LdConst [1] 4
  34085. real$' %14.8 = LdConst [1] 1
  34086. val' %14.9 = Colon %14.8, %14.7, elided
  34087. val' %14.10 = SetShared %14.9
  34088. int$' %14.11 = ForSeqSize %14.10
  34089. int$' %14.12 = LdConst [1] 0
  34090. goto BB15
  34091. BB13
  34092. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  34093. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  34094. void Deopt %13.1
  34095. BB15
  34096. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  34097. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  34098. int$' %15.2 = Inc %15.1
  34099. int$' %15.3 = EnsureNamed %15.2
  34100. lgl' %15.4 = Lt %14.11, %15.3, elided
  34101. t %15.5 = AsTest %15.4
  34102. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  34103. BB19
  34104. goto BB24
  34105. BB16
  34106. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  34107. void StVar i, %16.0, e9.5
  34108. cls %16.2 = LdFun buildTreeDepth, e9.5
  34109. prom %16.3 = MkArg missing, Prom(8), e9.5
  34110. prom %16.4 = MkArg missing, Prom(9), e9.5
  34111. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  34112. BB18
  34113. cls' %18.0 = LdConst function (depth, random) { if (d...
  34114. t %18.1 = Identical %16.2, %18.0
  34115. void Assume %18.1, %16.5
  34116. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  34117. val^? %18.4 = LdVar array, e9.5
  34118. val %18.5 = Force %18.4, e9.5
  34119. val^? %18.6 = LdVar i, e9.5
  34120. val %18.7 = Force %18.6, e9.5
  34121. val^ %18.8 = EnsureNamed %18.3
  34122. val %18.9 = Force %18.8, e9.5
  34123. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  34124. void StVar array, %18.10, e9.5
  34125. goto BB15
  34126. BB17
  34127. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  34128. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  34129. void Deopt %17.1
  34130. Prom 2:
  34131. BB0
  34132. env e0.0 = LdFunctionEnv
  34133. val^? %0.1 = LdVar depth, e0.0
  34134. val %0.2 = Force %0.1, e0.0
  34135. real$' %0.3 = LdConst [1] 1
  34136. goto BB1
  34137. BB1
  34138. val %1.0 = Sub %0.2, %0.3, e0.0
  34139. void Return %1.0
  34140. Prom 3:
  34141. BB0
  34142. env e0.0 = LdFunctionEnv
  34143. val^? %0.1 = LdVar random, e0.0
  34144. val %0.2 = Force %0.1, e0.0
  34145. void Return %0.2
  34146. Prom 4:
  34147. BB0
  34148. env e0.0 = LdFunctionEnv
  34149. cls %0.1 = LdFun nextRandom, e0.0
  34150. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  34151. t %0.3 = Identical %0.1, %0.2
  34152. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34153. BB2
  34154. void Assume %0.3, %0.4
  34155. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  34156. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  34157. real$' %2.3 = LdConst [1] 10
  34158. goto BB3
  34159. BB1
  34160. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  34161. void Deopt %1.0
  34162. BB3
  34163. val %3.0 = Force %2.2, e0.0
  34164. val %3.1 = Mod %3.0, %2.3, e0.0
  34165. real$' %3.2 = LdConst [1] 1
  34166. goto BB4
  34167. BB4
  34168. val %4.0 = Add %3.1, %3.2, e0.0
  34169. void Return %4.0
  34170. Prom 5:
  34171. BB0
  34172. env e0.0 = LdFunctionEnv
  34173. cls %0.1 = LdFun nextRandom, e0.0
  34174. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  34175. t %0.3 = Identical %0.1, %0.2
  34176. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34177. BB2
  34178. void Assume %0.3, %0.4
  34179. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  34180. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  34181. real$' %2.3 = LdConst [1] 10
  34182. goto BB3
  34183. BB1
  34184. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  34185. void Deopt %1.0
  34186. BB3
  34187. val %3.0 = Force %2.2, e0.0
  34188. val %3.1 = Mod %3.0, %2.3, e0.0
  34189. real$' %3.2 = LdConst [1] 1
  34190. goto BB4
  34191. BB4
  34192. val %4.0 = Add %3.1, %3.2, e0.0
  34193. void Return %4.0
  34194. Prom 8:
  34195. BB0
  34196. env e0.0 = LdFunctionEnv
  34197. val^? %0.1 = LdVar depth, e0.0
  34198. val %0.2 = Force %0.1, e0.0
  34199. real$' %0.3 = LdConst [1] 1
  34200. goto BB1
  34201. BB1
  34202. val %1.0 = Sub %0.2, %0.3, e0.0
  34203. void Return %1.0
  34204. Prom 9:
  34205. BB0
  34206. env e0.0 = LdFunctionEnv
  34207. val^? %0.1 = LdVar random, e0.0
  34208. val %0.2 = Force %0.1, e0.0
  34209. void Return %0.2
  34210. ├────── Cleanup unused checkpoints: == 798
  34211. buildTreeDepth[0x7f92446010b0]
  34212. BB0
  34213. val^ %0.0 = LdArg 0
  34214. val^ %0.1 = LdArg 1
  34215. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=<environment: 0x7f9246b48c88>
  34216. val %0.3 = Force! %0.0, e0.2
  34217. real$' %0.4 = LdConst [1] 1
  34218. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34219. BB2
  34220. t %2.0 = IsObject %0.3
  34221. void AssumeNot %2.0, %0.5
  34222. lgl' %2.2 = Eq %0.3, %0.4, elided
  34223. lgl %2.3 = AsLogical %2.2
  34224. t %2.4 = AsTest %2.3
  34225. void Branch %2.4 -> BB22 (if true) | BB3 (if false)
  34226. BB1
  34227. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  34228. void Deopt %1.0
  34229. BB22
  34230. cls %22.0 = LdFun c, e0.2
  34231. prom %22.1 = MkArg missing, Prom(4), e0.2
  34232. val^ %22.2 = Call %22.0(%22.1) e0.2
  34233. goto BB23
  34234. BB3
  34235. cls %3.0 = LdFun vector, e0.2
  34236. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  34237. BB23
  34238. val^ %23.0 = Phi %6.0:BB21, %22.2:BB22
  34239. val %23.1 = Force %23.0, e0.2
  34240. void Return %23.1
  34241. BB5
  34242. cls' %5.0 = LdConst function (mode = "logical", length = ...
  34243. t %5.1 = Identical %3.0, %5.0
  34244. void Assume %5.1, %3.1
  34245. str$' %5.3 = LdConst [1] "list"
  34246. real$' %5.4 = LdConst [1] 4
  34247. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  34248. void StVar array, %5.5, e0.2
  34249. real$' %5.7 = LdConst [1] 1
  34250. real$' %5.8 = LdConst [1] 4
  34251. val' %5.9 = Colon %5.7, %5.8, elided
  34252. val' %5.10 = SetShared %5.9
  34253. int$' %5.11 = ForSeqSize %5.10
  34254. int$' %5.12 = LdConst [1] 0
  34255. goto BB6
  34256. BB4
  34257. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  34258. void Deopt %4.0
  34259. BB6
  34260. val %6.0 = Phi %5.5:BB5, %24.7:BB24
  34261. int$' %6.1 = Phi %5.12:BB5, %6.3:BB24
  34262. int$' %6.2 = Inc %6.1
  34263. int$' %6.3 = EnsureNamed %6.2
  34264. lgl' %6.4 = Lt %5.11, %6.3, elided
  34265. t %6.5 = AsTest %6.4
  34266. void Branch %6.5 -> BB21 (if true) | BB7 (if false)
  34267. BB21
  34268. goto BB23
  34269. BB7
  34270. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  34271. void StVar i, %7.0, e0.2
  34272. cls %7.2 = LdFun buildTreeDepth, e0.2
  34273. prom %7.3 = MkArg missing, Prom(2), e0.2
  34274. prom %7.4 = MkArg missing, Prom(3), e0.2
  34275. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  34276. BB9
  34277. cls' %9.0 = LdConst function (depth, random) { if (d...
  34278. t %9.1 = Identical %7.2, %9.0
  34279. void Assume %9.1, %7.5
  34280. val^? %9.3 = CastType %7.3
  34281. val^? %9.4 = CastType %7.4
  34282. env e9.5 = MkEnv depth=%9.3, random=%9.4, parent=<environment: 0x7f9246b48c88>
  34283. val %9.6 = Force %9.3, e9.5
  34284. real$' %9.7 = LdConst [1] 1
  34285. cp %9.8 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  34286. BB8
  34287. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  34288. void Deopt %8.0
  34289. BB11
  34290. t %11.0 = IsObject %9.6
  34291. void AssumeNot %11.0, %9.8
  34292. lgl' %11.2 = Eq %9.6, %9.7, elided
  34293. lgl %11.3 = AsLogical %11.2
  34294. t %11.4 = AsTest %11.3
  34295. void Branch %11.4 -> BB20 (if true) | BB12 (if false)
  34296. BB10
  34297. fs %10.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  34298. fs %10.1 = FrameState 0x7f924457f3d0+58: [%9.6, %9.7], env=e9.5, next=%10.0
  34299. void Deopt %10.1
  34300. BB20
  34301. cls %20.0 = LdFun c, e9.5
  34302. prom %20.1 = MkArg missing, Prom(5), e9.5
  34303. val^ %20.2 = Call %20.0(%20.1) e9.5
  34304. goto BB24
  34305. BB12
  34306. cls %12.0 = LdFun vector, e9.5
  34307. cp %12.1 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  34308. BB24
  34309. val^ %24.0 = Phi %15.0:BB19, %20.2:BB20
  34310. val %24.1 = Force %24.0, e9.5
  34311. val^? %24.2 = LdVar array, e0.2
  34312. val %24.3 = Force %24.2, e0.2
  34313. val^? %24.4 = LdVar i, e0.2
  34314. val %24.5 = Force %24.4, e0.2
  34315. val %24.6 = EnsureNamed %24.1
  34316. val %24.7 = Subassign2_1D %24.6, %24.3, %24.5, e0.2
  34317. void StVar array, %24.7, e0.2
  34318. goto BB6
  34319. BB14
  34320. cls' %14.0 = LdConst function (mode = "logical", length = ...
  34321. t %14.1 = Identical %12.0, %14.0
  34322. void Assume %14.1, %12.1
  34323. real$' %14.3 = LdConst [1] 4
  34324. str$' %14.4 = LdConst [1] "list"
  34325. val %14.5 = CallSafeBuiltin vector(%14.4, %14.3)
  34326. void StVar array, %14.5, e9.5
  34327. real$' %14.7 = LdConst [1] 4
  34328. real$' %14.8 = LdConst [1] 1
  34329. val' %14.9 = Colon %14.8, %14.7, elided
  34330. val' %14.10 = SetShared %14.9
  34331. int$' %14.11 = ForSeqSize %14.10
  34332. int$' %14.12 = LdConst [1] 0
  34333. goto BB15
  34334. BB13
  34335. fs %13.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  34336. fs %13.1 = FrameState 0x7f924457f3d0+113: [%12.0], env=e9.5, next=%13.0
  34337. void Deopt %13.1
  34338. BB15
  34339. val %15.0 = Phi %14.5:BB14, %18.10:BB18
  34340. int$' %15.1 = Phi %14.12:BB14, %15.3:BB18
  34341. int$' %15.2 = Inc %15.1
  34342. int$' %15.3 = EnsureNamed %15.2
  34343. lgl' %15.4 = Lt %14.11, %15.3, elided
  34344. t %15.5 = AsTest %15.4
  34345. void Branch %15.5 -> BB19 (if true) | BB16 (if false)
  34346. BB19
  34347. goto BB24
  34348. BB16
  34349. val$' %16.0 = Extract2_1D %14.10, %15.3, elided
  34350. void StVar i, %16.0, e9.5
  34351. cls %16.2 = LdFun buildTreeDepth, e9.5
  34352. prom %16.3 = MkArg missing, Prom(8), e9.5
  34353. prom %16.4 = MkArg missing, Prom(9), e9.5
  34354. cp %16.5 = Checkpoint -> BB18 (by default) | BB17 (if coming from expect)
  34355. BB18
  34356. cls' %18.0 = LdConst function (depth, random) { if (d...
  34357. t %18.1 = Identical %16.2, %18.0
  34358. void Assume %18.1, %16.5
  34359. val^ %18.3 = StaticCall buildTreeDepth[0x7f92446010b0](%16.3, %16.4) e9.5
  34360. val^? %18.4 = LdVar array, e9.5
  34361. val %18.5 = Force %18.4, e9.5
  34362. val^? %18.6 = LdVar i, e9.5
  34363. val %18.7 = Force %18.6, e9.5
  34364. val^ %18.8 = EnsureNamed %18.3
  34365. val %18.9 = Force %18.8, e9.5
  34366. val %18.10 = Subassign2_1D %18.9, %18.5, %18.7, e9.5
  34367. void StVar array, %18.10, e9.5
  34368. goto BB15
  34369. BB17
  34370. fs %17.0 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  34371. fs %17.1 = FrameState 0x7f924457f3d0+273: [%14.10, %14.11, %15.3, %16.2], env=e9.5, next=%17.0
  34372. void Deopt %17.1
  34373. Prom 2:
  34374. BB0
  34375. env e0.0 = LdFunctionEnv
  34376. val^? %0.1 = LdVar depth, e0.0
  34377. val %0.2 = Force %0.1, e0.0
  34378. real$' %0.3 = LdConst [1] 1
  34379. goto BB1
  34380. BB1
  34381. val %1.0 = Sub %0.2, %0.3, e0.0
  34382. void Return %1.0
  34383. Prom 3:
  34384. BB0
  34385. env e0.0 = LdFunctionEnv
  34386. val^? %0.1 = LdVar random, e0.0
  34387. val %0.2 = Force %0.1, e0.0
  34388. void Return %0.2
  34389. Prom 4:
  34390. BB0
  34391. env e0.0 = LdFunctionEnv
  34392. cls %0.1 = LdFun nextRandom, e0.0
  34393. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  34394. t %0.3 = Identical %0.1, %0.2
  34395. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34396. BB2
  34397. void Assume %0.3, %0.4
  34398. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  34399. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  34400. real$' %2.3 = LdConst [1] 10
  34401. goto BB3
  34402. BB1
  34403. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  34404. void Deopt %1.0
  34405. BB3
  34406. val %3.0 = Force %2.2, e0.0
  34407. val %3.1 = Mod %3.0, %2.3, e0.0
  34408. real$' %3.2 = LdConst [1] 1
  34409. goto BB4
  34410. BB4
  34411. val %4.0 = Add %3.1, %3.2, e0.0
  34412. void Return %4.0
  34413. Prom 5:
  34414. BB0
  34415. env e0.0 = LdFunctionEnv
  34416. cls %0.1 = LdFun nextRandom, e0.0
  34417. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  34418. t %0.3 = Identical %0.1, %0.2
  34419. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34420. BB2
  34421. void Assume %0.3, %0.4
  34422. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  34423. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  34424. real$' %2.3 = LdConst [1] 10
  34425. goto BB3
  34426. BB1
  34427. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  34428. void Deopt %1.0
  34429. BB3
  34430. val %3.0 = Force %2.2, e0.0
  34431. val %3.1 = Mod %3.0, %2.3, e0.0
  34432. real$' %3.2 = LdConst [1] 1
  34433. goto BB4
  34434. BB4
  34435. val %4.0 = Add %3.1, %3.2, e0.0
  34436. void Return %4.0
  34437. Prom 8:
  34438. BB0
  34439. env e0.0 = LdFunctionEnv
  34440. val^? %0.1 = LdVar depth, e0.0
  34441. val %0.2 = Force %0.1, e0.0
  34442. real$' %0.3 = LdConst [1] 1
  34443. goto BB1
  34444. BB1
  34445. val %1.0 = Sub %0.2, %0.3, e0.0
  34446. void Return %1.0
  34447. Prom 9:
  34448. BB0
  34449. env e0.0 = LdFunctionEnv
  34450. val^? %0.1 = LdVar random, e0.0
  34451. val %0.2 = Force %0.1, e0.0
  34452. void Return %0.2
  34453. │ buildTreeDepth[0x7f92446010b0] │
  34454. └──────────────────────────────────────────────────────────────────────────────┘
  34455.  
  34456. ┌──────────────────────────────────────────────────────────────────────────────┐
  34457. │ test[0x7f9244567f20] │
  34458. ├────── Inline Promises: == 6
  34459. test[0x7f9244567f20]
  34460. BB0
  34461. env e0.0 = MkEnv parent=<environment: R_GlobalEnv>
  34462. real$' %0.1 = LdConst [1] 74755
  34463. real$' %0.2 = SetShared %0.1
  34464. void StVar seed, %0.2, e0.0
  34465. cls %0.4 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.0
  34466. cls %0.5 = SetShared %0.4
  34467. void StVar nextRandom, %0.5, e0.0
  34468. cls %0.7 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.0
  34469. cls %0.8 = SetShared %0.7
  34470. void StVar buildTreeDepth, %0.8, e0.0
  34471. cls %0.10 = LdFun buildTreeDepth, e0.0
  34472. real$' %0.11 = LdConst [1] 2
  34473. prom %0.12 = MkArg %0.11, Prom(0), e0.0
  34474. prom %0.13 = MkArg missing, Prom(1), e0.0
  34475. cls' %0.14 = LdConst function (depth, random) { if (d...
  34476. t %0.15 = Identical %0.10, %0.14
  34477. cp %0.16 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  34478. BB1
  34479. void Assume %0.15, %0.16
  34480. fs %1.1 = FrameState 0x7f924457e060+155: [], env=e0.0
  34481. val^ %1.2 = StaticCall buildTreeDepth[0x7f92446010b0](%0.12, %0.13) %1.1, e0.0
  34482. val %1.3 = Force %1.2, e0.0
  34483. void Return %1.3
  34484. BB2
  34485. fs %2.0 = FrameState 0x7f924457e060+138: [%0.10], env=e0.0
  34486. void Deopt %2.0
  34487. Prom 0:
  34488. BB0
  34489. env e0.0 = LdFunctionEnv
  34490. real$' %0.1 = LdConst [1] 2
  34491. void Return %0.1
  34492. Prom 1:
  34493. BB0
  34494. env e0.0 = LdFunctionEnv
  34495. cls %0.1 = LdFun nextRandom, e0.0
  34496. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34497. val^ %0.3 = Call %0.1() %0.2, e0.0
  34498. val %0.4 = Force %0.3, e0.0
  34499. void Return %0.4
  34500. ├────── Scope resolution: == 13
  34501. test[0x7f9244567f20]
  34502. BB0
  34503. env e0.0 = MkEnv parent=<environment: R_GlobalEnv>
  34504. real$' %0.1 = LdConst [1] 74755
  34505. real$' %0.2 = SetShared %0.1
  34506. void StVar seed, %0.2, e0.0
  34507. cls %0.4 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.0
  34508. cls %0.5 = SetShared %0.4
  34509. void StVar nextRandom, %0.5, e0.0
  34510. cls %0.7 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.0
  34511. cls %0.8 = SetShared %0.7
  34512. void StVar buildTreeDepth, %0.8, e0.0
  34513. real$' %0.10 = LdConst [1] 2
  34514. prom %0.11 = MkArg %0.10, Prom(0), e0.0
  34515. prom %0.12 = MkArg missing, Prom(1), e0.0
  34516. cls' %0.13 = LdConst function (depth, random) { if (d...
  34517. t %0.14 = Identical %0.8, %0.13
  34518. cp %0.15 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  34519. BB1
  34520. void Assume %0.14, %0.15
  34521. fs %1.1 = FrameState 0x7f924457e060+155: [], env=e0.0
  34522. val^ %1.2 = StaticCall buildTreeDepth[0x7f92446010b0](%0.11, %0.12) %1.1, e0.0
  34523. val %1.3 = Force %1.2, e0.0
  34524. void Return %1.3
  34525. BB2
  34526. fs %2.0 = FrameState 0x7f924457e060+138: [%0.8], env=e0.0
  34527. void Deopt %2.0
  34528. Prom 0:
  34529. BB0
  34530. env e0.0 = LdFunctionEnv
  34531. real$' %0.1 = LdConst [1] 2
  34532. void Return %0.1
  34533. Prom 1:
  34534. BB0
  34535. env e0.0 = LdFunctionEnv
  34536. cls %0.1 = LdFun nextRandom, e0.0
  34537. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34538. val^ %0.3 = Call %0.1() %0.2, e0.0
  34539. val %0.4 = Force %0.3, e0.0
  34540. void Return %0.4
  34541. ├────── Constant folding: == 20
  34542. test[0x7f9244567f20]
  34543. BB0
  34544. env e0.0 = MkEnv parent=<environment: R_GlobalEnv>
  34545. real$' %0.1 = LdConst [1] 74755
  34546. real$' %0.2 = SetShared %0.1
  34547. void StVar seed, %0.2, e0.0
  34548. cls %0.4 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.0
  34549. cls %0.5 = SetShared %0.4
  34550. void StVar nextRandom, %0.5, e0.0
  34551. cls %0.7 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.0
  34552. cls %0.8 = SetShared %0.7
  34553. void StVar buildTreeDepth, %0.8, e0.0
  34554. real$' %0.10 = LdConst [1] 2
  34555. prom %0.11 = MkArg %0.10, Prom(0), e0.0
  34556. prom %0.12 = MkArg missing, Prom(1), e0.0
  34557. cls' %0.13 = LdConst function (depth, random) { if (d...
  34558. t %0.14 = Identical %0.8, %0.13
  34559. cp %0.15 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  34560. BB1
  34561. void Assume %0.14, %0.15
  34562. fs %1.1 = FrameState 0x7f924457e060+155: [], env=e0.0
  34563. val^ %1.2 = StaticCall buildTreeDepth[0x7f92446010b0](%0.11, %0.12) %1.1, e0.0
  34564. val %1.3 = Force %1.2, e0.0
  34565. void Return %1.3
  34566. BB2
  34567. fs %2.0 = FrameState 0x7f924457e060+138: [%0.8], env=e0.0
  34568. void Deopt %2.0
  34569. Prom 0:
  34570. BB0
  34571. env e0.0 = LdFunctionEnv
  34572. real$' %0.1 = LdConst [1] 2
  34573. void Return %0.1
  34574. Prom 1:
  34575. BB0
  34576. env e0.0 = LdFunctionEnv
  34577. cls %0.1 = LdFun nextRandom, e0.0
  34578. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34579. val^ %0.3 = Call %0.1() %0.2, e0.0
  34580. val %0.4 = Force %0.3, e0.0
  34581. void Return %0.4
  34582. ├────── Cleanup redundant operations: == 27
  34583. test[0x7f9244567f20]
  34584. BB0
  34585. env e0.0 = MkEnv parent=<environment: R_GlobalEnv>
  34586. real$' %0.1 = LdConst [1] 74755
  34587. real$' %0.2 = SetShared %0.1
  34588. void StVar seed, %0.1, e0.0
  34589. cls %0.4 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.0
  34590. cls %0.5 = SetShared %0.4
  34591. void StVar nextRandom, %0.4, e0.0
  34592. cls %0.7 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.0
  34593. cls %0.8 = SetShared %0.7
  34594. void StVar buildTreeDepth, %0.8, e0.0
  34595. real$' %0.10 = LdConst [1] 2
  34596. prom %0.11 = MkArg %0.10, Prom(0), e0.0
  34597. prom %0.12 = MkArg missing, Prom(1), e0.0
  34598. cls' %0.13 = LdConst function (depth, random) { if (d...
  34599. t %0.14 = Identical %0.8, %0.13
  34600. cp %0.15 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34601. BB2
  34602. void Assume %0.14, %0.15
  34603. fs %2.1 = FrameState 0x7f924457e060+155: [], env=e0.0
  34604. val^ %2.2 = StaticCall buildTreeDepth[0x7f92446010b0](%0.11, %0.12) %2.1, e0.0
  34605. val %2.3 = Force %2.2, e0.0
  34606. void Return %2.3
  34607. BB1
  34608. fs %1.0 = FrameState 0x7f924457e060+138: [%0.8], env=e0.0
  34609. void Deopt %1.0
  34610. Prom 0:
  34611. BB0
  34612. env e0.0 = LdFunctionEnv
  34613. real$' %0.1 = LdConst [1] 2
  34614. void Return %0.1
  34615. Prom 1:
  34616. BB0
  34617. env e0.0 = LdFunctionEnv
  34618. cls %0.1 = LdFun nextRandom, e0.0
  34619. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34620. val^ %0.3 = Call %0.1() %0.2, e0.0
  34621. val %0.4 = Force %0.3, e0.0
  34622. void Return %0.4
  34623. ├────── Delay instructions: == 34
  34624. test[0x7f9244567f20]
  34625. BB0
  34626. env e0.0 = MkEnv parent=<environment: R_GlobalEnv>
  34627. real$' %0.1 = LdConst [1] 74755
  34628. real$' %0.2 = SetShared %0.1
  34629. void StVar seed, %0.1, e0.0
  34630. cls %0.4 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.0
  34631. cls %0.5 = SetShared %0.4
  34632. void StVar nextRandom, %0.4, e0.0
  34633. cls %0.7 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.0
  34634. cls %0.8 = SetShared %0.7
  34635. void StVar buildTreeDepth, %0.8, e0.0
  34636. real$' %0.10 = LdConst [1] 2
  34637. prom %0.11 = MkArg %0.10, Prom(0), e0.0
  34638. prom %0.12 = MkArg missing, Prom(1), e0.0
  34639. cls' %0.13 = LdConst function (depth, random) { if (d...
  34640. cp %0.14 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34641. BB2
  34642. t %2.0 = Identical %0.8, %0.13
  34643. void Assume %2.0, %0.14
  34644. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.0
  34645. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.11, %0.12) %2.2, e0.0
  34646. val %2.4 = Force %2.3, e0.0
  34647. void Return %2.4
  34648. BB1
  34649. fs %1.0 = FrameState 0x7f924457e060+138: [%0.8], env=e0.0
  34650. void Deopt %1.0
  34651. Prom 0:
  34652. BB0
  34653. env e0.0 = LdFunctionEnv
  34654. real$' %0.1 = LdConst [1] 2
  34655. void Return %0.1
  34656. Prom 1:
  34657. BB0
  34658. env e0.0 = LdFunctionEnv
  34659. cls %0.1 = LdFun nextRandom, e0.0
  34660. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34661. val^ %0.3 = Call %0.1() %0.2, e0.0
  34662. val %0.4 = Force %0.3, e0.0
  34663. void Return %0.4
  34664. ├────── Elide environments not needed: == 41
  34665. test[0x7f9244567f20]
  34666. BB0
  34667. env e0.0 = MkEnv parent=<environment: R_GlobalEnv>
  34668. real$' %0.1 = LdConst [1] 74755
  34669. real$' %0.2 = SetShared %0.1
  34670. void StVar seed, %0.1, e0.0
  34671. cls %0.4 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.0
  34672. cls %0.5 = SetShared %0.4
  34673. void StVar nextRandom, %0.4, e0.0
  34674. cls %0.7 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.0
  34675. cls %0.8 = SetShared %0.7
  34676. void StVar buildTreeDepth, %0.8, e0.0
  34677. real$' %0.10 = LdConst [1] 2
  34678. prom %0.11 = MkArg %0.10, Prom(0), e0.0
  34679. prom %0.12 = MkArg missing, Prom(1), e0.0
  34680. cls' %0.13 = LdConst function (depth, random) { if (d...
  34681. cp %0.14 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34682. BB2
  34683. t %2.0 = Identical %0.8, %0.13
  34684. void Assume %2.0, %0.14
  34685. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.0
  34686. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.11, %0.12) %2.2, e0.0
  34687. val %2.4 = Force %2.3, e0.0
  34688. void Return %2.4
  34689. BB1
  34690. fs %1.0 = FrameState 0x7f924457e060+138: [%0.8], env=e0.0
  34691. void Deopt %1.0
  34692. Prom 0:
  34693. BB0
  34694. env e0.0 = LdFunctionEnv
  34695. real$' %0.1 = LdConst [1] 2
  34696. void Return %0.1
  34697. Prom 1:
  34698. BB0
  34699. env e0.0 = LdFunctionEnv
  34700. cls %0.1 = LdFun nextRandom, e0.0
  34701. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34702. val^ %0.3 = Call %0.1() %0.2, e0.0
  34703. val %0.4 = Force %0.3, e0.0
  34704. void Return %0.4
  34705. ├────── Move environment creation as far as possible: == 48
  34706. test[0x7f9244567f20]
  34707. BB0
  34708. real$' %0.0 = LdConst [1] 74755
  34709. real$' %0.1 = SetShared %0.0
  34710. env e0.2 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34711. cls %0.3 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.2
  34712. cls %0.4 = SetShared %0.3
  34713. void StVar nextRandom, %0.3, e0.2
  34714. cls %0.6 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.2
  34715. cls %0.7 = SetShared %0.6
  34716. void StVar buildTreeDepth, %0.7, e0.2
  34717. real$' %0.9 = LdConst [1] 2
  34718. prom %0.10 = MkArg %0.9, Prom(0), e0.2
  34719. prom %0.11 = MkArg missing, Prom(1), e0.2
  34720. cls' %0.12 = LdConst function (depth, random) { if (d...
  34721. cp %0.13 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34722. BB2
  34723. t %2.0 = Identical %0.7, %0.12
  34724. void Assume %2.0, %0.13
  34725. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.2
  34726. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.10, %0.11) %2.2, e0.2
  34727. val %2.4 = Force %2.3, e0.2
  34728. void Return %2.4
  34729. BB1
  34730. fs %1.0 = FrameState 0x7f924457e060+138: [%0.7], env=e0.2
  34731. void Deopt %1.0
  34732. Prom 0:
  34733. BB0
  34734. env e0.0 = LdFunctionEnv
  34735. real$' %0.1 = LdConst [1] 2
  34736. void Return %0.1
  34737. Prom 1:
  34738. BB0
  34739. env e0.0 = LdFunctionEnv
  34740. cls %0.1 = LdFun nextRandom, e0.0
  34741. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34742. val^ %0.3 = Call %0.1() %0.2, e0.0
  34743. val %0.4 = Force %0.3, e0.0
  34744. void Return %0.4
  34745. ├────── Cleanup redundant operations: == 55
  34746. test[0x7f9244567f20]
  34747. BB0
  34748. real$' %0.0 = LdConst [1] 74755
  34749. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34750. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  34751. void StVar nextRandom, %0.2, e0.1
  34752. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  34753. cls %0.5 = SetShared %0.4
  34754. void StVar buildTreeDepth, %0.5, e0.1
  34755. real$' %0.7 = LdConst [1] 2
  34756. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  34757. prom %0.9 = MkArg missing, Prom(1), e0.1
  34758. cls' %0.10 = LdConst function (depth, random) { if (d...
  34759. cp %0.11 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34760. BB2
  34761. t %2.0 = Identical %0.5, %0.10
  34762. void Assume %2.0, %0.11
  34763. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.1
  34764. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.2, e0.1
  34765. val %2.4 = Force %2.3, e0.1
  34766. void Return %2.4
  34767. BB1
  34768. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  34769. void Deopt %1.0
  34770. Prom 0:
  34771. BB0
  34772. env e0.0 = LdFunctionEnv
  34773. real$' %0.1 = LdConst [1] 2
  34774. void Return %0.1
  34775. Prom 1:
  34776. BB0
  34777. env e0.0 = LdFunctionEnv
  34778. cls %0.1 = LdFun nextRandom, e0.0
  34779. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34780. val^ %0.3 = Call %0.1() %0.2, e0.0
  34781. val %0.4 = Force %0.3, e0.0
  34782. void Return %0.4
  34783. ├────── Inline closures: == 62
  34784. test[0x7f9244567f20]
  34785. BB0
  34786. real$' %0.0 = LdConst [1] 74755
  34787. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34788. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  34789. void StVar nextRandom, %0.2, e0.1
  34790. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  34791. cls %0.5 = SetShared %0.4
  34792. void StVar buildTreeDepth, %0.5, e0.1
  34793. real$' %0.7 = LdConst [1] 2
  34794. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  34795. prom %0.9 = MkArg missing, Prom(1), e0.1
  34796. cls' %0.10 = LdConst function (depth, random) { if (d...
  34797. cp %0.11 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34798. BB2
  34799. t %2.0 = Identical %0.5, %0.10
  34800. void Assume %2.0, %0.11
  34801. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.1
  34802. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.2, e0.1
  34803. val %2.4 = Force %2.3, e0.1
  34804. void Return %2.4
  34805. BB1
  34806. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  34807. void Deopt %1.0
  34808. Prom 0:
  34809. BB0
  34810. env e0.0 = LdFunctionEnv
  34811. real$' %0.1 = LdConst [1] 2
  34812. void Return %0.1
  34813. Prom 1:
  34814. BB0
  34815. env e0.0 = LdFunctionEnv
  34816. cls %0.1 = LdFun nextRandom, e0.0
  34817. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34818. val^ %0.3 = Call %0.1() %0.2, e0.0
  34819. val %0.4 = Force %0.3, e0.0
  34820. void Return %0.4
  34821. ├────── Inline Promises: == 69
  34822. test[0x7f9244567f20]
  34823. BB0
  34824. real$' %0.0 = LdConst [1] 74755
  34825. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34826. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  34827. void StVar nextRandom, %0.2, e0.1
  34828. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  34829. cls %0.5 = SetShared %0.4
  34830. void StVar buildTreeDepth, %0.5, e0.1
  34831. real$' %0.7 = LdConst [1] 2
  34832. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  34833. prom %0.9 = MkArg missing, Prom(1), e0.1
  34834. cls' %0.10 = LdConst function (depth, random) { if (d...
  34835. cp %0.11 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34836. BB2
  34837. t %2.0 = Identical %0.5, %0.10
  34838. void Assume %2.0, %0.11
  34839. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.1
  34840. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.2, e0.1
  34841. val %2.4 = Force %2.3, e0.1
  34842. void Return %2.4
  34843. BB1
  34844. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  34845. void Deopt %1.0
  34846. Prom 0:
  34847. BB0
  34848. env e0.0 = LdFunctionEnv
  34849. real$' %0.1 = LdConst [1] 2
  34850. void Return %0.1
  34851. Prom 1:
  34852. BB0
  34853. env e0.0 = LdFunctionEnv
  34854. cls %0.1 = LdFun nextRandom, e0.0
  34855. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34856. val^ %0.3 = Call %0.1() %0.2, e0.0
  34857. val %0.4 = Force %0.3, e0.0
  34858. void Return %0.4
  34859. ├────── Scope resolution: == 76
  34860. test[0x7f9244567f20]
  34861. BB0
  34862. real$' %0.0 = LdConst [1] 74755
  34863. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34864. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  34865. void StVar nextRandom, %0.2, e0.1
  34866. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  34867. cls %0.5 = SetShared %0.4
  34868. void StVar buildTreeDepth, %0.5, e0.1
  34869. real$' %0.7 = LdConst [1] 2
  34870. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  34871. prom %0.9 = MkArg missing, Prom(1), e0.1
  34872. cls' %0.10 = LdConst function (depth, random) { if (d...
  34873. cp %0.11 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34874. BB2
  34875. t %2.0 = Identical %0.5, %0.10
  34876. void Assume %2.0, %0.11
  34877. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.1
  34878. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.2, e0.1
  34879. val %2.4 = Force %2.3, e0.1
  34880. void Return %2.4
  34881. BB1
  34882. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  34883. void Deopt %1.0
  34884. Prom 0:
  34885. BB0
  34886. env e0.0 = LdFunctionEnv
  34887. real$' %0.1 = LdConst [1] 2
  34888. void Return %0.1
  34889. Prom 1:
  34890. BB0
  34891. env e0.0 = LdFunctionEnv
  34892. cls %0.1 = LdFun nextRandom, e0.0
  34893. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34894. val^ %0.3 = Call %0.1() %0.2, e0.0
  34895. val %0.4 = Force %0.3, e0.0
  34896. void Return %0.4
  34897. ├────── Constant folding: == 83
  34898. test[0x7f9244567f20]
  34899. BB0
  34900. real$' %0.0 = LdConst [1] 74755
  34901. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34902. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  34903. void StVar nextRandom, %0.2, e0.1
  34904. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  34905. cls %0.5 = SetShared %0.4
  34906. void StVar buildTreeDepth, %0.5, e0.1
  34907. real$' %0.7 = LdConst [1] 2
  34908. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  34909. prom %0.9 = MkArg missing, Prom(1), e0.1
  34910. cls' %0.10 = LdConst function (depth, random) { if (d...
  34911. cp %0.11 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34912. BB2
  34913. t %2.0 = Identical %0.5, %0.10
  34914. void Assume %2.0, %0.11
  34915. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.1
  34916. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.2, e0.1
  34917. val %2.4 = Force %2.3, e0.1
  34918. void Return %2.4
  34919. BB1
  34920. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  34921. void Deopt %1.0
  34922. Prom 0:
  34923. BB0
  34924. env e0.0 = LdFunctionEnv
  34925. real$' %0.1 = LdConst [1] 2
  34926. void Return %0.1
  34927. Prom 1:
  34928. BB0
  34929. env e0.0 = LdFunctionEnv
  34930. cls %0.1 = LdFun nextRandom, e0.0
  34931. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34932. val^ %0.3 = Call %0.1() %0.2, e0.0
  34933. val %0.4 = Force %0.3, e0.0
  34934. void Return %0.4
  34935. ├────── Cleanup redundant operations: == 90
  34936. test[0x7f9244567f20]
  34937. BB0
  34938. real$' %0.0 = LdConst [1] 74755
  34939. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34940. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  34941. void StVar nextRandom, %0.2, e0.1
  34942. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  34943. cls %0.5 = SetShared %0.4
  34944. void StVar buildTreeDepth, %0.5, e0.1
  34945. real$' %0.7 = LdConst [1] 2
  34946. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  34947. prom %0.9 = MkArg missing, Prom(1), e0.1
  34948. cls' %0.10 = LdConst function (depth, random) { if (d...
  34949. cp %0.11 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34950. BB2
  34951. t %2.0 = Identical %0.5, %0.10
  34952. void Assume %2.0, %0.11
  34953. fs %2.2 = FrameState 0x7f924457e060+155: [], env=e0.1
  34954. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.2, e0.1
  34955. val %2.4 = Force %2.3, e0.1
  34956. void Return %2.4
  34957. BB1
  34958. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  34959. void Deopt %1.0
  34960. Prom 0:
  34961. BB0
  34962. env e0.0 = LdFunctionEnv
  34963. real$' %0.1 = LdConst [1] 2
  34964. void Return %0.1
  34965. Prom 1:
  34966. BB0
  34967. env e0.0 = LdFunctionEnv
  34968. cls %0.1 = LdFun nextRandom, e0.0
  34969. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  34970. val^ %0.3 = Call %0.1() %0.2, e0.0
  34971. val %0.4 = Force %0.3, e0.0
  34972. void Return %0.4
  34973. ├────── Delay instructions: == 97
  34974. test[0x7f9244567f20]
  34975. BB0
  34976. real$' %0.0 = LdConst [1] 74755
  34977. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  34978. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  34979. void StVar nextRandom, %0.2, e0.1
  34980. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  34981. cls %0.5 = SetShared %0.4
  34982. void StVar buildTreeDepth, %0.5, e0.1
  34983. real$' %0.7 = LdConst [1] 2
  34984. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  34985. prom %0.9 = MkArg missing, Prom(1), e0.1
  34986. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  34987. BB2
  34988. cls' %2.0 = LdConst function (depth, random) { if (d...
  34989. t %2.1 = Identical %0.5, %2.0
  34990. void Assume %2.1, %0.10
  34991. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  34992. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  34993. val %2.5 = Force %2.4, e0.1
  34994. void Return %2.5
  34995. BB1
  34996. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  34997. void Deopt %1.0
  34998. Prom 0:
  34999. BB0
  35000. env e0.0 = LdFunctionEnv
  35001. real$' %0.1 = LdConst [1] 2
  35002. void Return %0.1
  35003. Prom 1:
  35004. BB0
  35005. env e0.0 = LdFunctionEnv
  35006. cls %0.1 = LdFun nextRandom, e0.0
  35007. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35008. val^ %0.3 = Call %0.1() %0.2, e0.0
  35009. val %0.4 = Force %0.3, e0.0
  35010. void Return %0.4
  35011. ├────── Elide environments not needed: == 104
  35012. test[0x7f9244567f20]
  35013. BB0
  35014. real$' %0.0 = LdConst [1] 74755
  35015. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35016. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35017. void StVar nextRandom, %0.2, e0.1
  35018. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35019. cls %0.5 = SetShared %0.4
  35020. void StVar buildTreeDepth, %0.5, e0.1
  35021. real$' %0.7 = LdConst [1] 2
  35022. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35023. prom %0.9 = MkArg missing, Prom(1), e0.1
  35024. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35025. BB2
  35026. cls' %2.0 = LdConst function (depth, random) { if (d...
  35027. t %2.1 = Identical %0.5, %2.0
  35028. void Assume %2.1, %0.10
  35029. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35030. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35031. val %2.5 = Force %2.4, e0.1
  35032. void Return %2.5
  35033. BB1
  35034. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35035. void Deopt %1.0
  35036. Prom 0:
  35037. BB0
  35038. env e0.0 = LdFunctionEnv
  35039. real$' %0.1 = LdConst [1] 2
  35040. void Return %0.1
  35041. Prom 1:
  35042. BB0
  35043. env e0.0 = LdFunctionEnv
  35044. cls %0.1 = LdFun nextRandom, e0.0
  35045. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35046. val^ %0.3 = Call %0.1() %0.2, e0.0
  35047. val %0.4 = Force %0.3, e0.0
  35048. void Return %0.4
  35049. ├────── Move environment creation as far as possible: == 111
  35050. test[0x7f9244567f20]
  35051. BB0
  35052. real$' %0.0 = LdConst [1] 74755
  35053. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35054. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35055. void StVar nextRandom, %0.2, e0.1
  35056. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35057. cls %0.5 = SetShared %0.4
  35058. void StVar buildTreeDepth, %0.5, e0.1
  35059. real$' %0.7 = LdConst [1] 2
  35060. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35061. prom %0.9 = MkArg missing, Prom(1), e0.1
  35062. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35063. BB2
  35064. cls' %2.0 = LdConst function (depth, random) { if (d...
  35065. t %2.1 = Identical %0.5, %2.0
  35066. void Assume %2.1, %0.10
  35067. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35068. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35069. val %2.5 = Force %2.4, e0.1
  35070. void Return %2.5
  35071. BB1
  35072. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35073. void Deopt %1.0
  35074. Prom 0:
  35075. BB0
  35076. env e0.0 = LdFunctionEnv
  35077. real$' %0.1 = LdConst [1] 2
  35078. void Return %0.1
  35079. Prom 1:
  35080. BB0
  35081. env e0.0 = LdFunctionEnv
  35082. cls %0.1 = LdFun nextRandom, e0.0
  35083. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35084. val^ %0.3 = Call %0.1() %0.2, e0.0
  35085. val %0.4 = Force %0.3, e0.0
  35086. void Return %0.4
  35087. ├────── Cleanup redundant operations: == 118
  35088. test[0x7f9244567f20]
  35089. BB0
  35090. real$' %0.0 = LdConst [1] 74755
  35091. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35092. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35093. void StVar nextRandom, %0.2, e0.1
  35094. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35095. cls %0.5 = SetShared %0.4
  35096. void StVar buildTreeDepth, %0.5, e0.1
  35097. real$' %0.7 = LdConst [1] 2
  35098. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35099. prom %0.9 = MkArg missing, Prom(1), e0.1
  35100. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35101. BB2
  35102. cls' %2.0 = LdConst function (depth, random) { if (d...
  35103. t %2.1 = Identical %0.5, %2.0
  35104. void Assume %2.1, %0.10
  35105. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35106. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35107. val %2.5 = Force %2.4, e0.1
  35108. void Return %2.5
  35109. BB1
  35110. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35111. void Deopt %1.0
  35112. Prom 0:
  35113. BB0
  35114. env e0.0 = LdFunctionEnv
  35115. real$' %0.1 = LdConst [1] 2
  35116. void Return %0.1
  35117. Prom 1:
  35118. BB0
  35119. env e0.0 = LdFunctionEnv
  35120. cls %0.1 = LdFun nextRandom, e0.0
  35121. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35122. val^ %0.3 = Call %0.1() %0.2, e0.0
  35123. val %0.4 = Force %0.3, e0.0
  35124. void Return %0.4
  35125. ├────── Inline closures: == 125
  35126. test[0x7f9244567f20]
  35127. BB0
  35128. real$' %0.0 = LdConst [1] 74755
  35129. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35130. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35131. void StVar nextRandom, %0.2, e0.1
  35132. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35133. cls %0.5 = SetShared %0.4
  35134. void StVar buildTreeDepth, %0.5, e0.1
  35135. real$' %0.7 = LdConst [1] 2
  35136. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35137. prom %0.9 = MkArg missing, Prom(1), e0.1
  35138. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35139. BB2
  35140. cls' %2.0 = LdConst function (depth, random) { if (d...
  35141. t %2.1 = Identical %0.5, %2.0
  35142. void Assume %2.1, %0.10
  35143. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35144. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35145. val %2.5 = Force %2.4, e0.1
  35146. void Return %2.5
  35147. BB1
  35148. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35149. void Deopt %1.0
  35150. Prom 0:
  35151. BB0
  35152. env e0.0 = LdFunctionEnv
  35153. real$' %0.1 = LdConst [1] 2
  35154. void Return %0.1
  35155. Prom 1:
  35156. BB0
  35157. env e0.0 = LdFunctionEnv
  35158. cls %0.1 = LdFun nextRandom, e0.0
  35159. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35160. val^ %0.3 = Call %0.1() %0.2, e0.0
  35161. val %0.4 = Force %0.3, e0.0
  35162. void Return %0.4
  35163. ├────── Inline Promises: == 132
  35164. test[0x7f9244567f20]
  35165. BB0
  35166. real$' %0.0 = LdConst [1] 74755
  35167. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35168. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35169. void StVar nextRandom, %0.2, e0.1
  35170. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35171. cls %0.5 = SetShared %0.4
  35172. void StVar buildTreeDepth, %0.5, e0.1
  35173. real$' %0.7 = LdConst [1] 2
  35174. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35175. prom %0.9 = MkArg missing, Prom(1), e0.1
  35176. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35177. BB2
  35178. cls' %2.0 = LdConst function (depth, random) { if (d...
  35179. t %2.1 = Identical %0.5, %2.0
  35180. void Assume %2.1, %0.10
  35181. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35182. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35183. val %2.5 = Force %2.4, e0.1
  35184. void Return %2.5
  35185. BB1
  35186. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35187. void Deopt %1.0
  35188. Prom 0:
  35189. BB0
  35190. env e0.0 = LdFunctionEnv
  35191. real$' %0.1 = LdConst [1] 2
  35192. void Return %0.1
  35193. Prom 1:
  35194. BB0
  35195. env e0.0 = LdFunctionEnv
  35196. cls %0.1 = LdFun nextRandom, e0.0
  35197. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35198. val^ %0.3 = Call %0.1() %0.2, e0.0
  35199. val %0.4 = Force %0.3, e0.0
  35200. void Return %0.4
  35201. ├────── Scope resolution: == 139
  35202. test[0x7f9244567f20]
  35203. BB0
  35204. real$' %0.0 = LdConst [1] 74755
  35205. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35206. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35207. void StVar nextRandom, %0.2, e0.1
  35208. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35209. cls %0.5 = SetShared %0.4
  35210. void StVar buildTreeDepth, %0.5, e0.1
  35211. real$' %0.7 = LdConst [1] 2
  35212. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35213. prom %0.9 = MkArg missing, Prom(1), e0.1
  35214. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35215. BB2
  35216. cls' %2.0 = LdConst function (depth, random) { if (d...
  35217. t %2.1 = Identical %0.5, %2.0
  35218. void Assume %2.1, %0.10
  35219. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35220. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35221. val %2.5 = Force %2.4, e0.1
  35222. void Return %2.5
  35223. BB1
  35224. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35225. void Deopt %1.0
  35226. Prom 0:
  35227. BB0
  35228. env e0.0 = LdFunctionEnv
  35229. real$' %0.1 = LdConst [1] 2
  35230. void Return %0.1
  35231. Prom 1:
  35232. BB0
  35233. env e0.0 = LdFunctionEnv
  35234. cls %0.1 = LdFun nextRandom, e0.0
  35235. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35236. val^ %0.3 = Call %0.1() %0.2, e0.0
  35237. val %0.4 = Force %0.3, e0.0
  35238. void Return %0.4
  35239. ├────── Constant folding: == 146
  35240. test[0x7f9244567f20]
  35241. BB0
  35242. real$' %0.0 = LdConst [1] 74755
  35243. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35244. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35245. void StVar nextRandom, %0.2, e0.1
  35246. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35247. cls %0.5 = SetShared %0.4
  35248. void StVar buildTreeDepth, %0.5, e0.1
  35249. real$' %0.7 = LdConst [1] 2
  35250. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35251. prom %0.9 = MkArg missing, Prom(1), e0.1
  35252. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35253. BB2
  35254. cls' %2.0 = LdConst function (depth, random) { if (d...
  35255. t %2.1 = Identical %0.5, %2.0
  35256. void Assume %2.1, %0.10
  35257. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35258. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35259. val %2.5 = Force %2.4, e0.1
  35260. void Return %2.5
  35261. BB1
  35262. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35263. void Deopt %1.0
  35264. Prom 0:
  35265. BB0
  35266. env e0.0 = LdFunctionEnv
  35267. real$' %0.1 = LdConst [1] 2
  35268. void Return %0.1
  35269. Prom 1:
  35270. BB0
  35271. env e0.0 = LdFunctionEnv
  35272. cls %0.1 = LdFun nextRandom, e0.0
  35273. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35274. val^ %0.3 = Call %0.1() %0.2, e0.0
  35275. val %0.4 = Force %0.3, e0.0
  35276. void Return %0.4
  35277. ├────── Cleanup redundant operations: == 153
  35278. test[0x7f9244567f20]
  35279. BB0
  35280. real$' %0.0 = LdConst [1] 74755
  35281. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35282. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35283. void StVar nextRandom, %0.2, e0.1
  35284. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35285. cls %0.5 = SetShared %0.4
  35286. void StVar buildTreeDepth, %0.5, e0.1
  35287. real$' %0.7 = LdConst [1] 2
  35288. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35289. prom %0.9 = MkArg missing, Prom(1), e0.1
  35290. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35291. BB2
  35292. cls' %2.0 = LdConst function (depth, random) { if (d...
  35293. t %2.1 = Identical %0.5, %2.0
  35294. void Assume %2.1, %0.10
  35295. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35296. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35297. val %2.5 = Force %2.4, e0.1
  35298. void Return %2.5
  35299. BB1
  35300. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35301. void Deopt %1.0
  35302. Prom 0:
  35303. BB0
  35304. env e0.0 = LdFunctionEnv
  35305. real$' %0.1 = LdConst [1] 2
  35306. void Return %0.1
  35307. Prom 1:
  35308. BB0
  35309. env e0.0 = LdFunctionEnv
  35310. cls %0.1 = LdFun nextRandom, e0.0
  35311. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35312. val^ %0.3 = Call %0.1() %0.2, e0.0
  35313. val %0.4 = Force %0.3, e0.0
  35314. void Return %0.4
  35315. ├────── Delay instructions: == 160
  35316. test[0x7f9244567f20]
  35317. BB0
  35318. real$' %0.0 = LdConst [1] 74755
  35319. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35320. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35321. void StVar nextRandom, %0.2, e0.1
  35322. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35323. cls %0.5 = SetShared %0.4
  35324. void StVar buildTreeDepth, %0.5, e0.1
  35325. real$' %0.7 = LdConst [1] 2
  35326. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35327. prom %0.9 = MkArg missing, Prom(1), e0.1
  35328. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35329. BB2
  35330. cls' %2.0 = LdConst function (depth, random) { if (d...
  35331. t %2.1 = Identical %0.5, %2.0
  35332. void Assume %2.1, %0.10
  35333. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35334. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35335. val %2.5 = Force %2.4, e0.1
  35336. void Return %2.5
  35337. BB1
  35338. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35339. void Deopt %1.0
  35340. Prom 0:
  35341. BB0
  35342. env e0.0 = LdFunctionEnv
  35343. real$' %0.1 = LdConst [1] 2
  35344. void Return %0.1
  35345. Prom 1:
  35346. BB0
  35347. env e0.0 = LdFunctionEnv
  35348. cls %0.1 = LdFun nextRandom, e0.0
  35349. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35350. val^ %0.3 = Call %0.1() %0.2, e0.0
  35351. val %0.4 = Force %0.3, e0.0
  35352. void Return %0.4
  35353. ├────── Elide environments not needed: == 167
  35354. test[0x7f9244567f20]
  35355. BB0
  35356. real$' %0.0 = LdConst [1] 74755
  35357. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35358. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35359. void StVar nextRandom, %0.2, e0.1
  35360. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35361. cls %0.5 = SetShared %0.4
  35362. void StVar buildTreeDepth, %0.5, e0.1
  35363. real$' %0.7 = LdConst [1] 2
  35364. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35365. prom %0.9 = MkArg missing, Prom(1), e0.1
  35366. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35367. BB2
  35368. cls' %2.0 = LdConst function (depth, random) { if (d...
  35369. t %2.1 = Identical %0.5, %2.0
  35370. void Assume %2.1, %0.10
  35371. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35372. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35373. val %2.5 = Force %2.4, e0.1
  35374. void Return %2.5
  35375. BB1
  35376. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35377. void Deopt %1.0
  35378. Prom 0:
  35379. BB0
  35380. env e0.0 = LdFunctionEnv
  35381. real$' %0.1 = LdConst [1] 2
  35382. void Return %0.1
  35383. Prom 1:
  35384. BB0
  35385. env e0.0 = LdFunctionEnv
  35386. cls %0.1 = LdFun nextRandom, e0.0
  35387. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35388. val^ %0.3 = Call %0.1() %0.2, e0.0
  35389. val %0.4 = Force %0.3, e0.0
  35390. void Return %0.4
  35391. ├────── Move environment creation as far as possible: == 174
  35392. test[0x7f9244567f20]
  35393. BB0
  35394. real$' %0.0 = LdConst [1] 74755
  35395. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35396. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35397. void StVar nextRandom, %0.2, e0.1
  35398. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35399. cls %0.5 = SetShared %0.4
  35400. void StVar buildTreeDepth, %0.5, e0.1
  35401. real$' %0.7 = LdConst [1] 2
  35402. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35403. prom %0.9 = MkArg missing, Prom(1), e0.1
  35404. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35405. BB2
  35406. cls' %2.0 = LdConst function (depth, random) { if (d...
  35407. t %2.1 = Identical %0.5, %2.0
  35408. void Assume %2.1, %0.10
  35409. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35410. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35411. val %2.5 = Force %2.4, e0.1
  35412. void Return %2.5
  35413. BB1
  35414. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35415. void Deopt %1.0
  35416. Prom 0:
  35417. BB0
  35418. env e0.0 = LdFunctionEnv
  35419. real$' %0.1 = LdConst [1] 2
  35420. void Return %0.1
  35421. Prom 1:
  35422. BB0
  35423. env e0.0 = LdFunctionEnv
  35424. cls %0.1 = LdFun nextRandom, e0.0
  35425. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35426. val^ %0.3 = Call %0.1() %0.2, e0.0
  35427. val %0.4 = Force %0.3, e0.0
  35428. void Return %0.4
  35429. ├────── Cleanup redundant operations: == 181
  35430. test[0x7f9244567f20]
  35431. BB0
  35432. real$' %0.0 = LdConst [1] 74755
  35433. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35434. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35435. void StVar nextRandom, %0.2, e0.1
  35436. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35437. cls %0.5 = SetShared %0.4
  35438. void StVar buildTreeDepth, %0.5, e0.1
  35439. real$' %0.7 = LdConst [1] 2
  35440. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35441. prom %0.9 = MkArg missing, Prom(1), e0.1
  35442. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35443. BB2
  35444. cls' %2.0 = LdConst function (depth, random) { if (d...
  35445. t %2.1 = Identical %0.5, %2.0
  35446. void Assume %2.1, %0.10
  35447. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35448. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35449. val %2.5 = Force %2.4, e0.1
  35450. void Return %2.5
  35451. BB1
  35452. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35453. void Deopt %1.0
  35454. Prom 0:
  35455. BB0
  35456. env e0.0 = LdFunctionEnv
  35457. real$' %0.1 = LdConst [1] 2
  35458. void Return %0.1
  35459. Prom 1:
  35460. BB0
  35461. env e0.0 = LdFunctionEnv
  35462. cls %0.1 = LdFun nextRandom, e0.0
  35463. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35464. val^ %0.3 = Call %0.1() %0.2, e0.0
  35465. val %0.4 = Force %0.3, e0.0
  35466. void Return %0.4
  35467. ├────── Inline closures: == 188
  35468. test[0x7f9244567f20]
  35469. BB0
  35470. real$' %0.0 = LdConst [1] 74755
  35471. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35472. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35473. void StVar nextRandom, %0.2, e0.1
  35474. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35475. cls %0.5 = SetShared %0.4
  35476. void StVar buildTreeDepth, %0.5, e0.1
  35477. real$' %0.7 = LdConst [1] 2
  35478. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35479. prom %0.9 = MkArg missing, Prom(1), e0.1
  35480. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35481. BB2
  35482. cls' %2.0 = LdConst function (depth, random) { if (d...
  35483. t %2.1 = Identical %0.5, %2.0
  35484. void Assume %2.1, %0.10
  35485. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35486. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35487. val %2.5 = Force %2.4, e0.1
  35488. void Return %2.5
  35489. BB1
  35490. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35491. void Deopt %1.0
  35492. Prom 0:
  35493. BB0
  35494. env e0.0 = LdFunctionEnv
  35495. real$' %0.1 = LdConst [1] 2
  35496. void Return %0.1
  35497. Prom 1:
  35498. BB0
  35499. env e0.0 = LdFunctionEnv
  35500. cls %0.1 = LdFun nextRandom, e0.0
  35501. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35502. val^ %0.3 = Call %0.1() %0.2, e0.0
  35503. val %0.4 = Force %0.3, e0.0
  35504. void Return %0.4
  35505. ├────── Inline Promises: == 195
  35506. test[0x7f9244567f20]
  35507. BB0
  35508. real$' %0.0 = LdConst [1] 74755
  35509. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35510. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35511. void StVar nextRandom, %0.2, e0.1
  35512. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35513. cls %0.5 = SetShared %0.4
  35514. void StVar buildTreeDepth, %0.5, e0.1
  35515. real$' %0.7 = LdConst [1] 2
  35516. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35517. prom %0.9 = MkArg missing, Prom(1), e0.1
  35518. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35519. BB2
  35520. cls' %2.0 = LdConst function (depth, random) { if (d...
  35521. t %2.1 = Identical %0.5, %2.0
  35522. void Assume %2.1, %0.10
  35523. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35524. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35525. val %2.5 = Force %2.4, e0.1
  35526. void Return %2.5
  35527. BB1
  35528. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35529. void Deopt %1.0
  35530. Prom 0:
  35531. BB0
  35532. env e0.0 = LdFunctionEnv
  35533. real$' %0.1 = LdConst [1] 2
  35534. void Return %0.1
  35535. Prom 1:
  35536. BB0
  35537. env e0.0 = LdFunctionEnv
  35538. cls %0.1 = LdFun nextRandom, e0.0
  35539. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35540. val^ %0.3 = Call %0.1() %0.2, e0.0
  35541. val %0.4 = Force %0.3, e0.0
  35542. void Return %0.4
  35543. ├────── Scope resolution: == 202
  35544. test[0x7f9244567f20]
  35545. BB0
  35546. real$' %0.0 = LdConst [1] 74755
  35547. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35548. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35549. void StVar nextRandom, %0.2, e0.1
  35550. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35551. cls %0.5 = SetShared %0.4
  35552. void StVar buildTreeDepth, %0.5, e0.1
  35553. real$' %0.7 = LdConst [1] 2
  35554. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35555. prom %0.9 = MkArg missing, Prom(1), e0.1
  35556. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35557. BB2
  35558. cls' %2.0 = LdConst function (depth, random) { if (d...
  35559. t %2.1 = Identical %0.5, %2.0
  35560. void Assume %2.1, %0.10
  35561. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35562. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35563. val %2.5 = Force %2.4, e0.1
  35564. void Return %2.5
  35565. BB1
  35566. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35567. void Deopt %1.0
  35568. Prom 0:
  35569. BB0
  35570. env e0.0 = LdFunctionEnv
  35571. real$' %0.1 = LdConst [1] 2
  35572. void Return %0.1
  35573. Prom 1:
  35574. BB0
  35575. env e0.0 = LdFunctionEnv
  35576. cls %0.1 = LdFun nextRandom, e0.0
  35577. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35578. val^ %0.3 = Call %0.1() %0.2, e0.0
  35579. val %0.4 = Force %0.3, e0.0
  35580. void Return %0.4
  35581. ├────── Constant folding: == 209
  35582. test[0x7f9244567f20]
  35583. BB0
  35584. real$' %0.0 = LdConst [1] 74755
  35585. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35586. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35587. void StVar nextRandom, %0.2, e0.1
  35588. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35589. cls %0.5 = SetShared %0.4
  35590. void StVar buildTreeDepth, %0.5, e0.1
  35591. real$' %0.7 = LdConst [1] 2
  35592. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35593. prom %0.9 = MkArg missing, Prom(1), e0.1
  35594. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35595. BB2
  35596. cls' %2.0 = LdConst function (depth, random) { if (d...
  35597. t %2.1 = Identical %0.5, %2.0
  35598. void Assume %2.1, %0.10
  35599. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35600. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35601. val %2.5 = Force %2.4, e0.1
  35602. void Return %2.5
  35603. BB1
  35604. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35605. void Deopt %1.0
  35606. Prom 0:
  35607. BB0
  35608. env e0.0 = LdFunctionEnv
  35609. real$' %0.1 = LdConst [1] 2
  35610. void Return %0.1
  35611. Prom 1:
  35612. BB0
  35613. env e0.0 = LdFunctionEnv
  35614. cls %0.1 = LdFun nextRandom, e0.0
  35615. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35616. val^ %0.3 = Call %0.1() %0.2, e0.0
  35617. val %0.4 = Force %0.3, e0.0
  35618. void Return %0.4
  35619. ├────── Cleanup redundant operations: == 216
  35620. test[0x7f9244567f20]
  35621. BB0
  35622. real$' %0.0 = LdConst [1] 74755
  35623. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35624. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35625. void StVar nextRandom, %0.2, e0.1
  35626. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35627. cls %0.5 = SetShared %0.4
  35628. void StVar buildTreeDepth, %0.5, e0.1
  35629. real$' %0.7 = LdConst [1] 2
  35630. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35631. prom %0.9 = MkArg missing, Prom(1), e0.1
  35632. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35633. BB2
  35634. cls' %2.0 = LdConst function (depth, random) { if (d...
  35635. t %2.1 = Identical %0.5, %2.0
  35636. void Assume %2.1, %0.10
  35637. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35638. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35639. val %2.5 = Force %2.4, e0.1
  35640. void Return %2.5
  35641. BB1
  35642. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35643. void Deopt %1.0
  35644. Prom 0:
  35645. BB0
  35646. env e0.0 = LdFunctionEnv
  35647. real$' %0.1 = LdConst [1] 2
  35648. void Return %0.1
  35649. Prom 1:
  35650. BB0
  35651. env e0.0 = LdFunctionEnv
  35652. cls %0.1 = LdFun nextRandom, e0.0
  35653. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35654. val^ %0.3 = Call %0.1() %0.2, e0.0
  35655. val %0.4 = Force %0.3, e0.0
  35656. void Return %0.4
  35657. ├────── Delay instructions: == 223
  35658. test[0x7f9244567f20]
  35659. BB0
  35660. real$' %0.0 = LdConst [1] 74755
  35661. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35662. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35663. void StVar nextRandom, %0.2, e0.1
  35664. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35665. cls %0.5 = SetShared %0.4
  35666. void StVar buildTreeDepth, %0.5, e0.1
  35667. real$' %0.7 = LdConst [1] 2
  35668. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35669. prom %0.9 = MkArg missing, Prom(1), e0.1
  35670. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35671. BB2
  35672. cls' %2.0 = LdConst function (depth, random) { if (d...
  35673. t %2.1 = Identical %0.5, %2.0
  35674. void Assume %2.1, %0.10
  35675. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35676. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35677. val %2.5 = Force %2.4, e0.1
  35678. void Return %2.5
  35679. BB1
  35680. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35681. void Deopt %1.0
  35682. Prom 0:
  35683. BB0
  35684. env e0.0 = LdFunctionEnv
  35685. real$' %0.1 = LdConst [1] 2
  35686. void Return %0.1
  35687. Prom 1:
  35688. BB0
  35689. env e0.0 = LdFunctionEnv
  35690. cls %0.1 = LdFun nextRandom, e0.0
  35691. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35692. val^ %0.3 = Call %0.1() %0.2, e0.0
  35693. val %0.4 = Force %0.3, e0.0
  35694. void Return %0.4
  35695. ├────── Elide environments not needed: == 230
  35696. test[0x7f9244567f20]
  35697. BB0
  35698. real$' %0.0 = LdConst [1] 74755
  35699. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35700. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35701. void StVar nextRandom, %0.2, e0.1
  35702. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35703. cls %0.5 = SetShared %0.4
  35704. void StVar buildTreeDepth, %0.5, e0.1
  35705. real$' %0.7 = LdConst [1] 2
  35706. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35707. prom %0.9 = MkArg missing, Prom(1), e0.1
  35708. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35709. BB2
  35710. cls' %2.0 = LdConst function (depth, random) { if (d...
  35711. t %2.1 = Identical %0.5, %2.0
  35712. void Assume %2.1, %0.10
  35713. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35714. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35715. val %2.5 = Force %2.4, e0.1
  35716. void Return %2.5
  35717. BB1
  35718. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35719. void Deopt %1.0
  35720. Prom 0:
  35721. BB0
  35722. env e0.0 = LdFunctionEnv
  35723. real$' %0.1 = LdConst [1] 2
  35724. void Return %0.1
  35725. Prom 1:
  35726. BB0
  35727. env e0.0 = LdFunctionEnv
  35728. cls %0.1 = LdFun nextRandom, e0.0
  35729. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35730. val^ %0.3 = Call %0.1() %0.2, e0.0
  35731. val %0.4 = Force %0.3, e0.0
  35732. void Return %0.4
  35733. ├────── Move environment creation as far as possible: == 237
  35734. test[0x7f9244567f20]
  35735. BB0
  35736. real$' %0.0 = LdConst [1] 74755
  35737. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35738. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35739. void StVar nextRandom, %0.2, e0.1
  35740. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35741. cls %0.5 = SetShared %0.4
  35742. void StVar buildTreeDepth, %0.5, e0.1
  35743. real$' %0.7 = LdConst [1] 2
  35744. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35745. prom %0.9 = MkArg missing, Prom(1), e0.1
  35746. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35747. BB2
  35748. cls' %2.0 = LdConst function (depth, random) { if (d...
  35749. t %2.1 = Identical %0.5, %2.0
  35750. void Assume %2.1, %0.10
  35751. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35752. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35753. val %2.5 = Force %2.4, e0.1
  35754. void Return %2.5
  35755. BB1
  35756. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35757. void Deopt %1.0
  35758. Prom 0:
  35759. BB0
  35760. env e0.0 = LdFunctionEnv
  35761. real$' %0.1 = LdConst [1] 2
  35762. void Return %0.1
  35763. Prom 1:
  35764. BB0
  35765. env e0.0 = LdFunctionEnv
  35766. cls %0.1 = LdFun nextRandom, e0.0
  35767. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35768. val^ %0.3 = Call %0.1() %0.2, e0.0
  35769. val %0.4 = Force %0.3, e0.0
  35770. void Return %0.4
  35771. ├────── Cleanup redundant operations: == 244
  35772. test[0x7f9244567f20]
  35773. BB0
  35774. real$' %0.0 = LdConst [1] 74755
  35775. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35776. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35777. void StVar nextRandom, %0.2, e0.1
  35778. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35779. cls %0.5 = SetShared %0.4
  35780. void StVar buildTreeDepth, %0.5, e0.1
  35781. real$' %0.7 = LdConst [1] 2
  35782. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35783. prom %0.9 = MkArg missing, Prom(1), e0.1
  35784. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35785. BB2
  35786. cls' %2.0 = LdConst function (depth, random) { if (d...
  35787. t %2.1 = Identical %0.5, %2.0
  35788. void Assume %2.1, %0.10
  35789. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35790. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35791. val %2.5 = Force %2.4, e0.1
  35792. void Return %2.5
  35793. BB1
  35794. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35795. void Deopt %1.0
  35796. Prom 0:
  35797. BB0
  35798. env e0.0 = LdFunctionEnv
  35799. real$' %0.1 = LdConst [1] 2
  35800. void Return %0.1
  35801. Prom 1:
  35802. BB0
  35803. env e0.0 = LdFunctionEnv
  35804. cls %0.1 = LdFun nextRandom, e0.0
  35805. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35806. val^ %0.3 = Call %0.1() %0.2, e0.0
  35807. val %0.4 = Force %0.3, e0.0
  35808. void Return %0.4
  35809. ├────── Inline closures: == 251
  35810. test[0x7f9244567f20]
  35811. BB0
  35812. real$' %0.0 = LdConst [1] 74755
  35813. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35814. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35815. void StVar nextRandom, %0.2, e0.1
  35816. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35817. cls %0.5 = SetShared %0.4
  35818. void StVar buildTreeDepth, %0.5, e0.1
  35819. real$' %0.7 = LdConst [1] 2
  35820. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35821. prom %0.9 = MkArg missing, Prom(1), e0.1
  35822. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35823. BB2
  35824. cls' %2.0 = LdConst function (depth, random) { if (d...
  35825. t %2.1 = Identical %0.5, %2.0
  35826. void Assume %2.1, %0.10
  35827. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35828. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35829. val %2.5 = Force %2.4, e0.1
  35830. void Return %2.5
  35831. BB1
  35832. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35833. void Deopt %1.0
  35834. Prom 0:
  35835. BB0
  35836. env e0.0 = LdFunctionEnv
  35837. real$' %0.1 = LdConst [1] 2
  35838. void Return %0.1
  35839. Prom 1:
  35840. BB0
  35841. env e0.0 = LdFunctionEnv
  35842. cls %0.1 = LdFun nextRandom, e0.0
  35843. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35844. val^ %0.3 = Call %0.1() %0.2, e0.0
  35845. val %0.4 = Force %0.3, e0.0
  35846. void Return %0.4
  35847. ├────── Speculate on values to elide environments: == 258
  35848. test[0x7f9244567f20]
  35849. BB0
  35850. real$' %0.0 = LdConst [1] 74755
  35851. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35852. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35853. void StVar nextRandom, %0.2, e0.1
  35854. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35855. cls %0.5 = SetShared %0.4
  35856. void StVar buildTreeDepth, %0.5, e0.1
  35857. real$' %0.7 = LdConst [1] 2
  35858. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35859. prom %0.9 = MkArg missing, Prom(1), e0.1
  35860. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35861. BB2
  35862. cls' %2.0 = LdConst function (depth, random) { if (d...
  35863. t %2.1 = Identical %0.5, %2.0
  35864. void Assume %2.1, %0.10
  35865. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35866. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35867. val %2.5 = Force %2.4, e0.1
  35868. void Return %2.5
  35869. BB1
  35870. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35871. void Deopt %1.0
  35872. Prom 0:
  35873. BB0
  35874. env e0.0 = LdFunctionEnv
  35875. real$' %0.1 = LdConst [1] 2
  35876. void Return %0.1
  35877. Prom 1:
  35878. BB0
  35879. env e0.0 = LdFunctionEnv
  35880. cls %0.1 = LdFun nextRandom, e0.0
  35881. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35882. val^ %0.3 = Call %0.1() %0.2, e0.0
  35883. val %0.4 = Force %0.3, e0.0
  35884. void Return %0.4
  35885. ├────── Cleanup unused checkpoints: == 265
  35886. test[0x7f9244567f20]
  35887. BB0
  35888. real$' %0.0 = LdConst [1] 74755
  35889. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35890. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35891. void StVar nextRandom, %0.2, e0.1
  35892. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35893. cls %0.5 = SetShared %0.4
  35894. void StVar buildTreeDepth, %0.5, e0.1
  35895. real$' %0.7 = LdConst [1] 2
  35896. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35897. prom %0.9 = MkArg missing, Prom(1), e0.1
  35898. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35899. BB2
  35900. cls' %2.0 = LdConst function (depth, random) { if (d...
  35901. t %2.1 = Identical %0.5, %2.0
  35902. void Assume %2.1, %0.10
  35903. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35904. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35905. val %2.5 = Force %2.4, e0.1
  35906. void Return %2.5
  35907. BB1
  35908. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35909. void Deopt %1.0
  35910. Prom 0:
  35911. BB0
  35912. env e0.0 = LdFunctionEnv
  35913. real$' %0.1 = LdConst [1] 2
  35914. void Return %0.1
  35915. Prom 1:
  35916. BB0
  35917. env e0.0 = LdFunctionEnv
  35918. cls %0.1 = LdFun nextRandom, e0.0
  35919. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35920. val^ %0.3 = Call %0.1() %0.2, e0.0
  35921. val %0.4 = Force %0.3, e0.0
  35922. void Return %0.4
  35923. ├────── Inline Promises: == 272
  35924. test[0x7f9244567f20]
  35925. BB0
  35926. real$' %0.0 = LdConst [1] 74755
  35927. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35928. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35929. void StVar nextRandom, %0.2, e0.1
  35930. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35931. cls %0.5 = SetShared %0.4
  35932. void StVar buildTreeDepth, %0.5, e0.1
  35933. real$' %0.7 = LdConst [1] 2
  35934. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35935. prom %0.9 = MkArg missing, Prom(1), e0.1
  35936. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35937. BB2
  35938. cls' %2.0 = LdConst function (depth, random) { if (d...
  35939. t %2.1 = Identical %0.5, %2.0
  35940. void Assume %2.1, %0.10
  35941. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35942. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35943. val %2.5 = Force %2.4, e0.1
  35944. void Return %2.5
  35945. BB1
  35946. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35947. void Deopt %1.0
  35948. Prom 0:
  35949. BB0
  35950. env e0.0 = LdFunctionEnv
  35951. real$' %0.1 = LdConst [1] 2
  35952. void Return %0.1
  35953. Prom 1:
  35954. BB0
  35955. env e0.0 = LdFunctionEnv
  35956. cls %0.1 = LdFun nextRandom, e0.0
  35957. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35958. val^ %0.3 = Call %0.1() %0.2, e0.0
  35959. val %0.4 = Force %0.3, e0.0
  35960. void Return %0.4
  35961. ├────── Scope resolution: == 279
  35962. test[0x7f9244567f20]
  35963. BB0
  35964. real$' %0.0 = LdConst [1] 74755
  35965. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  35966. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  35967. void StVar nextRandom, %0.2, e0.1
  35968. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  35969. cls %0.5 = SetShared %0.4
  35970. void StVar buildTreeDepth, %0.5, e0.1
  35971. real$' %0.7 = LdConst [1] 2
  35972. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  35973. prom %0.9 = MkArg missing, Prom(1), e0.1
  35974. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  35975. BB2
  35976. cls' %2.0 = LdConst function (depth, random) { if (d...
  35977. t %2.1 = Identical %0.5, %2.0
  35978. void Assume %2.1, %0.10
  35979. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  35980. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  35981. val %2.5 = Force %2.4, e0.1
  35982. void Return %2.5
  35983. BB1
  35984. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  35985. void Deopt %1.0
  35986. Prom 0:
  35987. BB0
  35988. env e0.0 = LdFunctionEnv
  35989. real$' %0.1 = LdConst [1] 2
  35990. void Return %0.1
  35991. Prom 1:
  35992. BB0
  35993. env e0.0 = LdFunctionEnv
  35994. cls %0.1 = LdFun nextRandom, e0.0
  35995. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  35996. val^ %0.3 = Call %0.1() %0.2, e0.0
  35997. val %0.4 = Force %0.3, e0.0
  35998. void Return %0.4
  35999. ├────── Constant folding: == 286
  36000. test[0x7f9244567f20]
  36001. BB0
  36002. real$' %0.0 = LdConst [1] 74755
  36003. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36004. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36005. void StVar nextRandom, %0.2, e0.1
  36006. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36007. cls %0.5 = SetShared %0.4
  36008. void StVar buildTreeDepth, %0.5, e0.1
  36009. real$' %0.7 = LdConst [1] 2
  36010. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36011. prom %0.9 = MkArg missing, Prom(1), e0.1
  36012. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36013. BB2
  36014. cls' %2.0 = LdConst function (depth, random) { if (d...
  36015. t %2.1 = Identical %0.5, %2.0
  36016. void Assume %2.1, %0.10
  36017. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36018. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36019. val %2.5 = Force %2.4, e0.1
  36020. void Return %2.5
  36021. BB1
  36022. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36023. void Deopt %1.0
  36024. Prom 0:
  36025. BB0
  36026. env e0.0 = LdFunctionEnv
  36027. real$' %0.1 = LdConst [1] 2
  36028. void Return %0.1
  36029. Prom 1:
  36030. BB0
  36031. env e0.0 = LdFunctionEnv
  36032. cls %0.1 = LdFun nextRandom, e0.0
  36033. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36034. val^ %0.3 = Call %0.1() %0.2, e0.0
  36035. val %0.4 = Force %0.3, e0.0
  36036. void Return %0.4
  36037. ├────── Cleanup redundant operations: == 293
  36038. test[0x7f9244567f20]
  36039. BB0
  36040. real$' %0.0 = LdConst [1] 74755
  36041. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36042. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36043. void StVar nextRandom, %0.2, e0.1
  36044. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36045. cls %0.5 = SetShared %0.4
  36046. void StVar buildTreeDepth, %0.5, e0.1
  36047. real$' %0.7 = LdConst [1] 2
  36048. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36049. prom %0.9 = MkArg missing, Prom(1), e0.1
  36050. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36051. BB2
  36052. cls' %2.0 = LdConst function (depth, random) { if (d...
  36053. t %2.1 = Identical %0.5, %2.0
  36054. void Assume %2.1, %0.10
  36055. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36056. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36057. val %2.5 = Force %2.4, e0.1
  36058. void Return %2.5
  36059. BB1
  36060. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36061. void Deopt %1.0
  36062. Prom 0:
  36063. BB0
  36064. env e0.0 = LdFunctionEnv
  36065. real$' %0.1 = LdConst [1] 2
  36066. void Return %0.1
  36067. Prom 1:
  36068. BB0
  36069. env e0.0 = LdFunctionEnv
  36070. cls %0.1 = LdFun nextRandom, e0.0
  36071. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36072. val^ %0.3 = Call %0.1() %0.2, e0.0
  36073. val %0.4 = Force %0.3, e0.0
  36074. void Return %0.4
  36075. ├────── Delay instructions: == 300
  36076. test[0x7f9244567f20]
  36077. BB0
  36078. real$' %0.0 = LdConst [1] 74755
  36079. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36080. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36081. void StVar nextRandom, %0.2, e0.1
  36082. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36083. cls %0.5 = SetShared %0.4
  36084. void StVar buildTreeDepth, %0.5, e0.1
  36085. real$' %0.7 = LdConst [1] 2
  36086. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36087. prom %0.9 = MkArg missing, Prom(1), e0.1
  36088. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36089. BB2
  36090. cls' %2.0 = LdConst function (depth, random) { if (d...
  36091. t %2.1 = Identical %0.5, %2.0
  36092. void Assume %2.1, %0.10
  36093. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36094. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36095. val %2.5 = Force %2.4, e0.1
  36096. void Return %2.5
  36097. BB1
  36098. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36099. void Deopt %1.0
  36100. Prom 0:
  36101. BB0
  36102. env e0.0 = LdFunctionEnv
  36103. real$' %0.1 = LdConst [1] 2
  36104. void Return %0.1
  36105. Prom 1:
  36106. BB0
  36107. env e0.0 = LdFunctionEnv
  36108. cls %0.1 = LdFun nextRandom, e0.0
  36109. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36110. val^ %0.3 = Call %0.1() %0.2, e0.0
  36111. val %0.4 = Force %0.3, e0.0
  36112. void Return %0.4
  36113. ├────── Elide environments not needed: == 307
  36114. test[0x7f9244567f20]
  36115. BB0
  36116. real$' %0.0 = LdConst [1] 74755
  36117. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36118. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36119. void StVar nextRandom, %0.2, e0.1
  36120. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36121. cls %0.5 = SetShared %0.4
  36122. void StVar buildTreeDepth, %0.5, e0.1
  36123. real$' %0.7 = LdConst [1] 2
  36124. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36125. prom %0.9 = MkArg missing, Prom(1), e0.1
  36126. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36127. BB2
  36128. cls' %2.0 = LdConst function (depth, random) { if (d...
  36129. t %2.1 = Identical %0.5, %2.0
  36130. void Assume %2.1, %0.10
  36131. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36132. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36133. val %2.5 = Force %2.4, e0.1
  36134. void Return %2.5
  36135. BB1
  36136. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36137. void Deopt %1.0
  36138. Prom 0:
  36139. BB0
  36140. env e0.0 = LdFunctionEnv
  36141. real$' %0.1 = LdConst [1] 2
  36142. void Return %0.1
  36143. Prom 1:
  36144. BB0
  36145. env e0.0 = LdFunctionEnv
  36146. cls %0.1 = LdFun nextRandom, e0.0
  36147. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36148. val^ %0.3 = Call %0.1() %0.2, e0.0
  36149. val %0.4 = Force %0.3, e0.0
  36150. void Return %0.4
  36151. ├────── Move environment creation as far as possible: == 314
  36152. test[0x7f9244567f20]
  36153. BB0
  36154. real$' %0.0 = LdConst [1] 74755
  36155. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36156. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36157. void StVar nextRandom, %0.2, e0.1
  36158. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36159. cls %0.5 = SetShared %0.4
  36160. void StVar buildTreeDepth, %0.5, e0.1
  36161. real$' %0.7 = LdConst [1] 2
  36162. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36163. prom %0.9 = MkArg missing, Prom(1), e0.1
  36164. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36165. BB2
  36166. cls' %2.0 = LdConst function (depth, random) { if (d...
  36167. t %2.1 = Identical %0.5, %2.0
  36168. void Assume %2.1, %0.10
  36169. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36170. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36171. val %2.5 = Force %2.4, e0.1
  36172. void Return %2.5
  36173. BB1
  36174. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36175. void Deopt %1.0
  36176. Prom 0:
  36177. BB0
  36178. env e0.0 = LdFunctionEnv
  36179. real$' %0.1 = LdConst [1] 2
  36180. void Return %0.1
  36181. Prom 1:
  36182. BB0
  36183. env e0.0 = LdFunctionEnv
  36184. cls %0.1 = LdFun nextRandom, e0.0
  36185. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36186. val^ %0.3 = Call %0.1() %0.2, e0.0
  36187. val %0.4 = Force %0.3, e0.0
  36188. void Return %0.4
  36189. ├────── Cleanup redundant operations: == 321
  36190. test[0x7f9244567f20]
  36191. BB0
  36192. real$' %0.0 = LdConst [1] 74755
  36193. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36194. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36195. void StVar nextRandom, %0.2, e0.1
  36196. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36197. cls %0.5 = SetShared %0.4
  36198. void StVar buildTreeDepth, %0.5, e0.1
  36199. real$' %0.7 = LdConst [1] 2
  36200. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36201. prom %0.9 = MkArg missing, Prom(1), e0.1
  36202. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36203. BB2
  36204. cls' %2.0 = LdConst function (depth, random) { if (d...
  36205. t %2.1 = Identical %0.5, %2.0
  36206. void Assume %2.1, %0.10
  36207. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36208. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36209. val %2.5 = Force %2.4, e0.1
  36210. void Return %2.5
  36211. BB1
  36212. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36213. void Deopt %1.0
  36214. Prom 0:
  36215. BB0
  36216. env e0.0 = LdFunctionEnv
  36217. real$' %0.1 = LdConst [1] 2
  36218. void Return %0.1
  36219. Prom 1:
  36220. BB0
  36221. env e0.0 = LdFunctionEnv
  36222. cls %0.1 = LdFun nextRandom, e0.0
  36223. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36224. val^ %0.3 = Call %0.1() %0.2, e0.0
  36225. val %0.4 = Force %0.3, e0.0
  36226. void Return %0.4
  36227. ├────── Inline closures: == 328
  36228. test[0x7f9244567f20]
  36229. BB0
  36230. real$' %0.0 = LdConst [1] 74755
  36231. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36232. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36233. void StVar nextRandom, %0.2, e0.1
  36234. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36235. cls %0.5 = SetShared %0.4
  36236. void StVar buildTreeDepth, %0.5, e0.1
  36237. real$' %0.7 = LdConst [1] 2
  36238. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36239. prom %0.9 = MkArg missing, Prom(1), e0.1
  36240. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36241. BB2
  36242. cls' %2.0 = LdConst function (depth, random) { if (d...
  36243. t %2.1 = Identical %0.5, %2.0
  36244. void Assume %2.1, %0.10
  36245. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36246. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36247. val %2.5 = Force %2.4, e0.1
  36248. void Return %2.5
  36249. BB1
  36250. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36251. void Deopt %1.0
  36252. Prom 0:
  36253. BB0
  36254. env e0.0 = LdFunctionEnv
  36255. real$' %0.1 = LdConst [1] 2
  36256. void Return %0.1
  36257. Prom 1:
  36258. BB0
  36259. env e0.0 = LdFunctionEnv
  36260. cls %0.1 = LdFun nextRandom, e0.0
  36261. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36262. val^ %0.3 = Call %0.1() %0.2, e0.0
  36263. val %0.4 = Force %0.3, e0.0
  36264. void Return %0.4
  36265. ├────── Inline Promises: == 335
  36266. test[0x7f9244567f20]
  36267. BB0
  36268. real$' %0.0 = LdConst [1] 74755
  36269. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36270. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36271. void StVar nextRandom, %0.2, e0.1
  36272. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36273. cls %0.5 = SetShared %0.4
  36274. void StVar buildTreeDepth, %0.5, e0.1
  36275. real$' %0.7 = LdConst [1] 2
  36276. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36277. prom %0.9 = MkArg missing, Prom(1), e0.1
  36278. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36279. BB2
  36280. cls' %2.0 = LdConst function (depth, random) { if (d...
  36281. t %2.1 = Identical %0.5, %2.0
  36282. void Assume %2.1, %0.10
  36283. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36284. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36285. val %2.5 = Force %2.4, e0.1
  36286. void Return %2.5
  36287. BB1
  36288. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36289. void Deopt %1.0
  36290. Prom 0:
  36291. BB0
  36292. env e0.0 = LdFunctionEnv
  36293. real$' %0.1 = LdConst [1] 2
  36294. void Return %0.1
  36295. Prom 1:
  36296. BB0
  36297. env e0.0 = LdFunctionEnv
  36298. cls %0.1 = LdFun nextRandom, e0.0
  36299. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36300. val^ %0.3 = Call %0.1() %0.2, e0.0
  36301. val %0.4 = Force %0.3, e0.0
  36302. void Return %0.4
  36303. ├────── Scope resolution: == 342
  36304. test[0x7f9244567f20]
  36305. BB0
  36306. real$' %0.0 = LdConst [1] 74755
  36307. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36308. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36309. void StVar nextRandom, %0.2, e0.1
  36310. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36311. cls %0.5 = SetShared %0.4
  36312. void StVar buildTreeDepth, %0.5, e0.1
  36313. real$' %0.7 = LdConst [1] 2
  36314. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36315. prom %0.9 = MkArg missing, Prom(1), e0.1
  36316. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36317. BB2
  36318. cls' %2.0 = LdConst function (depth, random) { if (d...
  36319. t %2.1 = Identical %0.5, %2.0
  36320. void Assume %2.1, %0.10
  36321. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36322. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36323. val %2.5 = Force %2.4, e0.1
  36324. void Return %2.5
  36325. BB1
  36326. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36327. void Deopt %1.0
  36328. Prom 0:
  36329. BB0
  36330. env e0.0 = LdFunctionEnv
  36331. real$' %0.1 = LdConst [1] 2
  36332. void Return %0.1
  36333. Prom 1:
  36334. BB0
  36335. env e0.0 = LdFunctionEnv
  36336. cls %0.1 = LdFun nextRandom, e0.0
  36337. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36338. val^ %0.3 = Call %0.1() %0.2, e0.0
  36339. val %0.4 = Force %0.3, e0.0
  36340. void Return %0.4
  36341. ├────── Constant folding: == 349
  36342. test[0x7f9244567f20]
  36343. BB0
  36344. real$' %0.0 = LdConst [1] 74755
  36345. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36346. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36347. void StVar nextRandom, %0.2, e0.1
  36348. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36349. cls %0.5 = SetShared %0.4
  36350. void StVar buildTreeDepth, %0.5, e0.1
  36351. real$' %0.7 = LdConst [1] 2
  36352. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36353. prom %0.9 = MkArg missing, Prom(1), e0.1
  36354. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36355. BB2
  36356. cls' %2.0 = LdConst function (depth, random) { if (d...
  36357. t %2.1 = Identical %0.5, %2.0
  36358. void Assume %2.1, %0.10
  36359. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36360. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36361. val %2.5 = Force %2.4, e0.1
  36362. void Return %2.5
  36363. BB1
  36364. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36365. void Deopt %1.0
  36366. Prom 0:
  36367. BB0
  36368. env e0.0 = LdFunctionEnv
  36369. real$' %0.1 = LdConst [1] 2
  36370. void Return %0.1
  36371. Prom 1:
  36372. BB0
  36373. env e0.0 = LdFunctionEnv
  36374. cls %0.1 = LdFun nextRandom, e0.0
  36375. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36376. val^ %0.3 = Call %0.1() %0.2, e0.0
  36377. val %0.4 = Force %0.3, e0.0
  36378. void Return %0.4
  36379. ├────── Cleanup redundant operations: == 356
  36380. test[0x7f9244567f20]
  36381. BB0
  36382. real$' %0.0 = LdConst [1] 74755
  36383. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36384. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36385. void StVar nextRandom, %0.2, e0.1
  36386. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36387. cls %0.5 = SetShared %0.4
  36388. void StVar buildTreeDepth, %0.5, e0.1
  36389. real$' %0.7 = LdConst [1] 2
  36390. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36391. prom %0.9 = MkArg missing, Prom(1), e0.1
  36392. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36393. BB2
  36394. cls' %2.0 = LdConst function (depth, random) { if (d...
  36395. t %2.1 = Identical %0.5, %2.0
  36396. void Assume %2.1, %0.10
  36397. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36398. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36399. val %2.5 = Force %2.4, e0.1
  36400. void Return %2.5
  36401. BB1
  36402. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36403. void Deopt %1.0
  36404. Prom 0:
  36405. BB0
  36406. env e0.0 = LdFunctionEnv
  36407. real$' %0.1 = LdConst [1] 2
  36408. void Return %0.1
  36409. Prom 1:
  36410. BB0
  36411. env e0.0 = LdFunctionEnv
  36412. cls %0.1 = LdFun nextRandom, e0.0
  36413. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36414. val^ %0.3 = Call %0.1() %0.2, e0.0
  36415. val %0.4 = Force %0.3, e0.0
  36416. void Return %0.4
  36417. ├────── Delay instructions: == 363
  36418. test[0x7f9244567f20]
  36419. BB0
  36420. real$' %0.0 = LdConst [1] 74755
  36421. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36422. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36423. void StVar nextRandom, %0.2, e0.1
  36424. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36425. cls %0.5 = SetShared %0.4
  36426. void StVar buildTreeDepth, %0.5, e0.1
  36427. real$' %0.7 = LdConst [1] 2
  36428. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36429. prom %0.9 = MkArg missing, Prom(1), e0.1
  36430. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36431. BB2
  36432. cls' %2.0 = LdConst function (depth, random) { if (d...
  36433. t %2.1 = Identical %0.5, %2.0
  36434. void Assume %2.1, %0.10
  36435. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36436. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36437. val %2.5 = Force %2.4, e0.1
  36438. void Return %2.5
  36439. BB1
  36440. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36441. void Deopt %1.0
  36442. Prom 0:
  36443. BB0
  36444. env e0.0 = LdFunctionEnv
  36445. real$' %0.1 = LdConst [1] 2
  36446. void Return %0.1
  36447. Prom 1:
  36448. BB0
  36449. env e0.0 = LdFunctionEnv
  36450. cls %0.1 = LdFun nextRandom, e0.0
  36451. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36452. val^ %0.3 = Call %0.1() %0.2, e0.0
  36453. val %0.4 = Force %0.3, e0.0
  36454. void Return %0.4
  36455. ├────── Elide environments not needed: == 370
  36456. test[0x7f9244567f20]
  36457. BB0
  36458. real$' %0.0 = LdConst [1] 74755
  36459. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36460. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36461. void StVar nextRandom, %0.2, e0.1
  36462. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36463. cls %0.5 = SetShared %0.4
  36464. void StVar buildTreeDepth, %0.5, e0.1
  36465. real$' %0.7 = LdConst [1] 2
  36466. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36467. prom %0.9 = MkArg missing, Prom(1), e0.1
  36468. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36469. BB2
  36470. cls' %2.0 = LdConst function (depth, random) { if (d...
  36471. t %2.1 = Identical %0.5, %2.0
  36472. void Assume %2.1, %0.10
  36473. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36474. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36475. val %2.5 = Force %2.4, e0.1
  36476. void Return %2.5
  36477. BB1
  36478. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36479. void Deopt %1.0
  36480. Prom 0:
  36481. BB0
  36482. env e0.0 = LdFunctionEnv
  36483. real$' %0.1 = LdConst [1] 2
  36484. void Return %0.1
  36485. Prom 1:
  36486. BB0
  36487. env e0.0 = LdFunctionEnv
  36488. cls %0.1 = LdFun nextRandom, e0.0
  36489. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36490. val^ %0.3 = Call %0.1() %0.2, e0.0
  36491. val %0.4 = Force %0.3, e0.0
  36492. void Return %0.4
  36493. ├────── Move environment creation as far as possible: == 377
  36494. test[0x7f9244567f20]
  36495. BB0
  36496. real$' %0.0 = LdConst [1] 74755
  36497. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36498. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36499. void StVar nextRandom, %0.2, e0.1
  36500. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36501. cls %0.5 = SetShared %0.4
  36502. void StVar buildTreeDepth, %0.5, e0.1
  36503. real$' %0.7 = LdConst [1] 2
  36504. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36505. prom %0.9 = MkArg missing, Prom(1), e0.1
  36506. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36507. BB2
  36508. cls' %2.0 = LdConst function (depth, random) { if (d...
  36509. t %2.1 = Identical %0.5, %2.0
  36510. void Assume %2.1, %0.10
  36511. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36512. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36513. val %2.5 = Force %2.4, e0.1
  36514. void Return %2.5
  36515. BB1
  36516. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36517. void Deopt %1.0
  36518. Prom 0:
  36519. BB0
  36520. env e0.0 = LdFunctionEnv
  36521. real$' %0.1 = LdConst [1] 2
  36522. void Return %0.1
  36523. Prom 1:
  36524. BB0
  36525. env e0.0 = LdFunctionEnv
  36526. cls %0.1 = LdFun nextRandom, e0.0
  36527. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36528. val^ %0.3 = Call %0.1() %0.2, e0.0
  36529. val %0.4 = Force %0.3, e0.0
  36530. void Return %0.4
  36531. ├────── Cleanup redundant operations: == 384
  36532. test[0x7f9244567f20]
  36533. BB0
  36534. real$' %0.0 = LdConst [1] 74755
  36535. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36536. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36537. void StVar nextRandom, %0.2, e0.1
  36538. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36539. cls %0.5 = SetShared %0.4
  36540. void StVar buildTreeDepth, %0.5, e0.1
  36541. real$' %0.7 = LdConst [1] 2
  36542. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36543. prom %0.9 = MkArg missing, Prom(1), e0.1
  36544. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36545. BB2
  36546. cls' %2.0 = LdConst function (depth, random) { if (d...
  36547. t %2.1 = Identical %0.5, %2.0
  36548. void Assume %2.1, %0.10
  36549. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36550. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36551. val %2.5 = Force %2.4, e0.1
  36552. void Return %2.5
  36553. BB1
  36554. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36555. void Deopt %1.0
  36556. Prom 0:
  36557. BB0
  36558. env e0.0 = LdFunctionEnv
  36559. real$' %0.1 = LdConst [1] 2
  36560. void Return %0.1
  36561. Prom 1:
  36562. BB0
  36563. env e0.0 = LdFunctionEnv
  36564. cls %0.1 = LdFun nextRandom, e0.0
  36565. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36566. val^ %0.3 = Call %0.1() %0.2, e0.0
  36567. val %0.4 = Force %0.3, e0.0
  36568. void Return %0.4
  36569. ├────── Inline closures: == 391
  36570. test[0x7f9244567f20]
  36571. BB0
  36572. real$' %0.0 = LdConst [1] 74755
  36573. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36574. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36575. void StVar nextRandom, %0.2, e0.1
  36576. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36577. cls %0.5 = SetShared %0.4
  36578. void StVar buildTreeDepth, %0.5, e0.1
  36579. real$' %0.7 = LdConst [1] 2
  36580. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36581. prom %0.9 = MkArg missing, Prom(1), e0.1
  36582. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36583. BB2
  36584. cls' %2.0 = LdConst function (depth, random) { if (d...
  36585. t %2.1 = Identical %0.5, %2.0
  36586. void Assume %2.1, %0.10
  36587. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36588. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36589. val %2.5 = Force %2.4, e0.1
  36590. void Return %2.5
  36591. BB1
  36592. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36593. void Deopt %1.0
  36594. Prom 0:
  36595. BB0
  36596. env e0.0 = LdFunctionEnv
  36597. real$' %0.1 = LdConst [1] 2
  36598. void Return %0.1
  36599. Prom 1:
  36600. BB0
  36601. env e0.0 = LdFunctionEnv
  36602. cls %0.1 = LdFun nextRandom, e0.0
  36603. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36604. val^ %0.3 = Call %0.1() %0.2, e0.0
  36605. val %0.4 = Force %0.3, e0.0
  36606. void Return %0.4
  36607. ├────── Inline Promises: == 398
  36608. test[0x7f9244567f20]
  36609. BB0
  36610. real$' %0.0 = LdConst [1] 74755
  36611. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36612. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36613. void StVar nextRandom, %0.2, e0.1
  36614. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36615. cls %0.5 = SetShared %0.4
  36616. void StVar buildTreeDepth, %0.5, e0.1
  36617. real$' %0.7 = LdConst [1] 2
  36618. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36619. prom %0.9 = MkArg missing, Prom(1), e0.1
  36620. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36621. BB2
  36622. cls' %2.0 = LdConst function (depth, random) { if (d...
  36623. t %2.1 = Identical %0.5, %2.0
  36624. void Assume %2.1, %0.10
  36625. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36626. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36627. val %2.5 = Force %2.4, e0.1
  36628. void Return %2.5
  36629. BB1
  36630. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36631. void Deopt %1.0
  36632. Prom 0:
  36633. BB0
  36634. env e0.0 = LdFunctionEnv
  36635. real$' %0.1 = LdConst [1] 2
  36636. void Return %0.1
  36637. Prom 1:
  36638. BB0
  36639. env e0.0 = LdFunctionEnv
  36640. cls %0.1 = LdFun nextRandom, e0.0
  36641. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36642. val^ %0.3 = Call %0.1() %0.2, e0.0
  36643. val %0.4 = Force %0.3, e0.0
  36644. void Return %0.4
  36645. ├────── Scope resolution: == 405
  36646. test[0x7f9244567f20]
  36647. BB0
  36648. real$' %0.0 = LdConst [1] 74755
  36649. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36650. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36651. void StVar nextRandom, %0.2, e0.1
  36652. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36653. cls %0.5 = SetShared %0.4
  36654. void StVar buildTreeDepth, %0.5, e0.1
  36655. real$' %0.7 = LdConst [1] 2
  36656. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36657. prom %0.9 = MkArg missing, Prom(1), e0.1
  36658. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36659. BB2
  36660. cls' %2.0 = LdConst function (depth, random) { if (d...
  36661. t %2.1 = Identical %0.5, %2.0
  36662. void Assume %2.1, %0.10
  36663. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36664. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36665. val %2.5 = Force %2.4, e0.1
  36666. void Return %2.5
  36667. BB1
  36668. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36669. void Deopt %1.0
  36670. Prom 0:
  36671. BB0
  36672. env e0.0 = LdFunctionEnv
  36673. real$' %0.1 = LdConst [1] 2
  36674. void Return %0.1
  36675. Prom 1:
  36676. BB0
  36677. env e0.0 = LdFunctionEnv
  36678. cls %0.1 = LdFun nextRandom, e0.0
  36679. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36680. val^ %0.3 = Call %0.1() %0.2, e0.0
  36681. val %0.4 = Force %0.3, e0.0
  36682. void Return %0.4
  36683. ├────── Constant folding: == 412
  36684. test[0x7f9244567f20]
  36685. BB0
  36686. real$' %0.0 = LdConst [1] 74755
  36687. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36688. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36689. void StVar nextRandom, %0.2, e0.1
  36690. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36691. cls %0.5 = SetShared %0.4
  36692. void StVar buildTreeDepth, %0.5, e0.1
  36693. real$' %0.7 = LdConst [1] 2
  36694. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36695. prom %0.9 = MkArg missing, Prom(1), e0.1
  36696. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36697. BB2
  36698. cls' %2.0 = LdConst function (depth, random) { if (d...
  36699. t %2.1 = Identical %0.5, %2.0
  36700. void Assume %2.1, %0.10
  36701. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36702. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36703. val %2.5 = Force %2.4, e0.1
  36704. void Return %2.5
  36705. BB1
  36706. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36707. void Deopt %1.0
  36708. Prom 0:
  36709. BB0
  36710. env e0.0 = LdFunctionEnv
  36711. real$' %0.1 = LdConst [1] 2
  36712. void Return %0.1
  36713. Prom 1:
  36714. BB0
  36715. env e0.0 = LdFunctionEnv
  36716. cls %0.1 = LdFun nextRandom, e0.0
  36717. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36718. val^ %0.3 = Call %0.1() %0.2, e0.0
  36719. val %0.4 = Force %0.3, e0.0
  36720. void Return %0.4
  36721. ├────── Cleanup redundant operations: == 419
  36722. test[0x7f9244567f20]
  36723. BB0
  36724. real$' %0.0 = LdConst [1] 74755
  36725. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36726. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36727. void StVar nextRandom, %0.2, e0.1
  36728. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36729. cls %0.5 = SetShared %0.4
  36730. void StVar buildTreeDepth, %0.5, e0.1
  36731. real$' %0.7 = LdConst [1] 2
  36732. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36733. prom %0.9 = MkArg missing, Prom(1), e0.1
  36734. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36735. BB2
  36736. cls' %2.0 = LdConst function (depth, random) { if (d...
  36737. t %2.1 = Identical %0.5, %2.0
  36738. void Assume %2.1, %0.10
  36739. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36740. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36741. val %2.5 = Force %2.4, e0.1
  36742. void Return %2.5
  36743. BB1
  36744. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36745. void Deopt %1.0
  36746. Prom 0:
  36747. BB0
  36748. env e0.0 = LdFunctionEnv
  36749. real$' %0.1 = LdConst [1] 2
  36750. void Return %0.1
  36751. Prom 1:
  36752. BB0
  36753. env e0.0 = LdFunctionEnv
  36754. cls %0.1 = LdFun nextRandom, e0.0
  36755. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36756. val^ %0.3 = Call %0.1() %0.2, e0.0
  36757. val %0.4 = Force %0.3, e0.0
  36758. void Return %0.4
  36759. ├────── Delay instructions: == 426
  36760. test[0x7f9244567f20]
  36761. BB0
  36762. real$' %0.0 = LdConst [1] 74755
  36763. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36764. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36765. void StVar nextRandom, %0.2, e0.1
  36766. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36767. cls %0.5 = SetShared %0.4
  36768. void StVar buildTreeDepth, %0.5, e0.1
  36769. real$' %0.7 = LdConst [1] 2
  36770. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36771. prom %0.9 = MkArg missing, Prom(1), e0.1
  36772. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36773. BB2
  36774. cls' %2.0 = LdConst function (depth, random) { if (d...
  36775. t %2.1 = Identical %0.5, %2.0
  36776. void Assume %2.1, %0.10
  36777. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36778. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36779. val %2.5 = Force %2.4, e0.1
  36780. void Return %2.5
  36781. BB1
  36782. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36783. void Deopt %1.0
  36784. Prom 0:
  36785. BB0
  36786. env e0.0 = LdFunctionEnv
  36787. real$' %0.1 = LdConst [1] 2
  36788. void Return %0.1
  36789. Prom 1:
  36790. BB0
  36791. env e0.0 = LdFunctionEnv
  36792. cls %0.1 = LdFun nextRandom, e0.0
  36793. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36794. val^ %0.3 = Call %0.1() %0.2, e0.0
  36795. val %0.4 = Force %0.3, e0.0
  36796. void Return %0.4
  36797. ├────── Elide environments not needed: == 433
  36798. test[0x7f9244567f20]
  36799. BB0
  36800. real$' %0.0 = LdConst [1] 74755
  36801. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36802. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36803. void StVar nextRandom, %0.2, e0.1
  36804. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36805. cls %0.5 = SetShared %0.4
  36806. void StVar buildTreeDepth, %0.5, e0.1
  36807. real$' %0.7 = LdConst [1] 2
  36808. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36809. prom %0.9 = MkArg missing, Prom(1), e0.1
  36810. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36811. BB2
  36812. cls' %2.0 = LdConst function (depth, random) { if (d...
  36813. t %2.1 = Identical %0.5, %2.0
  36814. void Assume %2.1, %0.10
  36815. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36816. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36817. val %2.5 = Force %2.4, e0.1
  36818. void Return %2.5
  36819. BB1
  36820. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36821. void Deopt %1.0
  36822. Prom 0:
  36823. BB0
  36824. env e0.0 = LdFunctionEnv
  36825. real$' %0.1 = LdConst [1] 2
  36826. void Return %0.1
  36827. Prom 1:
  36828. BB0
  36829. env e0.0 = LdFunctionEnv
  36830. cls %0.1 = LdFun nextRandom, e0.0
  36831. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36832. val^ %0.3 = Call %0.1() %0.2, e0.0
  36833. val %0.4 = Force %0.3, e0.0
  36834. void Return %0.4
  36835. ├────── Move environment creation as far as possible: == 440
  36836. test[0x7f9244567f20]
  36837. BB0
  36838. real$' %0.0 = LdConst [1] 74755
  36839. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36840. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36841. void StVar nextRandom, %0.2, e0.1
  36842. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36843. cls %0.5 = SetShared %0.4
  36844. void StVar buildTreeDepth, %0.5, e0.1
  36845. real$' %0.7 = LdConst [1] 2
  36846. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36847. prom %0.9 = MkArg missing, Prom(1), e0.1
  36848. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36849. BB2
  36850. cls' %2.0 = LdConst function (depth, random) { if (d...
  36851. t %2.1 = Identical %0.5, %2.0
  36852. void Assume %2.1, %0.10
  36853. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36854. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36855. val %2.5 = Force %2.4, e0.1
  36856. void Return %2.5
  36857. BB1
  36858. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36859. void Deopt %1.0
  36860. Prom 0:
  36861. BB0
  36862. env e0.0 = LdFunctionEnv
  36863. real$' %0.1 = LdConst [1] 2
  36864. void Return %0.1
  36865. Prom 1:
  36866. BB0
  36867. env e0.0 = LdFunctionEnv
  36868. cls %0.1 = LdFun nextRandom, e0.0
  36869. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36870. val^ %0.3 = Call %0.1() %0.2, e0.0
  36871. val %0.4 = Force %0.3, e0.0
  36872. void Return %0.4
  36873. ├────── Cleanup redundant operations: == 447
  36874. test[0x7f9244567f20]
  36875. BB0
  36876. real$' %0.0 = LdConst [1] 74755
  36877. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36878. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36879. void StVar nextRandom, %0.2, e0.1
  36880. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36881. cls %0.5 = SetShared %0.4
  36882. void StVar buildTreeDepth, %0.5, e0.1
  36883. real$' %0.7 = LdConst [1] 2
  36884. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36885. prom %0.9 = MkArg missing, Prom(1), e0.1
  36886. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36887. BB2
  36888. cls' %2.0 = LdConst function (depth, random) { if (d...
  36889. t %2.1 = Identical %0.5, %2.0
  36890. void Assume %2.1, %0.10
  36891. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36892. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36893. val %2.5 = Force %2.4, e0.1
  36894. void Return %2.5
  36895. BB1
  36896. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36897. void Deopt %1.0
  36898. Prom 0:
  36899. BB0
  36900. env e0.0 = LdFunctionEnv
  36901. real$' %0.1 = LdConst [1] 2
  36902. void Return %0.1
  36903. Prom 1:
  36904. BB0
  36905. env e0.0 = LdFunctionEnv
  36906. cls %0.1 = LdFun nextRandom, e0.0
  36907. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36908. val^ %0.3 = Call %0.1() %0.2, e0.0
  36909. val %0.4 = Force %0.3, e0.0
  36910. void Return %0.4
  36911. ├────── Inline closures: == 454
  36912. test[0x7f9244567f20]
  36913. BB0
  36914. real$' %0.0 = LdConst [1] 74755
  36915. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36916. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36917. void StVar nextRandom, %0.2, e0.1
  36918. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36919. cls %0.5 = SetShared %0.4
  36920. void StVar buildTreeDepth, %0.5, e0.1
  36921. real$' %0.7 = LdConst [1] 2
  36922. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36923. prom %0.9 = MkArg missing, Prom(1), e0.1
  36924. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36925. BB2
  36926. cls' %2.0 = LdConst function (depth, random) { if (d...
  36927. t %2.1 = Identical %0.5, %2.0
  36928. void Assume %2.1, %0.10
  36929. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36930. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36931. val %2.5 = Force %2.4, e0.1
  36932. void Return %2.5
  36933. BB1
  36934. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36935. void Deopt %1.0
  36936. Prom 0:
  36937. BB0
  36938. env e0.0 = LdFunctionEnv
  36939. real$' %0.1 = LdConst [1] 2
  36940. void Return %0.1
  36941. Prom 1:
  36942. BB0
  36943. env e0.0 = LdFunctionEnv
  36944. cls %0.1 = LdFun nextRandom, e0.0
  36945. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36946. val^ %0.3 = Call %0.1() %0.2, e0.0
  36947. val %0.4 = Force %0.3, e0.0
  36948. void Return %0.4
  36949. ├────── Inline Promises: == 461
  36950. test[0x7f9244567f20]
  36951. BB0
  36952. real$' %0.0 = LdConst [1] 74755
  36953. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36954. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36955. void StVar nextRandom, %0.2, e0.1
  36956. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36957. cls %0.5 = SetShared %0.4
  36958. void StVar buildTreeDepth, %0.5, e0.1
  36959. real$' %0.7 = LdConst [1] 2
  36960. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36961. prom %0.9 = MkArg missing, Prom(1), e0.1
  36962. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  36963. BB2
  36964. cls' %2.0 = LdConst function (depth, random) { if (d...
  36965. t %2.1 = Identical %0.5, %2.0
  36966. void Assume %2.1, %0.10
  36967. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  36968. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  36969. val %2.5 = Force %2.4, e0.1
  36970. void Return %2.5
  36971. BB1
  36972. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  36973. void Deopt %1.0
  36974. Prom 0:
  36975. BB0
  36976. env e0.0 = LdFunctionEnv
  36977. real$' %0.1 = LdConst [1] 2
  36978. void Return %0.1
  36979. Prom 1:
  36980. BB0
  36981. env e0.0 = LdFunctionEnv
  36982. cls %0.1 = LdFun nextRandom, e0.0
  36983. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  36984. val^ %0.3 = Call %0.1() %0.2, e0.0
  36985. val %0.4 = Force %0.3, e0.0
  36986. void Return %0.4
  36987. ├────── Scope resolution: == 468
  36988. test[0x7f9244567f20]
  36989. BB0
  36990. real$' %0.0 = LdConst [1] 74755
  36991. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  36992. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  36993. void StVar nextRandom, %0.2, e0.1
  36994. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  36995. cls %0.5 = SetShared %0.4
  36996. void StVar buildTreeDepth, %0.5, e0.1
  36997. real$' %0.7 = LdConst [1] 2
  36998. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  36999. prom %0.9 = MkArg missing, Prom(1), e0.1
  37000. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37001. BB2
  37002. cls' %2.0 = LdConst function (depth, random) { if (d...
  37003. t %2.1 = Identical %0.5, %2.0
  37004. void Assume %2.1, %0.10
  37005. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37006. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37007. val %2.5 = Force %2.4, e0.1
  37008. void Return %2.5
  37009. BB1
  37010. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37011. void Deopt %1.0
  37012. Prom 0:
  37013. BB0
  37014. env e0.0 = LdFunctionEnv
  37015. real$' %0.1 = LdConst [1] 2
  37016. void Return %0.1
  37017. Prom 1:
  37018. BB0
  37019. env e0.0 = LdFunctionEnv
  37020. cls %0.1 = LdFun nextRandom, e0.0
  37021. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37022. val^ %0.3 = Call %0.1() %0.2, e0.0
  37023. val %0.4 = Force %0.3, e0.0
  37024. void Return %0.4
  37025. ├────── Constant folding: == 475
  37026. test[0x7f9244567f20]
  37027. BB0
  37028. real$' %0.0 = LdConst [1] 74755
  37029. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37030. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37031. void StVar nextRandom, %0.2, e0.1
  37032. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37033. cls %0.5 = SetShared %0.4
  37034. void StVar buildTreeDepth, %0.5, e0.1
  37035. real$' %0.7 = LdConst [1] 2
  37036. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37037. prom %0.9 = MkArg missing, Prom(1), e0.1
  37038. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37039. BB2
  37040. cls' %2.0 = LdConst function (depth, random) { if (d...
  37041. t %2.1 = Identical %0.5, %2.0
  37042. void Assume %2.1, %0.10
  37043. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37044. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37045. val %2.5 = Force %2.4, e0.1
  37046. void Return %2.5
  37047. BB1
  37048. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37049. void Deopt %1.0
  37050. Prom 0:
  37051. BB0
  37052. env e0.0 = LdFunctionEnv
  37053. real$' %0.1 = LdConst [1] 2
  37054. void Return %0.1
  37055. Prom 1:
  37056. BB0
  37057. env e0.0 = LdFunctionEnv
  37058. cls %0.1 = LdFun nextRandom, e0.0
  37059. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37060. val^ %0.3 = Call %0.1() %0.2, e0.0
  37061. val %0.4 = Force %0.3, e0.0
  37062. void Return %0.4
  37063. ├────── Cleanup redundant operations: == 482
  37064. test[0x7f9244567f20]
  37065. BB0
  37066. real$' %0.0 = LdConst [1] 74755
  37067. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37068. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37069. void StVar nextRandom, %0.2, e0.1
  37070. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37071. cls %0.5 = SetShared %0.4
  37072. void StVar buildTreeDepth, %0.5, e0.1
  37073. real$' %0.7 = LdConst [1] 2
  37074. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37075. prom %0.9 = MkArg missing, Prom(1), e0.1
  37076. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37077. BB2
  37078. cls' %2.0 = LdConst function (depth, random) { if (d...
  37079. t %2.1 = Identical %0.5, %2.0
  37080. void Assume %2.1, %0.10
  37081. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37082. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37083. val %2.5 = Force %2.4, e0.1
  37084. void Return %2.5
  37085. BB1
  37086. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37087. void Deopt %1.0
  37088. Prom 0:
  37089. BB0
  37090. env e0.0 = LdFunctionEnv
  37091. real$' %0.1 = LdConst [1] 2
  37092. void Return %0.1
  37093. Prom 1:
  37094. BB0
  37095. env e0.0 = LdFunctionEnv
  37096. cls %0.1 = LdFun nextRandom, e0.0
  37097. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37098. val^ %0.3 = Call %0.1() %0.2, e0.0
  37099. val %0.4 = Force %0.3, e0.0
  37100. void Return %0.4
  37101. ├────── Delay instructions: == 489
  37102. test[0x7f9244567f20]
  37103. BB0
  37104. real$' %0.0 = LdConst [1] 74755
  37105. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37106. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37107. void StVar nextRandom, %0.2, e0.1
  37108. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37109. cls %0.5 = SetShared %0.4
  37110. void StVar buildTreeDepth, %0.5, e0.1
  37111. real$' %0.7 = LdConst [1] 2
  37112. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37113. prom %0.9 = MkArg missing, Prom(1), e0.1
  37114. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37115. BB2
  37116. cls' %2.0 = LdConst function (depth, random) { if (d...
  37117. t %2.1 = Identical %0.5, %2.0
  37118. void Assume %2.1, %0.10
  37119. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37120. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37121. val %2.5 = Force %2.4, e0.1
  37122. void Return %2.5
  37123. BB1
  37124. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37125. void Deopt %1.0
  37126. Prom 0:
  37127. BB0
  37128. env e0.0 = LdFunctionEnv
  37129. real$' %0.1 = LdConst [1] 2
  37130. void Return %0.1
  37131. Prom 1:
  37132. BB0
  37133. env e0.0 = LdFunctionEnv
  37134. cls %0.1 = LdFun nextRandom, e0.0
  37135. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37136. val^ %0.3 = Call %0.1() %0.2, e0.0
  37137. val %0.4 = Force %0.3, e0.0
  37138. void Return %0.4
  37139. ├────── Elide environments not needed: == 496
  37140. test[0x7f9244567f20]
  37141. BB0
  37142. real$' %0.0 = LdConst [1] 74755
  37143. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37144. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37145. void StVar nextRandom, %0.2, e0.1
  37146. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37147. cls %0.5 = SetShared %0.4
  37148. void StVar buildTreeDepth, %0.5, e0.1
  37149. real$' %0.7 = LdConst [1] 2
  37150. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37151. prom %0.9 = MkArg missing, Prom(1), e0.1
  37152. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37153. BB2
  37154. cls' %2.0 = LdConst function (depth, random) { if (d...
  37155. t %2.1 = Identical %0.5, %2.0
  37156. void Assume %2.1, %0.10
  37157. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37158. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37159. val %2.5 = Force %2.4, e0.1
  37160. void Return %2.5
  37161. BB1
  37162. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37163. void Deopt %1.0
  37164. Prom 0:
  37165. BB0
  37166. env e0.0 = LdFunctionEnv
  37167. real$' %0.1 = LdConst [1] 2
  37168. void Return %0.1
  37169. Prom 1:
  37170. BB0
  37171. env e0.0 = LdFunctionEnv
  37172. cls %0.1 = LdFun nextRandom, e0.0
  37173. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37174. val^ %0.3 = Call %0.1() %0.2, e0.0
  37175. val %0.4 = Force %0.3, e0.0
  37176. void Return %0.4
  37177. ├────── Move environment creation as far as possible: == 503
  37178. test[0x7f9244567f20]
  37179. BB0
  37180. real$' %0.0 = LdConst [1] 74755
  37181. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37182. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37183. void StVar nextRandom, %0.2, e0.1
  37184. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37185. cls %0.5 = SetShared %0.4
  37186. void StVar buildTreeDepth, %0.5, e0.1
  37187. real$' %0.7 = LdConst [1] 2
  37188. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37189. prom %0.9 = MkArg missing, Prom(1), e0.1
  37190. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37191. BB2
  37192. cls' %2.0 = LdConst function (depth, random) { if (d...
  37193. t %2.1 = Identical %0.5, %2.0
  37194. void Assume %2.1, %0.10
  37195. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37196. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37197. val %2.5 = Force %2.4, e0.1
  37198. void Return %2.5
  37199. BB1
  37200. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37201. void Deopt %1.0
  37202. Prom 0:
  37203. BB0
  37204. env e0.0 = LdFunctionEnv
  37205. real$' %0.1 = LdConst [1] 2
  37206. void Return %0.1
  37207. Prom 1:
  37208. BB0
  37209. env e0.0 = LdFunctionEnv
  37210. cls %0.1 = LdFun nextRandom, e0.0
  37211. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37212. val^ %0.3 = Call %0.1() %0.2, e0.0
  37213. val %0.4 = Force %0.3, e0.0
  37214. void Return %0.4
  37215. ├────── Cleanup redundant operations: == 510
  37216. test[0x7f9244567f20]
  37217. BB0
  37218. real$' %0.0 = LdConst [1] 74755
  37219. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37220. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37221. void StVar nextRandom, %0.2, e0.1
  37222. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37223. cls %0.5 = SetShared %0.4
  37224. void StVar buildTreeDepth, %0.5, e0.1
  37225. real$' %0.7 = LdConst [1] 2
  37226. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37227. prom %0.9 = MkArg missing, Prom(1), e0.1
  37228. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37229. BB2
  37230. cls' %2.0 = LdConst function (depth, random) { if (d...
  37231. t %2.1 = Identical %0.5, %2.0
  37232. void Assume %2.1, %0.10
  37233. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37234. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37235. val %2.5 = Force %2.4, e0.1
  37236. void Return %2.5
  37237. BB1
  37238. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37239. void Deopt %1.0
  37240. Prom 0:
  37241. BB0
  37242. env e0.0 = LdFunctionEnv
  37243. real$' %0.1 = LdConst [1] 2
  37244. void Return %0.1
  37245. Prom 1:
  37246. BB0
  37247. env e0.0 = LdFunctionEnv
  37248. cls %0.1 = LdFun nextRandom, e0.0
  37249. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37250. val^ %0.3 = Call %0.1() %0.2, e0.0
  37251. val %0.4 = Force %0.3, e0.0
  37252. void Return %0.4
  37253. ├────── Inline closures: == 517
  37254. test[0x7f9244567f20]
  37255. BB0
  37256. real$' %0.0 = LdConst [1] 74755
  37257. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37258. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37259. void StVar nextRandom, %0.2, e0.1
  37260. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37261. cls %0.5 = SetShared %0.4
  37262. void StVar buildTreeDepth, %0.5, e0.1
  37263. real$' %0.7 = LdConst [1] 2
  37264. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37265. prom %0.9 = MkArg missing, Prom(1), e0.1
  37266. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37267. BB2
  37268. cls' %2.0 = LdConst function (depth, random) { if (d...
  37269. t %2.1 = Identical %0.5, %2.0
  37270. void Assume %2.1, %0.10
  37271. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37272. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37273. val %2.5 = Force %2.4, e0.1
  37274. void Return %2.5
  37275. BB1
  37276. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37277. void Deopt %1.0
  37278. Prom 0:
  37279. BB0
  37280. env e0.0 = LdFunctionEnv
  37281. real$' %0.1 = LdConst [1] 2
  37282. void Return %0.1
  37283. Prom 1:
  37284. BB0
  37285. env e0.0 = LdFunctionEnv
  37286. cls %0.1 = LdFun nextRandom, e0.0
  37287. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37288. val^ %0.3 = Call %0.1() %0.2, e0.0
  37289. val %0.4 = Force %0.3, e0.0
  37290. void Return %0.4
  37291. ├────── Speculate on values to elide environments: == 524
  37292. test[0x7f9244567f20]
  37293. BB0
  37294. real$' %0.0 = LdConst [1] 74755
  37295. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37296. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37297. void StVar nextRandom, %0.2, e0.1
  37298. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37299. cls %0.5 = SetShared %0.4
  37300. void StVar buildTreeDepth, %0.5, e0.1
  37301. real$' %0.7 = LdConst [1] 2
  37302. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37303. prom %0.9 = MkArg missing, Prom(1), e0.1
  37304. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37305. BB2
  37306. cls' %2.0 = LdConst function (depth, random) { if (d...
  37307. t %2.1 = Identical %0.5, %2.0
  37308. void Assume %2.1, %0.10
  37309. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37310. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37311. val %2.5 = Force %2.4, e0.1
  37312. void Return %2.5
  37313. BB1
  37314. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37315. void Deopt %1.0
  37316. Prom 0:
  37317. BB0
  37318. env e0.0 = LdFunctionEnv
  37319. real$' %0.1 = LdConst [1] 2
  37320. void Return %0.1
  37321. Prom 1:
  37322. BB0
  37323. env e0.0 = LdFunctionEnv
  37324. cls %0.1 = LdFun nextRandom, e0.0
  37325. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37326. val^ %0.3 = Call %0.1() %0.2, e0.0
  37327. val %0.4 = Force %0.3, e0.0
  37328. void Return %0.4
  37329. ├────── Cleanup unused checkpoints: == 531
  37330. test[0x7f9244567f20]
  37331. BB0
  37332. real$' %0.0 = LdConst [1] 74755
  37333. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37334. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37335. void StVar nextRandom, %0.2, e0.1
  37336. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37337. cls %0.5 = SetShared %0.4
  37338. void StVar buildTreeDepth, %0.5, e0.1
  37339. real$' %0.7 = LdConst [1] 2
  37340. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37341. prom %0.9 = MkArg missing, Prom(1), e0.1
  37342. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37343. BB2
  37344. cls' %2.0 = LdConst function (depth, random) { if (d...
  37345. t %2.1 = Identical %0.5, %2.0
  37346. void Assume %2.1, %0.10
  37347. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37348. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) %2.3, e0.1
  37349. val %2.5 = Force %2.4, e0.1
  37350. void Return %2.5
  37351. BB1
  37352. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37353. void Deopt %1.0
  37354. Prom 0:
  37355. BB0
  37356. env e0.0 = LdFunctionEnv
  37357. real$' %0.1 = LdConst [1] 2
  37358. void Return %0.1
  37359. Prom 1:
  37360. BB0
  37361. env e0.0 = LdFunctionEnv
  37362. cls %0.1 = LdFun nextRandom, e0.0
  37363. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37364. val^ %0.3 = Call %0.1() %0.2, e0.0
  37365. val %0.4 = Force %0.3, e0.0
  37366. void Return %0.4
  37367. ├────── Cleanup framestates unused by checkpoints: == 538
  37368. test[0x7f9244567f20]
  37369. BB0
  37370. real$' %0.0 = LdConst [1] 74755
  37371. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37372. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37373. void StVar nextRandom, %0.2, e0.1
  37374. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37375. cls %0.5 = SetShared %0.4
  37376. void StVar buildTreeDepth, %0.5, e0.1
  37377. real$' %0.7 = LdConst [1] 2
  37378. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37379. prom %0.9 = MkArg missing, Prom(1), e0.1
  37380. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37381. BB2
  37382. cls' %2.0 = LdConst function (depth, random) { if (d...
  37383. t %2.1 = Identical %0.5, %2.0
  37384. void Assume %2.1, %0.10
  37385. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37386. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37387. val %2.5 = Force %2.4, e0.1
  37388. void Return %2.5
  37389. BB1
  37390. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37391. void Deopt %1.0
  37392. Prom 0:
  37393. BB0
  37394. env e0.0 = LdFunctionEnv
  37395. real$' %0.1 = LdConst [1] 2
  37396. void Return %0.1
  37397. Prom 1:
  37398. BB0
  37399. env e0.0 = LdFunctionEnv
  37400. cls %0.1 = LdFun nextRandom, e0.0
  37401. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37402. val^ %0.3 = Call %0.1() e0.0
  37403. val %0.4 = Force %0.3, e0.0
  37404. void Return %0.4
  37405. ├────── Inline Promises: == 545
  37406. test[0x7f9244567f20]
  37407. BB0
  37408. real$' %0.0 = LdConst [1] 74755
  37409. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37410. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37411. void StVar nextRandom, %0.2, e0.1
  37412. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37413. cls %0.5 = SetShared %0.4
  37414. void StVar buildTreeDepth, %0.5, e0.1
  37415. real$' %0.7 = LdConst [1] 2
  37416. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37417. prom %0.9 = MkArg missing, Prom(1), e0.1
  37418. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37419. BB2
  37420. cls' %2.0 = LdConst function (depth, random) { if (d...
  37421. t %2.1 = Identical %0.5, %2.0
  37422. void Assume %2.1, %0.10
  37423. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37424. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37425. val %2.5 = Force %2.4, e0.1
  37426. void Return %2.5
  37427. BB1
  37428. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37429. void Deopt %1.0
  37430. Prom 0:
  37431. BB0
  37432. env e0.0 = LdFunctionEnv
  37433. real$' %0.1 = LdConst [1] 2
  37434. void Return %0.1
  37435. Prom 1:
  37436. BB0
  37437. env e0.0 = LdFunctionEnv
  37438. cls %0.1 = LdFun nextRandom, e0.0
  37439. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37440. val^ %0.3 = Call %0.1() e0.0
  37441. val %0.4 = Force %0.3, e0.0
  37442. void Return %0.4
  37443. ├────── Scope resolution: == 552
  37444. test[0x7f9244567f20]
  37445. BB0
  37446. real$' %0.0 = LdConst [1] 74755
  37447. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37448. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37449. void StVar nextRandom, %0.2, e0.1
  37450. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37451. cls %0.5 = SetShared %0.4
  37452. void StVar buildTreeDepth, %0.5, e0.1
  37453. real$' %0.7 = LdConst [1] 2
  37454. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37455. prom %0.9 = MkArg missing, Prom(1), e0.1
  37456. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37457. BB2
  37458. cls' %2.0 = LdConst function (depth, random) { if (d...
  37459. t %2.1 = Identical %0.5, %2.0
  37460. void Assume %2.1, %0.10
  37461. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37462. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37463. val %2.5 = Force %2.4, e0.1
  37464. void Return %2.5
  37465. BB1
  37466. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37467. void Deopt %1.0
  37468. Prom 0:
  37469. BB0
  37470. env e0.0 = LdFunctionEnv
  37471. real$' %0.1 = LdConst [1] 2
  37472. void Return %0.1
  37473. Prom 1:
  37474. BB0
  37475. env e0.0 = LdFunctionEnv
  37476. cls %0.1 = LdFun nextRandom, e0.0
  37477. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37478. val^ %0.3 = Call %0.1() e0.0
  37479. val %0.4 = Force %0.3, e0.0
  37480. void Return %0.4
  37481. ├────── Constant folding: == 559
  37482. test[0x7f9244567f20]
  37483. BB0
  37484. real$' %0.0 = LdConst [1] 74755
  37485. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37486. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37487. void StVar nextRandom, %0.2, e0.1
  37488. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37489. cls %0.5 = SetShared %0.4
  37490. void StVar buildTreeDepth, %0.5, e0.1
  37491. real$' %0.7 = LdConst [1] 2
  37492. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37493. prom %0.9 = MkArg missing, Prom(1), e0.1
  37494. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37495. BB2
  37496. cls' %2.0 = LdConst function (depth, random) { if (d...
  37497. t %2.1 = Identical %0.5, %2.0
  37498. void Assume %2.1, %0.10
  37499. fs %2.3 = FrameState 0x7f924457e060+155: [], env=e0.1
  37500. val^ %2.4 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37501. val %2.5 = Force %2.4, e0.1
  37502. void Return %2.5
  37503. BB1
  37504. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37505. void Deopt %1.0
  37506. Prom 0:
  37507. BB0
  37508. env e0.0 = LdFunctionEnv
  37509. real$' %0.1 = LdConst [1] 2
  37510. void Return %0.1
  37511. Prom 1:
  37512. BB0
  37513. env e0.0 = LdFunctionEnv
  37514. cls %0.1 = LdFun nextRandom, e0.0
  37515. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37516. val^ %0.3 = Call %0.1() e0.0
  37517. val %0.4 = Force %0.3, e0.0
  37518. void Return %0.4
  37519. ├────── Cleanup redundant operations: == 566
  37520. test[0x7f9244567f20]
  37521. BB0
  37522. real$' %0.0 = LdConst [1] 74755
  37523. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37524. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37525. void StVar nextRandom, %0.2, e0.1
  37526. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37527. cls %0.5 = SetShared %0.4
  37528. void StVar buildTreeDepth, %0.5, e0.1
  37529. real$' %0.7 = LdConst [1] 2
  37530. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37531. prom %0.9 = MkArg missing, Prom(1), e0.1
  37532. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37533. BB2
  37534. cls' %2.0 = LdConst function (depth, random) { if (d...
  37535. t %2.1 = Identical %0.5, %2.0
  37536. void Assume %2.1, %0.10
  37537. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37538. val %2.4 = Force %2.3, e0.1
  37539. void Return %2.4
  37540. BB1
  37541. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37542. void Deopt %1.0
  37543. Prom 0:
  37544. BB0
  37545. env e0.0 = LdFunctionEnv
  37546. real$' %0.1 = LdConst [1] 2
  37547. void Return %0.1
  37548. Prom 1:
  37549. BB0
  37550. env e0.0 = LdFunctionEnv
  37551. cls %0.1 = LdFun nextRandom, e0.0
  37552. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37553. val^ %0.3 = Call %0.1() e0.0
  37554. val %0.4 = Force %0.3, e0.0
  37555. void Return %0.4
  37556. ├────── Delay instructions: == 573
  37557. test[0x7f9244567f20]
  37558. BB0
  37559. real$' %0.0 = LdConst [1] 74755
  37560. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37561. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37562. void StVar nextRandom, %0.2, e0.1
  37563. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37564. cls %0.5 = SetShared %0.4
  37565. void StVar buildTreeDepth, %0.5, e0.1
  37566. real$' %0.7 = LdConst [1] 2
  37567. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37568. prom %0.9 = MkArg missing, Prom(1), e0.1
  37569. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37570. BB2
  37571. cls' %2.0 = LdConst function (depth, random) { if (d...
  37572. t %2.1 = Identical %0.5, %2.0
  37573. void Assume %2.1, %0.10
  37574. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37575. val %2.4 = Force %2.3, e0.1
  37576. void Return %2.4
  37577. BB1
  37578. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37579. void Deopt %1.0
  37580. Prom 0:
  37581. BB0
  37582. env e0.0 = LdFunctionEnv
  37583. real$' %0.1 = LdConst [1] 2
  37584. void Return %0.1
  37585. Prom 1:
  37586. BB0
  37587. env e0.0 = LdFunctionEnv
  37588. cls %0.1 = LdFun nextRandom, e0.0
  37589. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37590. val^ %0.3 = Call %0.1() e0.0
  37591. val %0.4 = Force %0.3, e0.0
  37592. void Return %0.4
  37593. ├────── Elide environments not needed: == 580
  37594. test[0x7f9244567f20]
  37595. BB0
  37596. real$' %0.0 = LdConst [1] 74755
  37597. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37598. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37599. void StVar nextRandom, %0.2, e0.1
  37600. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37601. cls %0.5 = SetShared %0.4
  37602. void StVar buildTreeDepth, %0.5, e0.1
  37603. real$' %0.7 = LdConst [1] 2
  37604. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37605. prom %0.9 = MkArg missing, Prom(1), e0.1
  37606. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37607. BB2
  37608. cls' %2.0 = LdConst function (depth, random) { if (d...
  37609. t %2.1 = Identical %0.5, %2.0
  37610. void Assume %2.1, %0.10
  37611. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37612. val %2.4 = Force %2.3, e0.1
  37613. void Return %2.4
  37614. BB1
  37615. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37616. void Deopt %1.0
  37617. Prom 0:
  37618. BB0
  37619. env e0.0 = LdFunctionEnv
  37620. real$' %0.1 = LdConst [1] 2
  37621. void Return %0.1
  37622. Prom 1:
  37623. BB0
  37624. env e0.0 = LdFunctionEnv
  37625. cls %0.1 = LdFun nextRandom, e0.0
  37626. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37627. val^ %0.3 = Call %0.1() e0.0
  37628. val %0.4 = Force %0.3, e0.0
  37629. void Return %0.4
  37630. ├────── Move environment creation as far as possible: == 587
  37631. test[0x7f9244567f20]
  37632. BB0
  37633. real$' %0.0 = LdConst [1] 74755
  37634. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37635. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37636. void StVar nextRandom, %0.2, e0.1
  37637. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37638. cls %0.5 = SetShared %0.4
  37639. void StVar buildTreeDepth, %0.5, e0.1
  37640. real$' %0.7 = LdConst [1] 2
  37641. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37642. prom %0.9 = MkArg missing, Prom(1), e0.1
  37643. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37644. BB2
  37645. cls' %2.0 = LdConst function (depth, random) { if (d...
  37646. t %2.1 = Identical %0.5, %2.0
  37647. void Assume %2.1, %0.10
  37648. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37649. val %2.4 = Force %2.3, e0.1
  37650. void Return %2.4
  37651. BB1
  37652. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37653. void Deopt %1.0
  37654. Prom 0:
  37655. BB0
  37656. env e0.0 = LdFunctionEnv
  37657. real$' %0.1 = LdConst [1] 2
  37658. void Return %0.1
  37659. Prom 1:
  37660. BB0
  37661. env e0.0 = LdFunctionEnv
  37662. cls %0.1 = LdFun nextRandom, e0.0
  37663. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37664. val^ %0.3 = Call %0.1() e0.0
  37665. val %0.4 = Force %0.3, e0.0
  37666. void Return %0.4
  37667. ├────── Cleanup redundant operations: == 594
  37668. test[0x7f9244567f20]
  37669. BB0
  37670. real$' %0.0 = LdConst [1] 74755
  37671. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37672. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37673. void StVar nextRandom, %0.2, e0.1
  37674. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37675. cls %0.5 = SetShared %0.4
  37676. void StVar buildTreeDepth, %0.5, e0.1
  37677. real$' %0.7 = LdConst [1] 2
  37678. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37679. prom %0.9 = MkArg missing, Prom(1), e0.1
  37680. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37681. BB2
  37682. cls' %2.0 = LdConst function (depth, random) { if (d...
  37683. t %2.1 = Identical %0.5, %2.0
  37684. void Assume %2.1, %0.10
  37685. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37686. val %2.4 = Force %2.3, e0.1
  37687. void Return %2.4
  37688. BB1
  37689. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37690. void Deopt %1.0
  37691. Prom 0:
  37692. BB0
  37693. env e0.0 = LdFunctionEnv
  37694. real$' %0.1 = LdConst [1] 2
  37695. void Return %0.1
  37696. Prom 1:
  37697. BB0
  37698. env e0.0 = LdFunctionEnv
  37699. cls %0.1 = LdFun nextRandom, e0.0
  37700. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37701. val^ %0.3 = Call %0.1() e0.0
  37702. val %0.4 = Force %0.3, e0.0
  37703. void Return %0.4
  37704. ├────── Inline closures: == 601
  37705. test[0x7f9244567f20]
  37706. BB0
  37707. real$' %0.0 = LdConst [1] 74755
  37708. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37709. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37710. void StVar nextRandom, %0.2, e0.1
  37711. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37712. cls %0.5 = SetShared %0.4
  37713. void StVar buildTreeDepth, %0.5, e0.1
  37714. real$' %0.7 = LdConst [1] 2
  37715. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37716. prom %0.9 = MkArg missing, Prom(1), e0.1
  37717. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37718. BB2
  37719. cls' %2.0 = LdConst function (depth, random) { if (d...
  37720. t %2.1 = Identical %0.5, %2.0
  37721. void Assume %2.1, %0.10
  37722. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37723. val %2.4 = Force %2.3, e0.1
  37724. void Return %2.4
  37725. BB1
  37726. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37727. void Deopt %1.0
  37728. Prom 0:
  37729. BB0
  37730. env e0.0 = LdFunctionEnv
  37731. real$' %0.1 = LdConst [1] 2
  37732. void Return %0.1
  37733. Prom 1:
  37734. BB0
  37735. env e0.0 = LdFunctionEnv
  37736. cls %0.1 = LdFun nextRandom, e0.0
  37737. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37738. val^ %0.3 = Call %0.1() e0.0
  37739. val %0.4 = Force %0.3, e0.0
  37740. void Return %0.4
  37741. ├────── Inline Promises: == 608
  37742. test[0x7f9244567f20]
  37743. BB0
  37744. real$' %0.0 = LdConst [1] 74755
  37745. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37746. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37747. void StVar nextRandom, %0.2, e0.1
  37748. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37749. cls %0.5 = SetShared %0.4
  37750. void StVar buildTreeDepth, %0.5, e0.1
  37751. real$' %0.7 = LdConst [1] 2
  37752. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37753. prom %0.9 = MkArg missing, Prom(1), e0.1
  37754. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37755. BB2
  37756. cls' %2.0 = LdConst function (depth, random) { if (d...
  37757. t %2.1 = Identical %0.5, %2.0
  37758. void Assume %2.1, %0.10
  37759. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37760. val %2.4 = Force %2.3, e0.1
  37761. void Return %2.4
  37762. BB1
  37763. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37764. void Deopt %1.0
  37765. Prom 0:
  37766. BB0
  37767. env e0.0 = LdFunctionEnv
  37768. real$' %0.1 = LdConst [1] 2
  37769. void Return %0.1
  37770. Prom 1:
  37771. BB0
  37772. env e0.0 = LdFunctionEnv
  37773. cls %0.1 = LdFun nextRandom, e0.0
  37774. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37775. val^ %0.3 = Call %0.1() e0.0
  37776. val %0.4 = Force %0.3, e0.0
  37777. void Return %0.4
  37778. ├────── Scope resolution: == 615
  37779. test[0x7f9244567f20]
  37780. BB0
  37781. real$' %0.0 = LdConst [1] 74755
  37782. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37783. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37784. void StVar nextRandom, %0.2, e0.1
  37785. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37786. cls %0.5 = SetShared %0.4
  37787. void StVar buildTreeDepth, %0.5, e0.1
  37788. real$' %0.7 = LdConst [1] 2
  37789. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37790. prom %0.9 = MkArg missing, Prom(1), e0.1
  37791. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37792. BB2
  37793. cls' %2.0 = LdConst function (depth, random) { if (d...
  37794. t %2.1 = Identical %0.5, %2.0
  37795. void Assume %2.1, %0.10
  37796. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37797. val %2.4 = Force %2.3, e0.1
  37798. void Return %2.4
  37799. BB1
  37800. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37801. void Deopt %1.0
  37802. Prom 0:
  37803. BB0
  37804. env e0.0 = LdFunctionEnv
  37805. real$' %0.1 = LdConst [1] 2
  37806. void Return %0.1
  37807. Prom 1:
  37808. BB0
  37809. env e0.0 = LdFunctionEnv
  37810. cls %0.1 = LdFun nextRandom, e0.0
  37811. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37812. val^ %0.3 = Call %0.1() e0.0
  37813. val %0.4 = Force %0.3, e0.0
  37814. void Return %0.4
  37815. ├────── Constant folding: == 622
  37816. test[0x7f9244567f20]
  37817. BB0
  37818. real$' %0.0 = LdConst [1] 74755
  37819. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37820. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37821. void StVar nextRandom, %0.2, e0.1
  37822. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37823. cls %0.5 = SetShared %0.4
  37824. void StVar buildTreeDepth, %0.5, e0.1
  37825. real$' %0.7 = LdConst [1] 2
  37826. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37827. prom %0.9 = MkArg missing, Prom(1), e0.1
  37828. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37829. BB2
  37830. cls' %2.0 = LdConst function (depth, random) { if (d...
  37831. t %2.1 = Identical %0.5, %2.0
  37832. void Assume %2.1, %0.10
  37833. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37834. val %2.4 = Force %2.3, e0.1
  37835. void Return %2.4
  37836. BB1
  37837. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37838. void Deopt %1.0
  37839. Prom 0:
  37840. BB0
  37841. env e0.0 = LdFunctionEnv
  37842. real$' %0.1 = LdConst [1] 2
  37843. void Return %0.1
  37844. Prom 1:
  37845. BB0
  37846. env e0.0 = LdFunctionEnv
  37847. cls %0.1 = LdFun nextRandom, e0.0
  37848. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37849. val^ %0.3 = Call %0.1() e0.0
  37850. val %0.4 = Force %0.3, e0.0
  37851. void Return %0.4
  37852. ├────── Cleanup redundant operations: == 629
  37853. test[0x7f9244567f20]
  37854. BB0
  37855. real$' %0.0 = LdConst [1] 74755
  37856. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37857. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37858. void StVar nextRandom, %0.2, e0.1
  37859. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37860. cls %0.5 = SetShared %0.4
  37861. void StVar buildTreeDepth, %0.5, e0.1
  37862. real$' %0.7 = LdConst [1] 2
  37863. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37864. prom %0.9 = MkArg missing, Prom(1), e0.1
  37865. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37866. BB2
  37867. cls' %2.0 = LdConst function (depth, random) { if (d...
  37868. t %2.1 = Identical %0.5, %2.0
  37869. void Assume %2.1, %0.10
  37870. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37871. val %2.4 = Force %2.3, e0.1
  37872. void Return %2.4
  37873. BB1
  37874. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37875. void Deopt %1.0
  37876. Prom 0:
  37877. BB0
  37878. env e0.0 = LdFunctionEnv
  37879. real$' %0.1 = LdConst [1] 2
  37880. void Return %0.1
  37881. Prom 1:
  37882. BB0
  37883. env e0.0 = LdFunctionEnv
  37884. cls %0.1 = LdFun nextRandom, e0.0
  37885. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37886. val^ %0.3 = Call %0.1() e0.0
  37887. val %0.4 = Force %0.3, e0.0
  37888. void Return %0.4
  37889. ├────── Delay instructions: == 636
  37890. test[0x7f9244567f20]
  37891. BB0
  37892. real$' %0.0 = LdConst [1] 74755
  37893. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37894. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37895. void StVar nextRandom, %0.2, e0.1
  37896. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37897. cls %0.5 = SetShared %0.4
  37898. void StVar buildTreeDepth, %0.5, e0.1
  37899. real$' %0.7 = LdConst [1] 2
  37900. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37901. prom %0.9 = MkArg missing, Prom(1), e0.1
  37902. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37903. BB2
  37904. cls' %2.0 = LdConst function (depth, random) { if (d...
  37905. t %2.1 = Identical %0.5, %2.0
  37906. void Assume %2.1, %0.10
  37907. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37908. val %2.4 = Force %2.3, e0.1
  37909. void Return %2.4
  37910. BB1
  37911. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37912. void Deopt %1.0
  37913. Prom 0:
  37914. BB0
  37915. env e0.0 = LdFunctionEnv
  37916. real$' %0.1 = LdConst [1] 2
  37917. void Return %0.1
  37918. Prom 1:
  37919. BB0
  37920. env e0.0 = LdFunctionEnv
  37921. cls %0.1 = LdFun nextRandom, e0.0
  37922. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37923. val^ %0.3 = Call %0.1() e0.0
  37924. val %0.4 = Force %0.3, e0.0
  37925. void Return %0.4
  37926. ├────── Elide environments not needed: == 643
  37927. test[0x7f9244567f20]
  37928. BB0
  37929. real$' %0.0 = LdConst [1] 74755
  37930. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37931. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37932. void StVar nextRandom, %0.2, e0.1
  37933. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37934. cls %0.5 = SetShared %0.4
  37935. void StVar buildTreeDepth, %0.5, e0.1
  37936. real$' %0.7 = LdConst [1] 2
  37937. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37938. prom %0.9 = MkArg missing, Prom(1), e0.1
  37939. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37940. BB2
  37941. cls' %2.0 = LdConst function (depth, random) { if (d...
  37942. t %2.1 = Identical %0.5, %2.0
  37943. void Assume %2.1, %0.10
  37944. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37945. val %2.4 = Force %2.3, e0.1
  37946. void Return %2.4
  37947. BB1
  37948. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37949. void Deopt %1.0
  37950. Prom 0:
  37951. BB0
  37952. env e0.0 = LdFunctionEnv
  37953. real$' %0.1 = LdConst [1] 2
  37954. void Return %0.1
  37955. Prom 1:
  37956. BB0
  37957. env e0.0 = LdFunctionEnv
  37958. cls %0.1 = LdFun nextRandom, e0.0
  37959. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37960. val^ %0.3 = Call %0.1() e0.0
  37961. val %0.4 = Force %0.3, e0.0
  37962. void Return %0.4
  37963. ├────── Move environment creation as far as possible: == 650
  37964. test[0x7f9244567f20]
  37965. BB0
  37966. real$' %0.0 = LdConst [1] 74755
  37967. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  37968. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  37969. void StVar nextRandom, %0.2, e0.1
  37970. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  37971. cls %0.5 = SetShared %0.4
  37972. void StVar buildTreeDepth, %0.5, e0.1
  37973. real$' %0.7 = LdConst [1] 2
  37974. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  37975. prom %0.9 = MkArg missing, Prom(1), e0.1
  37976. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  37977. BB2
  37978. cls' %2.0 = LdConst function (depth, random) { if (d...
  37979. t %2.1 = Identical %0.5, %2.0
  37980. void Assume %2.1, %0.10
  37981. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  37982. val %2.4 = Force %2.3, e0.1
  37983. void Return %2.4
  37984. BB1
  37985. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  37986. void Deopt %1.0
  37987. Prom 0:
  37988. BB0
  37989. env e0.0 = LdFunctionEnv
  37990. real$' %0.1 = LdConst [1] 2
  37991. void Return %0.1
  37992. Prom 1:
  37993. BB0
  37994. env e0.0 = LdFunctionEnv
  37995. cls %0.1 = LdFun nextRandom, e0.0
  37996. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  37997. val^ %0.3 = Call %0.1() e0.0
  37998. val %0.4 = Force %0.3, e0.0
  37999. void Return %0.4
  38000. ├────── Cleanup redundant operations: == 657
  38001. test[0x7f9244567f20]
  38002. BB0
  38003. real$' %0.0 = LdConst [1] 74755
  38004. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38005. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38006. void StVar nextRandom, %0.2, e0.1
  38007. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38008. cls %0.5 = SetShared %0.4
  38009. void StVar buildTreeDepth, %0.5, e0.1
  38010. real$' %0.7 = LdConst [1] 2
  38011. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38012. prom %0.9 = MkArg missing, Prom(1), e0.1
  38013. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38014. BB2
  38015. cls' %2.0 = LdConst function (depth, random) { if (d...
  38016. t %2.1 = Identical %0.5, %2.0
  38017. void Assume %2.1, %0.10
  38018. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38019. val %2.4 = Force %2.3, e0.1
  38020. void Return %2.4
  38021. BB1
  38022. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38023. void Deopt %1.0
  38024. Prom 0:
  38025. BB0
  38026. env e0.0 = LdFunctionEnv
  38027. real$' %0.1 = LdConst [1] 2
  38028. void Return %0.1
  38029. Prom 1:
  38030. BB0
  38031. env e0.0 = LdFunctionEnv
  38032. cls %0.1 = LdFun nextRandom, e0.0
  38033. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38034. val^ %0.3 = Call %0.1() e0.0
  38035. val %0.4 = Force %0.3, e0.0
  38036. void Return %0.4
  38037. ├────── Inline closures: == 664
  38038. test[0x7f9244567f20]
  38039. BB0
  38040. real$' %0.0 = LdConst [1] 74755
  38041. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38042. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38043. void StVar nextRandom, %0.2, e0.1
  38044. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38045. cls %0.5 = SetShared %0.4
  38046. void StVar buildTreeDepth, %0.5, e0.1
  38047. real$' %0.7 = LdConst [1] 2
  38048. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38049. prom %0.9 = MkArg missing, Prom(1), e0.1
  38050. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38051. BB2
  38052. cls' %2.0 = LdConst function (depth, random) { if (d...
  38053. t %2.1 = Identical %0.5, %2.0
  38054. void Assume %2.1, %0.10
  38055. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38056. val %2.4 = Force %2.3, e0.1
  38057. void Return %2.4
  38058. BB1
  38059. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38060. void Deopt %1.0
  38061. Prom 0:
  38062. BB0
  38063. env e0.0 = LdFunctionEnv
  38064. real$' %0.1 = LdConst [1] 2
  38065. void Return %0.1
  38066. Prom 1:
  38067. BB0
  38068. env e0.0 = LdFunctionEnv
  38069. cls %0.1 = LdFun nextRandom, e0.0
  38070. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38071. val^ %0.3 = Call %0.1() e0.0
  38072. val %0.4 = Force %0.3, e0.0
  38073. void Return %0.4
  38074. ├────── Inline Promises: == 671
  38075. test[0x7f9244567f20]
  38076. BB0
  38077. real$' %0.0 = LdConst [1] 74755
  38078. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38079. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38080. void StVar nextRandom, %0.2, e0.1
  38081. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38082. cls %0.5 = SetShared %0.4
  38083. void StVar buildTreeDepth, %0.5, e0.1
  38084. real$' %0.7 = LdConst [1] 2
  38085. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38086. prom %0.9 = MkArg missing, Prom(1), e0.1
  38087. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38088. BB2
  38089. cls' %2.0 = LdConst function (depth, random) { if (d...
  38090. t %2.1 = Identical %0.5, %2.0
  38091. void Assume %2.1, %0.10
  38092. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38093. val %2.4 = Force %2.3, e0.1
  38094. void Return %2.4
  38095. BB1
  38096. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38097. void Deopt %1.0
  38098. Prom 0:
  38099. BB0
  38100. env e0.0 = LdFunctionEnv
  38101. real$' %0.1 = LdConst [1] 2
  38102. void Return %0.1
  38103. Prom 1:
  38104. BB0
  38105. env e0.0 = LdFunctionEnv
  38106. cls %0.1 = LdFun nextRandom, e0.0
  38107. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38108. val^ %0.3 = Call %0.1() e0.0
  38109. val %0.4 = Force %0.3, e0.0
  38110. void Return %0.4
  38111. ├────── Scope resolution: == 678
  38112. test[0x7f9244567f20]
  38113. BB0
  38114. real$' %0.0 = LdConst [1] 74755
  38115. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38116. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38117. void StVar nextRandom, %0.2, e0.1
  38118. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38119. cls %0.5 = SetShared %0.4
  38120. void StVar buildTreeDepth, %0.5, e0.1
  38121. real$' %0.7 = LdConst [1] 2
  38122. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38123. prom %0.9 = MkArg missing, Prom(1), e0.1
  38124. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38125. BB2
  38126. cls' %2.0 = LdConst function (depth, random) { if (d...
  38127. t %2.1 = Identical %0.5, %2.0
  38128. void Assume %2.1, %0.10
  38129. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38130. val %2.4 = Force %2.3, e0.1
  38131. void Return %2.4
  38132. BB1
  38133. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38134. void Deopt %1.0
  38135. Prom 0:
  38136. BB0
  38137. env e0.0 = LdFunctionEnv
  38138. real$' %0.1 = LdConst [1] 2
  38139. void Return %0.1
  38140. Prom 1:
  38141. BB0
  38142. env e0.0 = LdFunctionEnv
  38143. cls %0.1 = LdFun nextRandom, e0.0
  38144. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38145. val^ %0.3 = Call %0.1() e0.0
  38146. val %0.4 = Force %0.3, e0.0
  38147. void Return %0.4
  38148. ├────── Constant folding: == 685
  38149. test[0x7f9244567f20]
  38150. BB0
  38151. real$' %0.0 = LdConst [1] 74755
  38152. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38153. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38154. void StVar nextRandom, %0.2, e0.1
  38155. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38156. cls %0.5 = SetShared %0.4
  38157. void StVar buildTreeDepth, %0.5, e0.1
  38158. real$' %0.7 = LdConst [1] 2
  38159. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38160. prom %0.9 = MkArg missing, Prom(1), e0.1
  38161. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38162. BB2
  38163. cls' %2.0 = LdConst function (depth, random) { if (d...
  38164. t %2.1 = Identical %0.5, %2.0
  38165. void Assume %2.1, %0.10
  38166. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38167. val %2.4 = Force %2.3, e0.1
  38168. void Return %2.4
  38169. BB1
  38170. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38171. void Deopt %1.0
  38172. Prom 0:
  38173. BB0
  38174. env e0.0 = LdFunctionEnv
  38175. real$' %0.1 = LdConst [1] 2
  38176. void Return %0.1
  38177. Prom 1:
  38178. BB0
  38179. env e0.0 = LdFunctionEnv
  38180. cls %0.1 = LdFun nextRandom, e0.0
  38181. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38182. val^ %0.3 = Call %0.1() e0.0
  38183. val %0.4 = Force %0.3, e0.0
  38184. void Return %0.4
  38185. ├────── Cleanup redundant operations: == 692
  38186. test[0x7f9244567f20]
  38187. BB0
  38188. real$' %0.0 = LdConst [1] 74755
  38189. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38190. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38191. void StVar nextRandom, %0.2, e0.1
  38192. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38193. cls %0.5 = SetShared %0.4
  38194. void StVar buildTreeDepth, %0.5, e0.1
  38195. real$' %0.7 = LdConst [1] 2
  38196. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38197. prom %0.9 = MkArg missing, Prom(1), e0.1
  38198. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38199. BB2
  38200. cls' %2.0 = LdConst function (depth, random) { if (d...
  38201. t %2.1 = Identical %0.5, %2.0
  38202. void Assume %2.1, %0.10
  38203. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38204. val %2.4 = Force %2.3, e0.1
  38205. void Return %2.4
  38206. BB1
  38207. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38208. void Deopt %1.0
  38209. Prom 0:
  38210. BB0
  38211. env e0.0 = LdFunctionEnv
  38212. real$' %0.1 = LdConst [1] 2
  38213. void Return %0.1
  38214. Prom 1:
  38215. BB0
  38216. env e0.0 = LdFunctionEnv
  38217. cls %0.1 = LdFun nextRandom, e0.0
  38218. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38219. val^ %0.3 = Call %0.1() e0.0
  38220. val %0.4 = Force %0.3, e0.0
  38221. void Return %0.4
  38222. ├────── Delay instructions: == 699
  38223. test[0x7f9244567f20]
  38224. BB0
  38225. real$' %0.0 = LdConst [1] 74755
  38226. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38227. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38228. void StVar nextRandom, %0.2, e0.1
  38229. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38230. cls %0.5 = SetShared %0.4
  38231. void StVar buildTreeDepth, %0.5, e0.1
  38232. real$' %0.7 = LdConst [1] 2
  38233. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38234. prom %0.9 = MkArg missing, Prom(1), e0.1
  38235. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38236. BB2
  38237. cls' %2.0 = LdConst function (depth, random) { if (d...
  38238. t %2.1 = Identical %0.5, %2.0
  38239. void Assume %2.1, %0.10
  38240. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38241. val %2.4 = Force %2.3, e0.1
  38242. void Return %2.4
  38243. BB1
  38244. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38245. void Deopt %1.0
  38246. Prom 0:
  38247. BB0
  38248. env e0.0 = LdFunctionEnv
  38249. real$' %0.1 = LdConst [1] 2
  38250. void Return %0.1
  38251. Prom 1:
  38252. BB0
  38253. env e0.0 = LdFunctionEnv
  38254. cls %0.1 = LdFun nextRandom, e0.0
  38255. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38256. val^ %0.3 = Call %0.1() e0.0
  38257. val %0.4 = Force %0.3, e0.0
  38258. void Return %0.4
  38259. ├────── Elide environments not needed: == 706
  38260. test[0x7f9244567f20]
  38261. BB0
  38262. real$' %0.0 = LdConst [1] 74755
  38263. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38264. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38265. void StVar nextRandom, %0.2, e0.1
  38266. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38267. cls %0.5 = SetShared %0.4
  38268. void StVar buildTreeDepth, %0.5, e0.1
  38269. real$' %0.7 = LdConst [1] 2
  38270. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38271. prom %0.9 = MkArg missing, Prom(1), e0.1
  38272. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38273. BB2
  38274. cls' %2.0 = LdConst function (depth, random) { if (d...
  38275. t %2.1 = Identical %0.5, %2.0
  38276. void Assume %2.1, %0.10
  38277. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38278. val %2.4 = Force %2.3, e0.1
  38279. void Return %2.4
  38280. BB1
  38281. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38282. void Deopt %1.0
  38283. Prom 0:
  38284. BB0
  38285. env e0.0 = LdFunctionEnv
  38286. real$' %0.1 = LdConst [1] 2
  38287. void Return %0.1
  38288. Prom 1:
  38289. BB0
  38290. env e0.0 = LdFunctionEnv
  38291. cls %0.1 = LdFun nextRandom, e0.0
  38292. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38293. val^ %0.3 = Call %0.1() e0.0
  38294. val %0.4 = Force %0.3, e0.0
  38295. void Return %0.4
  38296. ├────── Move environment creation as far as possible: == 713
  38297. test[0x7f9244567f20]
  38298. BB0
  38299. real$' %0.0 = LdConst [1] 74755
  38300. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38301. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38302. void StVar nextRandom, %0.2, e0.1
  38303. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38304. cls %0.5 = SetShared %0.4
  38305. void StVar buildTreeDepth, %0.5, e0.1
  38306. real$' %0.7 = LdConst [1] 2
  38307. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38308. prom %0.9 = MkArg missing, Prom(1), e0.1
  38309. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38310. BB2
  38311. cls' %2.0 = LdConst function (depth, random) { if (d...
  38312. t %2.1 = Identical %0.5, %2.0
  38313. void Assume %2.1, %0.10
  38314. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38315. val %2.4 = Force %2.3, e0.1
  38316. void Return %2.4
  38317. BB1
  38318. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38319. void Deopt %1.0
  38320. Prom 0:
  38321. BB0
  38322. env e0.0 = LdFunctionEnv
  38323. real$' %0.1 = LdConst [1] 2
  38324. void Return %0.1
  38325. Prom 1:
  38326. BB0
  38327. env e0.0 = LdFunctionEnv
  38328. cls %0.1 = LdFun nextRandom, e0.0
  38329. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38330. val^ %0.3 = Call %0.1() e0.0
  38331. val %0.4 = Force %0.3, e0.0
  38332. void Return %0.4
  38333. ├────── Cleanup redundant operations: == 720
  38334. test[0x7f9244567f20]
  38335. BB0
  38336. real$' %0.0 = LdConst [1] 74755
  38337. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38338. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38339. void StVar nextRandom, %0.2, e0.1
  38340. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38341. cls %0.5 = SetShared %0.4
  38342. void StVar buildTreeDepth, %0.5, e0.1
  38343. real$' %0.7 = LdConst [1] 2
  38344. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38345. prom %0.9 = MkArg missing, Prom(1), e0.1
  38346. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38347. BB2
  38348. cls' %2.0 = LdConst function (depth, random) { if (d...
  38349. t %2.1 = Identical %0.5, %2.0
  38350. void Assume %2.1, %0.10
  38351. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38352. val %2.4 = Force %2.3, e0.1
  38353. void Return %2.4
  38354. BB1
  38355. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38356. void Deopt %1.0
  38357. Prom 0:
  38358. BB0
  38359. env e0.0 = LdFunctionEnv
  38360. real$' %0.1 = LdConst [1] 2
  38361. void Return %0.1
  38362. Prom 1:
  38363. BB0
  38364. env e0.0 = LdFunctionEnv
  38365. cls %0.1 = LdFun nextRandom, e0.0
  38366. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38367. val^ %0.3 = Call %0.1() e0.0
  38368. val %0.4 = Force %0.3, e0.0
  38369. void Return %0.4
  38370. ├────── Inline closures: == 727
  38371. test[0x7f9244567f20]
  38372. BB0
  38373. real$' %0.0 = LdConst [1] 74755
  38374. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38375. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38376. void StVar nextRandom, %0.2, e0.1
  38377. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38378. cls %0.5 = SetShared %0.4
  38379. void StVar buildTreeDepth, %0.5, e0.1
  38380. real$' %0.7 = LdConst [1] 2
  38381. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38382. prom %0.9 = MkArg missing, Prom(1), e0.1
  38383. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38384. BB2
  38385. cls' %2.0 = LdConst function (depth, random) { if (d...
  38386. t %2.1 = Identical %0.5, %2.0
  38387. void Assume %2.1, %0.10
  38388. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38389. val %2.4 = Force %2.3, e0.1
  38390. void Return %2.4
  38391. BB1
  38392. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38393. void Deopt %1.0
  38394. Prom 0:
  38395. BB0
  38396. env e0.0 = LdFunctionEnv
  38397. real$' %0.1 = LdConst [1] 2
  38398. void Return %0.1
  38399. Prom 1:
  38400. BB0
  38401. env e0.0 = LdFunctionEnv
  38402. cls %0.1 = LdFun nextRandom, e0.0
  38403. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38404. val^ %0.3 = Call %0.1() e0.0
  38405. val %0.4 = Force %0.3, e0.0
  38406. void Return %0.4
  38407. ├────── Inline Promises: == 734
  38408. test[0x7f9244567f20]
  38409. BB0
  38410. real$' %0.0 = LdConst [1] 74755
  38411. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38412. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38413. void StVar nextRandom, %0.2, e0.1
  38414. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38415. cls %0.5 = SetShared %0.4
  38416. void StVar buildTreeDepth, %0.5, e0.1
  38417. real$' %0.7 = LdConst [1] 2
  38418. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38419. prom %0.9 = MkArg missing, Prom(1), e0.1
  38420. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38421. BB2
  38422. cls' %2.0 = LdConst function (depth, random) { if (d...
  38423. t %2.1 = Identical %0.5, %2.0
  38424. void Assume %2.1, %0.10
  38425. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38426. val %2.4 = Force %2.3, e0.1
  38427. void Return %2.4
  38428. BB1
  38429. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38430. void Deopt %1.0
  38431. Prom 0:
  38432. BB0
  38433. env e0.0 = LdFunctionEnv
  38434. real$' %0.1 = LdConst [1] 2
  38435. void Return %0.1
  38436. Prom 1:
  38437. BB0
  38438. env e0.0 = LdFunctionEnv
  38439. cls %0.1 = LdFun nextRandom, e0.0
  38440. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38441. val^ %0.3 = Call %0.1() e0.0
  38442. val %0.4 = Force %0.3, e0.0
  38443. void Return %0.4
  38444. ├────── Scope resolution: == 741
  38445. test[0x7f9244567f20]
  38446. BB0
  38447. real$' %0.0 = LdConst [1] 74755
  38448. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38449. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38450. void StVar nextRandom, %0.2, e0.1
  38451. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38452. cls %0.5 = SetShared %0.4
  38453. void StVar buildTreeDepth, %0.5, e0.1
  38454. real$' %0.7 = LdConst [1] 2
  38455. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38456. prom %0.9 = MkArg missing, Prom(1), e0.1
  38457. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38458. BB2
  38459. cls' %2.0 = LdConst function (depth, random) { if (d...
  38460. t %2.1 = Identical %0.5, %2.0
  38461. void Assume %2.1, %0.10
  38462. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38463. val %2.4 = Force %2.3, e0.1
  38464. void Return %2.4
  38465. BB1
  38466. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38467. void Deopt %1.0
  38468. Prom 0:
  38469. BB0
  38470. env e0.0 = LdFunctionEnv
  38471. real$' %0.1 = LdConst [1] 2
  38472. void Return %0.1
  38473. Prom 1:
  38474. BB0
  38475. env e0.0 = LdFunctionEnv
  38476. cls %0.1 = LdFun nextRandom, e0.0
  38477. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38478. val^ %0.3 = Call %0.1() e0.0
  38479. val %0.4 = Force %0.3, e0.0
  38480. void Return %0.4
  38481. ├────── Constant folding: == 748
  38482. test[0x7f9244567f20]
  38483. BB0
  38484. real$' %0.0 = LdConst [1] 74755
  38485. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38486. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38487. void StVar nextRandom, %0.2, e0.1
  38488. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38489. cls %0.5 = SetShared %0.4
  38490. void StVar buildTreeDepth, %0.5, e0.1
  38491. real$' %0.7 = LdConst [1] 2
  38492. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38493. prom %0.9 = MkArg missing, Prom(1), e0.1
  38494. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38495. BB2
  38496. cls' %2.0 = LdConst function (depth, random) { if (d...
  38497. t %2.1 = Identical %0.5, %2.0
  38498. void Assume %2.1, %0.10
  38499. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38500. val %2.4 = Force %2.3, e0.1
  38501. void Return %2.4
  38502. BB1
  38503. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38504. void Deopt %1.0
  38505. Prom 0:
  38506. BB0
  38507. env e0.0 = LdFunctionEnv
  38508. real$' %0.1 = LdConst [1] 2
  38509. void Return %0.1
  38510. Prom 1:
  38511. BB0
  38512. env e0.0 = LdFunctionEnv
  38513. cls %0.1 = LdFun nextRandom, e0.0
  38514. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38515. val^ %0.3 = Call %0.1() e0.0
  38516. val %0.4 = Force %0.3, e0.0
  38517. void Return %0.4
  38518. ├────── Cleanup redundant operations: == 755
  38519. test[0x7f9244567f20]
  38520. BB0
  38521. real$' %0.0 = LdConst [1] 74755
  38522. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38523. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38524. void StVar nextRandom, %0.2, e0.1
  38525. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38526. cls %0.5 = SetShared %0.4
  38527. void StVar buildTreeDepth, %0.5, e0.1
  38528. real$' %0.7 = LdConst [1] 2
  38529. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38530. prom %0.9 = MkArg missing, Prom(1), e0.1
  38531. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38532. BB2
  38533. cls' %2.0 = LdConst function (depth, random) { if (d...
  38534. t %2.1 = Identical %0.5, %2.0
  38535. void Assume %2.1, %0.10
  38536. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38537. val %2.4 = Force %2.3, e0.1
  38538. void Return %2.4
  38539. BB1
  38540. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38541. void Deopt %1.0
  38542. Prom 0:
  38543. BB0
  38544. env e0.0 = LdFunctionEnv
  38545. real$' %0.1 = LdConst [1] 2
  38546. void Return %0.1
  38547. Prom 1:
  38548. BB0
  38549. env e0.0 = LdFunctionEnv
  38550. cls %0.1 = LdFun nextRandom, e0.0
  38551. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38552. val^ %0.3 = Call %0.1() e0.0
  38553. val %0.4 = Force %0.3, e0.0
  38554. void Return %0.4
  38555. ├────── Delay instructions: == 762
  38556. test[0x7f9244567f20]
  38557. BB0
  38558. real$' %0.0 = LdConst [1] 74755
  38559. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38560. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38561. void StVar nextRandom, %0.2, e0.1
  38562. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38563. cls %0.5 = SetShared %0.4
  38564. void StVar buildTreeDepth, %0.5, e0.1
  38565. real$' %0.7 = LdConst [1] 2
  38566. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38567. prom %0.9 = MkArg missing, Prom(1), e0.1
  38568. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38569. BB2
  38570. cls' %2.0 = LdConst function (depth, random) { if (d...
  38571. t %2.1 = Identical %0.5, %2.0
  38572. void Assume %2.1, %0.10
  38573. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38574. val %2.4 = Force %2.3, e0.1
  38575. void Return %2.4
  38576. BB1
  38577. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38578. void Deopt %1.0
  38579. Prom 0:
  38580. BB0
  38581. env e0.0 = LdFunctionEnv
  38582. real$' %0.1 = LdConst [1] 2
  38583. void Return %0.1
  38584. Prom 1:
  38585. BB0
  38586. env e0.0 = LdFunctionEnv
  38587. cls %0.1 = LdFun nextRandom, e0.0
  38588. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38589. val^ %0.3 = Call %0.1() e0.0
  38590. val %0.4 = Force %0.3, e0.0
  38591. void Return %0.4
  38592. ├────── Elide environments not needed: == 769
  38593. test[0x7f9244567f20]
  38594. BB0
  38595. real$' %0.0 = LdConst [1] 74755
  38596. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38597. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38598. void StVar nextRandom, %0.2, e0.1
  38599. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38600. cls %0.5 = SetShared %0.4
  38601. void StVar buildTreeDepth, %0.5, e0.1
  38602. real$' %0.7 = LdConst [1] 2
  38603. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38604. prom %0.9 = MkArg missing, Prom(1), e0.1
  38605. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38606. BB2
  38607. cls' %2.0 = LdConst function (depth, random) { if (d...
  38608. t %2.1 = Identical %0.5, %2.0
  38609. void Assume %2.1, %0.10
  38610. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38611. val %2.4 = Force %2.3, e0.1
  38612. void Return %2.4
  38613. BB1
  38614. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38615. void Deopt %1.0
  38616. Prom 0:
  38617. BB0
  38618. env e0.0 = LdFunctionEnv
  38619. real$' %0.1 = LdConst [1] 2
  38620. void Return %0.1
  38621. Prom 1:
  38622. BB0
  38623. env e0.0 = LdFunctionEnv
  38624. cls %0.1 = LdFun nextRandom, e0.0
  38625. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38626. val^ %0.3 = Call %0.1() e0.0
  38627. val %0.4 = Force %0.3, e0.0
  38628. void Return %0.4
  38629. ├────── Move environment creation as far as possible: == 776
  38630. test[0x7f9244567f20]
  38631. BB0
  38632. real$' %0.0 = LdConst [1] 74755
  38633. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38634. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38635. void StVar nextRandom, %0.2, e0.1
  38636. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38637. cls %0.5 = SetShared %0.4
  38638. void StVar buildTreeDepth, %0.5, e0.1
  38639. real$' %0.7 = LdConst [1] 2
  38640. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38641. prom %0.9 = MkArg missing, Prom(1), e0.1
  38642. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38643. BB2
  38644. cls' %2.0 = LdConst function (depth, random) { if (d...
  38645. t %2.1 = Identical %0.5, %2.0
  38646. void Assume %2.1, %0.10
  38647. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38648. val %2.4 = Force %2.3, e0.1
  38649. void Return %2.4
  38650. BB1
  38651. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38652. void Deopt %1.0
  38653. Prom 0:
  38654. BB0
  38655. env e0.0 = LdFunctionEnv
  38656. real$' %0.1 = LdConst [1] 2
  38657. void Return %0.1
  38658. Prom 1:
  38659. BB0
  38660. env e0.0 = LdFunctionEnv
  38661. cls %0.1 = LdFun nextRandom, e0.0
  38662. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38663. val^ %0.3 = Call %0.1() e0.0
  38664. val %0.4 = Force %0.3, e0.0
  38665. void Return %0.4
  38666. ├────── Cleanup redundant operations: == 783
  38667. test[0x7f9244567f20]
  38668. BB0
  38669. real$' %0.0 = LdConst [1] 74755
  38670. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38671. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38672. void StVar nextRandom, %0.2, e0.1
  38673. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38674. cls %0.5 = SetShared %0.4
  38675. void StVar buildTreeDepth, %0.5, e0.1
  38676. real$' %0.7 = LdConst [1] 2
  38677. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38678. prom %0.9 = MkArg missing, Prom(1), e0.1
  38679. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38680. BB2
  38681. cls' %2.0 = LdConst function (depth, random) { if (d...
  38682. t %2.1 = Identical %0.5, %2.0
  38683. void Assume %2.1, %0.10
  38684. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38685. val %2.4 = Force %2.3, e0.1
  38686. void Return %2.4
  38687. BB1
  38688. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38689. void Deopt %1.0
  38690. Prom 0:
  38691. BB0
  38692. env e0.0 = LdFunctionEnv
  38693. real$' %0.1 = LdConst [1] 2
  38694. void Return %0.1
  38695. Prom 1:
  38696. BB0
  38697. env e0.0 = LdFunctionEnv
  38698. cls %0.1 = LdFun nextRandom, e0.0
  38699. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38700. val^ %0.3 = Call %0.1() e0.0
  38701. val %0.4 = Force %0.3, e0.0
  38702. void Return %0.4
  38703. ├────── Inline closures: == 790
  38704. test[0x7f9244567f20]
  38705. BB0
  38706. real$' %0.0 = LdConst [1] 74755
  38707. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38708. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38709. void StVar nextRandom, %0.2, e0.1
  38710. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38711. cls %0.5 = SetShared %0.4
  38712. void StVar buildTreeDepth, %0.5, e0.1
  38713. real$' %0.7 = LdConst [1] 2
  38714. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38715. prom %0.9 = MkArg missing, Prom(1), e0.1
  38716. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38717. BB2
  38718. cls' %2.0 = LdConst function (depth, random) { if (d...
  38719. t %2.1 = Identical %0.5, %2.0
  38720. void Assume %2.1, %0.10
  38721. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38722. val %2.4 = Force %2.3, e0.1
  38723. void Return %2.4
  38724. BB1
  38725. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38726. void Deopt %1.0
  38727. Prom 0:
  38728. BB0
  38729. env e0.0 = LdFunctionEnv
  38730. real$' %0.1 = LdConst [1] 2
  38731. void Return %0.1
  38732. Prom 1:
  38733. BB0
  38734. env e0.0 = LdFunctionEnv
  38735. cls %0.1 = LdFun nextRandom, e0.0
  38736. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38737. val^ %0.3 = Call %0.1() e0.0
  38738. val %0.4 = Force %0.3, e0.0
  38739. void Return %0.4
  38740. ├────── Speculate on values to elide environments: == 797
  38741. test[0x7f9244567f20]
  38742. BB0
  38743. real$' %0.0 = LdConst [1] 74755
  38744. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38745. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38746. void StVar nextRandom, %0.2, e0.1
  38747. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38748. cls %0.5 = SetShared %0.4
  38749. void StVar buildTreeDepth, %0.5, e0.1
  38750. real$' %0.7 = LdConst [1] 2
  38751. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38752. prom %0.9 = MkArg missing, Prom(1), e0.1
  38753. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38754. BB2
  38755. cls' %2.0 = LdConst function (depth, random) { if (d...
  38756. t %2.1 = Identical %0.5, %2.0
  38757. void Assume %2.1, %0.10
  38758. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38759. val %2.4 = Force %2.3, e0.1
  38760. void Return %2.4
  38761. BB1
  38762. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38763. void Deopt %1.0
  38764. Prom 0:
  38765. BB0
  38766. env e0.0 = LdFunctionEnv
  38767. real$' %0.1 = LdConst [1] 2
  38768. void Return %0.1
  38769. Prom 1:
  38770. BB0
  38771. env e0.0 = LdFunctionEnv
  38772. cls %0.1 = LdFun nextRandom, e0.0
  38773. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38774. val^ %0.3 = Call %0.1() e0.0
  38775. val %0.4 = Force %0.3, e0.0
  38776. void Return %0.4
  38777. ├────── Cleanup unused checkpoints: == 804
  38778. test[0x7f9244567f20]
  38779. BB0
  38780. real$' %0.0 = LdConst [1] 74755
  38781. env e0.1 = MkEnv seed=%0.0, parent=<environment: R_GlobalEnv>
  38782. cls %0.2 = MkFunCls test>nextRandom@53[0x7f9244559020], e0.1
  38783. void StVar nextRandom, %0.2, e0.1
  38784. cls %0.4 = MkFunCls test>buildTreeDepth@91[0x7f92445596d0], e0.1
  38785. cls %0.5 = SetShared %0.4
  38786. void StVar buildTreeDepth, %0.5, e0.1
  38787. real$' %0.7 = LdConst [1] 2
  38788. prom %0.8 = MkArg %0.7, Prom(0), e0.1
  38789. prom %0.9 = MkArg missing, Prom(1), e0.1
  38790. cp %0.10 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  38791. BB2
  38792. cls' %2.0 = LdConst function (depth, random) { if (d...
  38793. t %2.1 = Identical %0.5, %2.0
  38794. void Assume %2.1, %0.10
  38795. val^ %2.3 = StaticCall buildTreeDepth[0x7f92446010b0](%0.8, %0.9) e0.1
  38796. val %2.4 = Force %2.3, e0.1
  38797. void Return %2.4
  38798. BB1
  38799. fs %1.0 = FrameState 0x7f924457e060+138: [%0.5], env=e0.1
  38800. void Deopt %1.0
  38801. Prom 0:
  38802. BB0
  38803. env e0.0 = LdFunctionEnv
  38804. real$' %0.1 = LdConst [1] 2
  38805. void Return %0.1
  38806. Prom 1:
  38807. BB0
  38808. env e0.0 = LdFunctionEnv
  38809. cls %0.1 = LdFun nextRandom, e0.0
  38810. fs %0.2 = FrameState 0x7f9247265dd8+31: [], env=e0.0
  38811. val^ %0.3 = Call %0.1() e0.0
  38812. val %0.4 = Force %0.3, e0.0
  38813. void Return %0.4
  38814. │ test[0x7f9244567f20] │
  38815. └──────────────────────────────────────────────────────────────────────────────┘
  38816.  
  38817. ┌──────────────────────────────────────────────────────────────────────────────┐
  38818. │ bitwAnd[0x7f92445706c0] │
  38819. ├────── Inline Promises: == 2
  38820. bitwAnd[0x7f92445706c0]
  38821. BB0
  38822. val^ %0.0 = LdArg 1
  38823. val^ %0.1 = LdArg 0
  38824. env e0.2 = MkEnv a=%0.1, b=%0.0, parent=<environment: namespace:base>
  38825. val^? %0.3 = LdVar a, e0.2
  38826. val %0.4 = Force %0.3, e0.2
  38827. val^? %0.5 = LdVar b, e0.2
  38828. val %0.6 = Force %0.5, e0.2
  38829. val^ %0.7 = CallBuiltin bitwiseAnd(%0.4, %0.6) e0.2
  38830. val %0.8 = Force %0.7, e0.2
  38831. void Return %0.8
  38832. ├────── Scope resolution: == 9
  38833. bitwAnd[0x7f92445706c0]
  38834. BB0
  38835. val^ %0.0 = LdArg 1
  38836. val^ %0.1 = LdArg 0
  38837. env e0.2 = MkEnv a=%0.1, b=%0.0, parent=<environment: namespace:base>
  38838. val %0.3 = Force %0.1, e0.2
  38839. val^? %0.4 = LdVar b, e0.2
  38840. val %0.5 = Force %0.4, e0.2
  38841. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38842. val %0.7 = Force %0.6, e0.2
  38843. void Return %0.7
  38844. ├────── Constant folding: == 16
  38845. bitwAnd[0x7f92445706c0]
  38846. BB0
  38847. val^ %0.0 = LdArg 1
  38848. val^ %0.1 = LdArg 0
  38849. env e0.2 = MkEnv a=%0.1, b=%0.0, parent=<environment: namespace:base>
  38850. val %0.3 = Force %0.1, e0.2
  38851. val^? %0.4 = LdVar b, e0.2
  38852. val %0.5 = Force %0.4, e0.2
  38853. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38854. val %0.7 = Force %0.6, e0.2
  38855. void Return %0.7
  38856. ├────── Cleanup redundant operations: == 23
  38857. bitwAnd[0x7f92445706c0]
  38858. BB0
  38859. val^ %0.0 = LdArg 1
  38860. val^ %0.1 = LdArg 0
  38861. env e0.2 = MkEnv a=%0.1, b=%0.0, parent=<environment: namespace:base>
  38862. val %0.3 = Force %0.1, e0.2
  38863. val^? %0.4 = LdVar b, e0.2
  38864. val %0.5 = Force %0.4, e0.2
  38865. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38866. val %0.7 = Force %0.6, e0.2
  38867. void Return %0.7
  38868. ├────── Delay instructions: == 30
  38869. bitwAnd[0x7f92445706c0]
  38870. BB0
  38871. val^ %0.0 = LdArg 0
  38872. val^ %0.1 = LdArg 1
  38873. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38874. val %0.3 = Force %0.0, e0.2
  38875. val^? %0.4 = LdVar b, e0.2
  38876. val %0.5 = Force %0.4, e0.2
  38877. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38878. val %0.7 = Force %0.6, e0.2
  38879. void Return %0.7
  38880. ├────── Elide environments not needed: == 37
  38881. bitwAnd[0x7f92445706c0]
  38882. BB0
  38883. val^ %0.0 = LdArg 0
  38884. val^ %0.1 = LdArg 1
  38885. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38886. val %0.3 = Force %0.0, e0.2
  38887. val^? %0.4 = LdVar b, e0.2
  38888. val %0.5 = Force %0.4, e0.2
  38889. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38890. val %0.7 = Force %0.6, e0.2
  38891. void Return %0.7
  38892. ├────── Move environment creation as far as possible: == 44
  38893. bitwAnd[0x7f92445706c0]
  38894. BB0
  38895. val^ %0.0 = LdArg 0
  38896. val^ %0.1 = LdArg 1
  38897. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38898. val %0.3 = Force %0.0, e0.2
  38899. val^? %0.4 = LdVar b, e0.2
  38900. val %0.5 = Force %0.4, e0.2
  38901. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38902. val %0.7 = Force %0.6, e0.2
  38903. void Return %0.7
  38904. ├────── Cleanup redundant operations: == 51
  38905. bitwAnd[0x7f92445706c0]
  38906. BB0
  38907. val^ %0.0 = LdArg 0
  38908. val^ %0.1 = LdArg 1
  38909. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38910. val %0.3 = Force %0.0, e0.2
  38911. val^? %0.4 = LdVar b, e0.2
  38912. val %0.5 = Force %0.4, e0.2
  38913. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38914. val %0.7 = Force %0.6, e0.2
  38915. void Return %0.7
  38916. ├────── Inline closures: == 58
  38917. bitwAnd[0x7f92445706c0]
  38918. BB0
  38919. val^ %0.0 = LdArg 0
  38920. val^ %0.1 = LdArg 1
  38921. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38922. val %0.3 = Force %0.0, e0.2
  38923. val^? %0.4 = LdVar b, e0.2
  38924. val %0.5 = Force %0.4, e0.2
  38925. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38926. val %0.7 = Force %0.6, e0.2
  38927. void Return %0.7
  38928. ├────── Inline Promises: == 65
  38929. bitwAnd[0x7f92445706c0]
  38930. BB0
  38931. val^ %0.0 = LdArg 0
  38932. val^ %0.1 = LdArg 1
  38933. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38934. val %0.3 = Force! %0.0, e0.2
  38935. val^? %0.4 = LdVar b, e0.2
  38936. val %0.5 = Force %0.4, e0.2
  38937. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38938. val %0.7 = Force %0.6, e0.2
  38939. void Return %0.7
  38940. ├────── Scope resolution: == 72
  38941. bitwAnd[0x7f92445706c0]
  38942. BB0
  38943. val^ %0.0 = LdArg 0
  38944. val^ %0.1 = LdArg 1
  38945. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38946. val %0.3 = Force! %0.0, e0.2
  38947. val^? %0.4 = LdVar b, e0.2
  38948. val %0.5 = Force %0.4, e0.2
  38949. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38950. val %0.7 = Force %0.6, e0.2
  38951. void Return %0.7
  38952. ├────── Constant folding: == 79
  38953. bitwAnd[0x7f92445706c0]
  38954. BB0
  38955. val^ %0.0 = LdArg 0
  38956. val^ %0.1 = LdArg 1
  38957. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38958. val %0.3 = Force! %0.0, e0.2
  38959. val^? %0.4 = LdVar b, e0.2
  38960. val %0.5 = Force %0.4, e0.2
  38961. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38962. val %0.7 = Force %0.6, e0.2
  38963. void Return %0.7
  38964. ├────── Cleanup redundant operations: == 86
  38965. bitwAnd[0x7f92445706c0]
  38966. BB0
  38967. val^ %0.0 = LdArg 0
  38968. val^ %0.1 = LdArg 1
  38969. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38970. val %0.3 = Force! %0.0, e0.2
  38971. val^? %0.4 = LdVar b, e0.2
  38972. val %0.5 = Force %0.4, e0.2
  38973. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38974. val %0.7 = Force %0.6, e0.2
  38975. void Return %0.7
  38976. ├────── Delay instructions: == 93
  38977. bitwAnd[0x7f92445706c0]
  38978. BB0
  38979. val^ %0.0 = LdArg 0
  38980. val^ %0.1 = LdArg 1
  38981. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38982. val %0.3 = Force! %0.0, e0.2
  38983. val^? %0.4 = LdVar b, e0.2
  38984. val %0.5 = Force %0.4, e0.2
  38985. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38986. val %0.7 = Force %0.6, e0.2
  38987. void Return %0.7
  38988. ├────── Elide environments not needed: == 100
  38989. bitwAnd[0x7f92445706c0]
  38990. BB0
  38991. val^ %0.0 = LdArg 0
  38992. val^ %0.1 = LdArg 1
  38993. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  38994. val %0.3 = Force! %0.0, e0.2
  38995. val^? %0.4 = LdVar b, e0.2
  38996. val %0.5 = Force %0.4, e0.2
  38997. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  38998. val %0.7 = Force %0.6, e0.2
  38999. void Return %0.7
  39000. ├────── Move environment creation as far as possible: == 107
  39001. bitwAnd[0x7f92445706c0]
  39002. BB0
  39003. val^ %0.0 = LdArg 0
  39004. val^ %0.1 = LdArg 1
  39005. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39006. val %0.3 = Force! %0.0, e0.2
  39007. val^? %0.4 = LdVar b, e0.2
  39008. val %0.5 = Force %0.4, e0.2
  39009. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39010. val %0.7 = Force %0.6, e0.2
  39011. void Return %0.7
  39012. ├────── Cleanup redundant operations: == 114
  39013. bitwAnd[0x7f92445706c0]
  39014. BB0
  39015. val^ %0.0 = LdArg 0
  39016. val^ %0.1 = LdArg 1
  39017. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39018. val %0.3 = Force! %0.0, e0.2
  39019. val^? %0.4 = LdVar b, e0.2
  39020. val %0.5 = Force %0.4, e0.2
  39021. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39022. val %0.7 = Force %0.6, e0.2
  39023. void Return %0.7
  39024. ├────── Inline closures: == 121
  39025. bitwAnd[0x7f92445706c0]
  39026. BB0
  39027. val^ %0.0 = LdArg 0
  39028. val^ %0.1 = LdArg 1
  39029. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39030. val %0.3 = Force! %0.0, e0.2
  39031. val^? %0.4 = LdVar b, e0.2
  39032. val %0.5 = Force %0.4, e0.2
  39033. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39034. val %0.7 = Force %0.6, e0.2
  39035. void Return %0.7
  39036. ├────── Inline Promises: == 128
  39037. bitwAnd[0x7f92445706c0]
  39038. BB0
  39039. val^ %0.0 = LdArg 0
  39040. val^ %0.1 = LdArg 1
  39041. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39042. val %0.3 = Force! %0.0, e0.2
  39043. val^? %0.4 = LdVar b, e0.2
  39044. val %0.5 = Force %0.4, e0.2
  39045. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39046. val %0.7 = Force %0.6, e0.2
  39047. void Return %0.7
  39048. ├────── Scope resolution: == 135
  39049. bitwAnd[0x7f92445706c0]
  39050. BB0
  39051. val^ %0.0 = LdArg 0
  39052. val^ %0.1 = LdArg 1
  39053. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39054. val %0.3 = Force! %0.0, e0.2
  39055. val^? %0.4 = LdVar b, e0.2
  39056. val %0.5 = Force %0.4, e0.2
  39057. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39058. val %0.7 = Force %0.6, e0.2
  39059. void Return %0.7
  39060. ├────── Constant folding: == 142
  39061. bitwAnd[0x7f92445706c0]
  39062. BB0
  39063. val^ %0.0 = LdArg 0
  39064. val^ %0.1 = LdArg 1
  39065. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39066. val %0.3 = Force! %0.0, e0.2
  39067. val^? %0.4 = LdVar b, e0.2
  39068. val %0.5 = Force %0.4, e0.2
  39069. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39070. val %0.7 = Force %0.6, e0.2
  39071. void Return %0.7
  39072. ├────── Cleanup redundant operations: == 149
  39073. bitwAnd[0x7f92445706c0]
  39074. BB0
  39075. val^ %0.0 = LdArg 0
  39076. val^ %0.1 = LdArg 1
  39077. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39078. val %0.3 = Force! %0.0, e0.2
  39079. val^? %0.4 = LdVar b, e0.2
  39080. val %0.5 = Force %0.4, e0.2
  39081. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39082. val %0.7 = Force %0.6, e0.2
  39083. void Return %0.7
  39084. ├────── Delay instructions: == 156
  39085. bitwAnd[0x7f92445706c0]
  39086. BB0
  39087. val^ %0.0 = LdArg 0
  39088. val^ %0.1 = LdArg 1
  39089. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39090. val %0.3 = Force! %0.0, e0.2
  39091. val^? %0.4 = LdVar b, e0.2
  39092. val %0.5 = Force %0.4, e0.2
  39093. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39094. val %0.7 = Force %0.6, e0.2
  39095. void Return %0.7
  39096. ├────── Elide environments not needed: == 163
  39097. bitwAnd[0x7f92445706c0]
  39098. BB0
  39099. val^ %0.0 = LdArg 0
  39100. val^ %0.1 = LdArg 1
  39101. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39102. val %0.3 = Force! %0.0, e0.2
  39103. val^? %0.4 = LdVar b, e0.2
  39104. val %0.5 = Force %0.4, e0.2
  39105. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39106. val %0.7 = Force %0.6, e0.2
  39107. void Return %0.7
  39108. ├────── Move environment creation as far as possible: == 170
  39109. bitwAnd[0x7f92445706c0]
  39110. BB0
  39111. val^ %0.0 = LdArg 0
  39112. val^ %0.1 = LdArg 1
  39113. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39114. val %0.3 = Force! %0.0, e0.2
  39115. val^? %0.4 = LdVar b, e0.2
  39116. val %0.5 = Force %0.4, e0.2
  39117. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39118. val %0.7 = Force %0.6, e0.2
  39119. void Return %0.7
  39120. ├────── Cleanup redundant operations: == 177
  39121. bitwAnd[0x7f92445706c0]
  39122. BB0
  39123. val^ %0.0 = LdArg 0
  39124. val^ %0.1 = LdArg 1
  39125. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39126. val %0.3 = Force! %0.0, e0.2
  39127. val^? %0.4 = LdVar b, e0.2
  39128. val %0.5 = Force %0.4, e0.2
  39129. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39130. val %0.7 = Force %0.6, e0.2
  39131. void Return %0.7
  39132. ├────── Inline closures: == 184
  39133. bitwAnd[0x7f92445706c0]
  39134. BB0
  39135. val^ %0.0 = LdArg 0
  39136. val^ %0.1 = LdArg 1
  39137. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39138. val %0.3 = Force! %0.0, e0.2
  39139. val^? %0.4 = LdVar b, e0.2
  39140. val %0.5 = Force %0.4, e0.2
  39141. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39142. val %0.7 = Force %0.6, e0.2
  39143. void Return %0.7
  39144. ├────── Inline Promises: == 191
  39145. bitwAnd[0x7f92445706c0]
  39146. BB0
  39147. val^ %0.0 = LdArg 0
  39148. val^ %0.1 = LdArg 1
  39149. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39150. val %0.3 = Force! %0.0, e0.2
  39151. val^? %0.4 = LdVar b, e0.2
  39152. val %0.5 = Force %0.4, e0.2
  39153. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39154. val %0.7 = Force %0.6, e0.2
  39155. void Return %0.7
  39156. ├────── Scope resolution: == 198
  39157. bitwAnd[0x7f92445706c0]
  39158. BB0
  39159. val^ %0.0 = LdArg 0
  39160. val^ %0.1 = LdArg 1
  39161. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39162. val %0.3 = Force! %0.0, e0.2
  39163. val^? %0.4 = LdVar b, e0.2
  39164. val %0.5 = Force %0.4, e0.2
  39165. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39166. val %0.7 = Force %0.6, e0.2
  39167. void Return %0.7
  39168. ├────── Constant folding: == 205
  39169. bitwAnd[0x7f92445706c0]
  39170. BB0
  39171. val^ %0.0 = LdArg 0
  39172. val^ %0.1 = LdArg 1
  39173. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39174. val %0.3 = Force! %0.0, e0.2
  39175. val^? %0.4 = LdVar b, e0.2
  39176. val %0.5 = Force %0.4, e0.2
  39177. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39178. val %0.7 = Force %0.6, e0.2
  39179. void Return %0.7
  39180. ├────── Cleanup redundant operations: == 212
  39181. bitwAnd[0x7f92445706c0]
  39182. BB0
  39183. val^ %0.0 = LdArg 0
  39184. val^ %0.1 = LdArg 1
  39185. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39186. val %0.3 = Force! %0.0, e0.2
  39187. val^? %0.4 = LdVar b, e0.2
  39188. val %0.5 = Force %0.4, e0.2
  39189. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39190. val %0.7 = Force %0.6, e0.2
  39191. void Return %0.7
  39192. ├────── Delay instructions: == 219
  39193. bitwAnd[0x7f92445706c0]
  39194. BB0
  39195. val^ %0.0 = LdArg 0
  39196. val^ %0.1 = LdArg 1
  39197. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39198. val %0.3 = Force! %0.0, e0.2
  39199. val^? %0.4 = LdVar b, e0.2
  39200. val %0.5 = Force %0.4, e0.2
  39201. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39202. val %0.7 = Force %0.6, e0.2
  39203. void Return %0.7
  39204. ├────── Elide environments not needed: == 226
  39205. bitwAnd[0x7f92445706c0]
  39206. BB0
  39207. val^ %0.0 = LdArg 0
  39208. val^ %0.1 = LdArg 1
  39209. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39210. val %0.3 = Force! %0.0, e0.2
  39211. val^? %0.4 = LdVar b, e0.2
  39212. val %0.5 = Force %0.4, e0.2
  39213. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39214. val %0.7 = Force %0.6, e0.2
  39215. void Return %0.7
  39216. ├────── Move environment creation as far as possible: == 233
  39217. bitwAnd[0x7f92445706c0]
  39218. BB0
  39219. val^ %0.0 = LdArg 0
  39220. val^ %0.1 = LdArg 1
  39221. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39222. val %0.3 = Force! %0.0, e0.2
  39223. val^? %0.4 = LdVar b, e0.2
  39224. val %0.5 = Force %0.4, e0.2
  39225. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39226. val %0.7 = Force %0.6, e0.2
  39227. void Return %0.7
  39228. ├────── Cleanup redundant operations: == 240
  39229. bitwAnd[0x7f92445706c0]
  39230. BB0
  39231. val^ %0.0 = LdArg 0
  39232. val^ %0.1 = LdArg 1
  39233. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39234. val %0.3 = Force! %0.0, e0.2
  39235. val^? %0.4 = LdVar b, e0.2
  39236. val %0.5 = Force %0.4, e0.2
  39237. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39238. val %0.7 = Force %0.6, e0.2
  39239. void Return %0.7
  39240. ├────── Inline closures: == 247
  39241. bitwAnd[0x7f92445706c0]
  39242. BB0
  39243. val^ %0.0 = LdArg 0
  39244. val^ %0.1 = LdArg 1
  39245. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39246. val %0.3 = Force! %0.0, e0.2
  39247. val^? %0.4 = LdVar b, e0.2
  39248. val %0.5 = Force %0.4, e0.2
  39249. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39250. val %0.7 = Force %0.6, e0.2
  39251. void Return %0.7
  39252. ├────── Speculate on values to elide environments: == 254
  39253. bitwAnd[0x7f92445706c0]
  39254. BB0
  39255. val^ %0.0 = LdArg 0
  39256. val^ %0.1 = LdArg 1
  39257. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39258. val %0.3 = Force! %0.0, e0.2
  39259. val^? %0.4 = LdVar b, e0.2
  39260. val %0.5 = Force %0.4, e0.2
  39261. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39262. val %0.7 = Force %0.6, e0.2
  39263. void Return %0.7
  39264. ├────── Cleanup unused checkpoints: == 261
  39265. bitwAnd[0x7f92445706c0]
  39266. BB0
  39267. val^ %0.0 = LdArg 0
  39268. val^ %0.1 = LdArg 1
  39269. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39270. val %0.3 = Force! %0.0, e0.2
  39271. val^? %0.4 = LdVar b, e0.2
  39272. val %0.5 = Force %0.4, e0.2
  39273. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39274. val %0.7 = Force %0.6, e0.2
  39275. void Return %0.7
  39276. ├────── Inline Promises: == 268
  39277. bitwAnd[0x7f92445706c0]
  39278. BB0
  39279. val^ %0.0 = LdArg 0
  39280. val^ %0.1 = LdArg 1
  39281. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39282. val %0.3 = Force! %0.0, e0.2
  39283. val^? %0.4 = LdVar b, e0.2
  39284. val %0.5 = Force %0.4, e0.2
  39285. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39286. val %0.7 = Force %0.6, e0.2
  39287. void Return %0.7
  39288. ├────── Scope resolution: == 275
  39289. bitwAnd[0x7f92445706c0]
  39290. BB0
  39291. val^ %0.0 = LdArg 0
  39292. val^ %0.1 = LdArg 1
  39293. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39294. val %0.3 = Force! %0.0, e0.2
  39295. val^? %0.4 = LdVar b, e0.2
  39296. val %0.5 = Force %0.4, e0.2
  39297. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39298. val %0.7 = Force %0.6, e0.2
  39299. void Return %0.7
  39300. ├────── Constant folding: == 282
  39301. bitwAnd[0x7f92445706c0]
  39302. BB0
  39303. val^ %0.0 = LdArg 0
  39304. val^ %0.1 = LdArg 1
  39305. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39306. val %0.3 = Force! %0.0, e0.2
  39307. val^? %0.4 = LdVar b, e0.2
  39308. val %0.5 = Force %0.4, e0.2
  39309. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39310. val %0.7 = Force %0.6, e0.2
  39311. void Return %0.7
  39312. ├────── Cleanup redundant operations: == 289
  39313. bitwAnd[0x7f92445706c0]
  39314. BB0
  39315. val^ %0.0 = LdArg 0
  39316. val^ %0.1 = LdArg 1
  39317. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39318. val %0.3 = Force! %0.0, e0.2
  39319. val^? %0.4 = LdVar b, e0.2
  39320. val %0.5 = Force %0.4, e0.2
  39321. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39322. val %0.7 = Force %0.6, e0.2
  39323. void Return %0.7
  39324. ├────── Delay instructions: == 296
  39325. bitwAnd[0x7f92445706c0]
  39326. BB0
  39327. val^ %0.0 = LdArg 0
  39328. val^ %0.1 = LdArg 1
  39329. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39330. val %0.3 = Force! %0.0, e0.2
  39331. val^? %0.4 = LdVar b, e0.2
  39332. val %0.5 = Force %0.4, e0.2
  39333. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39334. val %0.7 = Force %0.6, e0.2
  39335. void Return %0.7
  39336. ├────── Elide environments not needed: == 303
  39337. bitwAnd[0x7f92445706c0]
  39338. BB0
  39339. val^ %0.0 = LdArg 0
  39340. val^ %0.1 = LdArg 1
  39341. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39342. val %0.3 = Force! %0.0, e0.2
  39343. val^? %0.4 = LdVar b, e0.2
  39344. val %0.5 = Force %0.4, e0.2
  39345. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39346. val %0.7 = Force %0.6, e0.2
  39347. void Return %0.7
  39348. ├────── Move environment creation as far as possible: == 310
  39349. bitwAnd[0x7f92445706c0]
  39350. BB0
  39351. val^ %0.0 = LdArg 0
  39352. val^ %0.1 = LdArg 1
  39353. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39354. val %0.3 = Force! %0.0, e0.2
  39355. val^? %0.4 = LdVar b, e0.2
  39356. val %0.5 = Force %0.4, e0.2
  39357. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39358. val %0.7 = Force %0.6, e0.2
  39359. void Return %0.7
  39360. ├────── Cleanup redundant operations: == 317
  39361. bitwAnd[0x7f92445706c0]
  39362. BB0
  39363. val^ %0.0 = LdArg 0
  39364. val^ %0.1 = LdArg 1
  39365. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39366. val %0.3 = Force! %0.0, e0.2
  39367. val^? %0.4 = LdVar b, e0.2
  39368. val %0.5 = Force %0.4, e0.2
  39369. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39370. val %0.7 = Force %0.6, e0.2
  39371. void Return %0.7
  39372. ├────── Inline closures: == 324
  39373. bitwAnd[0x7f92445706c0]
  39374. BB0
  39375. val^ %0.0 = LdArg 0
  39376. val^ %0.1 = LdArg 1
  39377. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39378. val %0.3 = Force! %0.0, e0.2
  39379. val^? %0.4 = LdVar b, e0.2
  39380. val %0.5 = Force %0.4, e0.2
  39381. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39382. val %0.7 = Force %0.6, e0.2
  39383. void Return %0.7
  39384. ├────── Inline Promises: == 331
  39385. bitwAnd[0x7f92445706c0]
  39386. BB0
  39387. val^ %0.0 = LdArg 0
  39388. val^ %0.1 = LdArg 1
  39389. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39390. val %0.3 = Force! %0.0, e0.2
  39391. val^? %0.4 = LdVar b, e0.2
  39392. val %0.5 = Force %0.4, e0.2
  39393. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39394. val %0.7 = Force %0.6, e0.2
  39395. void Return %0.7
  39396. ├────── Scope resolution: == 338
  39397. bitwAnd[0x7f92445706c0]
  39398. BB0
  39399. val^ %0.0 = LdArg 0
  39400. val^ %0.1 = LdArg 1
  39401. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39402. val %0.3 = Force! %0.0, e0.2
  39403. val^? %0.4 = LdVar b, e0.2
  39404. val %0.5 = Force %0.4, e0.2
  39405. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39406. val %0.7 = Force %0.6, e0.2
  39407. void Return %0.7
  39408. ├────── Constant folding: == 345
  39409. bitwAnd[0x7f92445706c0]
  39410. BB0
  39411. val^ %0.0 = LdArg 0
  39412. val^ %0.1 = LdArg 1
  39413. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39414. val %0.3 = Force! %0.0, e0.2
  39415. val^? %0.4 = LdVar b, e0.2
  39416. val %0.5 = Force %0.4, e0.2
  39417. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39418. val %0.7 = Force %0.6, e0.2
  39419. void Return %0.7
  39420. ├────── Cleanup redundant operations: == 352
  39421. bitwAnd[0x7f92445706c0]
  39422. BB0
  39423. val^ %0.0 = LdArg 0
  39424. val^ %0.1 = LdArg 1
  39425. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39426. val %0.3 = Force! %0.0, e0.2
  39427. val^? %0.4 = LdVar b, e0.2
  39428. val %0.5 = Force %0.4, e0.2
  39429. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39430. val %0.7 = Force %0.6, e0.2
  39431. void Return %0.7
  39432. ├────── Delay instructions: == 359
  39433. bitwAnd[0x7f92445706c0]
  39434. BB0
  39435. val^ %0.0 = LdArg 0
  39436. val^ %0.1 = LdArg 1
  39437. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39438. val %0.3 = Force! %0.0, e0.2
  39439. val^? %0.4 = LdVar b, e0.2
  39440. val %0.5 = Force %0.4, e0.2
  39441. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39442. val %0.7 = Force %0.6, e0.2
  39443. void Return %0.7
  39444. ├────── Elide environments not needed: == 366
  39445. bitwAnd[0x7f92445706c0]
  39446. BB0
  39447. val^ %0.0 = LdArg 0
  39448. val^ %0.1 = LdArg 1
  39449. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39450. val %0.3 = Force! %0.0, e0.2
  39451. val^? %0.4 = LdVar b, e0.2
  39452. val %0.5 = Force %0.4, e0.2
  39453. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39454. val %0.7 = Force %0.6, e0.2
  39455. void Return %0.7
  39456. ├────── Move environment creation as far as possible: == 373
  39457. bitwAnd[0x7f92445706c0]
  39458. BB0
  39459. val^ %0.0 = LdArg 0
  39460. val^ %0.1 = LdArg 1
  39461. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39462. val %0.3 = Force! %0.0, e0.2
  39463. val^? %0.4 = LdVar b, e0.2
  39464. val %0.5 = Force %0.4, e0.2
  39465. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39466. val %0.7 = Force %0.6, e0.2
  39467. void Return %0.7
  39468. ├────── Cleanup redundant operations: == 380
  39469. bitwAnd[0x7f92445706c0]
  39470. BB0
  39471. val^ %0.0 = LdArg 0
  39472. val^ %0.1 = LdArg 1
  39473. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39474. val %0.3 = Force! %0.0, e0.2
  39475. val^? %0.4 = LdVar b, e0.2
  39476. val %0.5 = Force %0.4, e0.2
  39477. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39478. val %0.7 = Force %0.6, e0.2
  39479. void Return %0.7
  39480. ├────── Inline closures: == 387
  39481. bitwAnd[0x7f92445706c0]
  39482. BB0
  39483. val^ %0.0 = LdArg 0
  39484. val^ %0.1 = LdArg 1
  39485. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39486. val %0.3 = Force! %0.0, e0.2
  39487. val^? %0.4 = LdVar b, e0.2
  39488. val %0.5 = Force %0.4, e0.2
  39489. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39490. val %0.7 = Force %0.6, e0.2
  39491. void Return %0.7
  39492. ├────── Inline Promises: == 394
  39493. bitwAnd[0x7f92445706c0]
  39494. BB0
  39495. val^ %0.0 = LdArg 0
  39496. val^ %0.1 = LdArg 1
  39497. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39498. val %0.3 = Force! %0.0, e0.2
  39499. val^? %0.4 = LdVar b, e0.2
  39500. val %0.5 = Force %0.4, e0.2
  39501. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39502. val %0.7 = Force %0.6, e0.2
  39503. void Return %0.7
  39504. ├────── Scope resolution: == 401
  39505. bitwAnd[0x7f92445706c0]
  39506. BB0
  39507. val^ %0.0 = LdArg 0
  39508. val^ %0.1 = LdArg 1
  39509. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39510. val %0.3 = Force! %0.0, e0.2
  39511. val^? %0.4 = LdVar b, e0.2
  39512. val %0.5 = Force %0.4, e0.2
  39513. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39514. val %0.7 = Force %0.6, e0.2
  39515. void Return %0.7
  39516. ├────── Constant folding: == 408
  39517. bitwAnd[0x7f92445706c0]
  39518. BB0
  39519. val^ %0.0 = LdArg 0
  39520. val^ %0.1 = LdArg 1
  39521. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39522. val %0.3 = Force! %0.0, e0.2
  39523. val^? %0.4 = LdVar b, e0.2
  39524. val %0.5 = Force %0.4, e0.2
  39525. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39526. val %0.7 = Force %0.6, e0.2
  39527. void Return %0.7
  39528. ├────── Cleanup redundant operations: == 415
  39529. bitwAnd[0x7f92445706c0]
  39530. BB0
  39531. val^ %0.0 = LdArg 0
  39532. val^ %0.1 = LdArg 1
  39533. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39534. val %0.3 = Force! %0.0, e0.2
  39535. val^? %0.4 = LdVar b, e0.2
  39536. val %0.5 = Force %0.4, e0.2
  39537. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39538. val %0.7 = Force %0.6, e0.2
  39539. void Return %0.7
  39540. ├────── Delay instructions: == 422
  39541. bitwAnd[0x7f92445706c0]
  39542. BB0
  39543. val^ %0.0 = LdArg 0
  39544. val^ %0.1 = LdArg 1
  39545. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39546. val %0.3 = Force! %0.0, e0.2
  39547. val^? %0.4 = LdVar b, e0.2
  39548. val %0.5 = Force %0.4, e0.2
  39549. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39550. val %0.7 = Force %0.6, e0.2
  39551. void Return %0.7
  39552. ├────── Elide environments not needed: == 429
  39553. bitwAnd[0x7f92445706c0]
  39554. BB0
  39555. val^ %0.0 = LdArg 0
  39556. val^ %0.1 = LdArg 1
  39557. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39558. val %0.3 = Force! %0.0, e0.2
  39559. val^? %0.4 = LdVar b, e0.2
  39560. val %0.5 = Force %0.4, e0.2
  39561. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39562. val %0.7 = Force %0.6, e0.2
  39563. void Return %0.7
  39564. ├────── Move environment creation as far as possible: == 436
  39565. bitwAnd[0x7f92445706c0]
  39566. BB0
  39567. val^ %0.0 = LdArg 0
  39568. val^ %0.1 = LdArg 1
  39569. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39570. val %0.3 = Force! %0.0, e0.2
  39571. val^? %0.4 = LdVar b, e0.2
  39572. val %0.5 = Force %0.4, e0.2
  39573. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39574. val %0.7 = Force %0.6, e0.2
  39575. void Return %0.7
  39576. ├────── Cleanup redundant operations: == 443
  39577. bitwAnd[0x7f92445706c0]
  39578. BB0
  39579. val^ %0.0 = LdArg 0
  39580. val^ %0.1 = LdArg 1
  39581. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39582. val %0.3 = Force! %0.0, e0.2
  39583. val^? %0.4 = LdVar b, e0.2
  39584. val %0.5 = Force %0.4, e0.2
  39585. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39586. val %0.7 = Force %0.6, e0.2
  39587. void Return %0.7
  39588. ├────── Inline closures: == 450
  39589. bitwAnd[0x7f92445706c0]
  39590. BB0
  39591. val^ %0.0 = LdArg 0
  39592. val^ %0.1 = LdArg 1
  39593. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39594. val %0.3 = Force! %0.0, e0.2
  39595. val^? %0.4 = LdVar b, e0.2
  39596. val %0.5 = Force %0.4, e0.2
  39597. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39598. val %0.7 = Force %0.6, e0.2
  39599. void Return %0.7
  39600. ├────── Inline Promises: == 457
  39601. bitwAnd[0x7f92445706c0]
  39602. BB0
  39603. val^ %0.0 = LdArg 0
  39604. val^ %0.1 = LdArg 1
  39605. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39606. val %0.3 = Force! %0.0, e0.2
  39607. val^? %0.4 = LdVar b, e0.2
  39608. val %0.5 = Force %0.4, e0.2
  39609. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39610. val %0.7 = Force %0.6, e0.2
  39611. void Return %0.7
  39612. ├────── Scope resolution: == 464
  39613. bitwAnd[0x7f92445706c0]
  39614. BB0
  39615. val^ %0.0 = LdArg 0
  39616. val^ %0.1 = LdArg 1
  39617. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39618. val %0.3 = Force! %0.0, e0.2
  39619. val^? %0.4 = LdVar b, e0.2
  39620. val %0.5 = Force %0.4, e0.2
  39621. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39622. val %0.7 = Force %0.6, e0.2
  39623. void Return %0.7
  39624. ├────── Constant folding: == 471
  39625. bitwAnd[0x7f92445706c0]
  39626. BB0
  39627. val^ %0.0 = LdArg 0
  39628. val^ %0.1 = LdArg 1
  39629. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39630. val %0.3 = Force! %0.0, e0.2
  39631. val^? %0.4 = LdVar b, e0.2
  39632. val %0.5 = Force %0.4, e0.2
  39633. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39634. val %0.7 = Force %0.6, e0.2
  39635. void Return %0.7
  39636. ├────── Cleanup redundant operations: == 478
  39637. bitwAnd[0x7f92445706c0]
  39638. BB0
  39639. val^ %0.0 = LdArg 0
  39640. val^ %0.1 = LdArg 1
  39641. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39642. val %0.3 = Force! %0.0, e0.2
  39643. val^? %0.4 = LdVar b, e0.2
  39644. val %0.5 = Force %0.4, e0.2
  39645. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39646. val %0.7 = Force %0.6, e0.2
  39647. void Return %0.7
  39648. ├────── Delay instructions: == 485
  39649. bitwAnd[0x7f92445706c0]
  39650. BB0
  39651. val^ %0.0 = LdArg 0
  39652. val^ %0.1 = LdArg 1
  39653. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39654. val %0.3 = Force! %0.0, e0.2
  39655. val^? %0.4 = LdVar b, e0.2
  39656. val %0.5 = Force %0.4, e0.2
  39657. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39658. val %0.7 = Force %0.6, e0.2
  39659. void Return %0.7
  39660. ├────── Elide environments not needed: == 492
  39661. bitwAnd[0x7f92445706c0]
  39662. BB0
  39663. val^ %0.0 = LdArg 0
  39664. val^ %0.1 = LdArg 1
  39665. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39666. val %0.3 = Force! %0.0, e0.2
  39667. val^? %0.4 = LdVar b, e0.2
  39668. val %0.5 = Force %0.4, e0.2
  39669. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39670. val %0.7 = Force %0.6, e0.2
  39671. void Return %0.7
  39672. ├────── Move environment creation as far as possible: == 499
  39673. bitwAnd[0x7f92445706c0]
  39674. BB0
  39675. val^ %0.0 = LdArg 0
  39676. val^ %0.1 = LdArg 1
  39677. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39678. val %0.3 = Force! %0.0, e0.2
  39679. val^? %0.4 = LdVar b, e0.2
  39680. val %0.5 = Force %0.4, e0.2
  39681. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39682. val %0.7 = Force %0.6, e0.2
  39683. void Return %0.7
  39684. ├────── Cleanup redundant operations: == 506
  39685. bitwAnd[0x7f92445706c0]
  39686. BB0
  39687. val^ %0.0 = LdArg 0
  39688. val^ %0.1 = LdArg 1
  39689. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39690. val %0.3 = Force! %0.0, e0.2
  39691. val^? %0.4 = LdVar b, e0.2
  39692. val %0.5 = Force %0.4, e0.2
  39693. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39694. val %0.7 = Force %0.6, e0.2
  39695. void Return %0.7
  39696. ├────── Inline closures: == 513
  39697. bitwAnd[0x7f92445706c0]
  39698. BB0
  39699. val^ %0.0 = LdArg 0
  39700. val^ %0.1 = LdArg 1
  39701. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39702. val %0.3 = Force! %0.0, e0.2
  39703. val^? %0.4 = LdVar b, e0.2
  39704. val %0.5 = Force %0.4, e0.2
  39705. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39706. val %0.7 = Force %0.6, e0.2
  39707. void Return %0.7
  39708. ├────── Speculate on values to elide environments: == 520
  39709. bitwAnd[0x7f92445706c0]
  39710. BB0
  39711. val^ %0.0 = LdArg 0
  39712. val^ %0.1 = LdArg 1
  39713. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39714. val %0.3 = Force! %0.0, e0.2
  39715. val^? %0.4 = LdVar b, e0.2
  39716. val %0.5 = Force %0.4, e0.2
  39717. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39718. val %0.7 = Force %0.6, e0.2
  39719. void Return %0.7
  39720. ├────── Cleanup unused checkpoints: == 527
  39721. bitwAnd[0x7f92445706c0]
  39722. BB0
  39723. val^ %0.0 = LdArg 0
  39724. val^ %0.1 = LdArg 1
  39725. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39726. val %0.3 = Force! %0.0, e0.2
  39727. val^? %0.4 = LdVar b, e0.2
  39728. val %0.5 = Force %0.4, e0.2
  39729. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39730. val %0.7 = Force %0.6, e0.2
  39731. void Return %0.7
  39732. ├────── Cleanup framestates unused by checkpoints: == 534
  39733. bitwAnd[0x7f92445706c0]
  39734. BB0
  39735. val^ %0.0 = LdArg 0
  39736. val^ %0.1 = LdArg 1
  39737. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39738. val %0.3 = Force! %0.0, e0.2
  39739. val^? %0.4 = LdVar b, e0.2
  39740. val %0.5 = Force %0.4, e0.2
  39741. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39742. val %0.7 = Force %0.6, e0.2
  39743. void Return %0.7
  39744. ├────── Inline Promises: == 541
  39745. bitwAnd[0x7f92445706c0]
  39746. BB0
  39747. val^ %0.0 = LdArg 0
  39748. val^ %0.1 = LdArg 1
  39749. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39750. val %0.3 = Force! %0.0, e0.2
  39751. val^? %0.4 = LdVar b, e0.2
  39752. val %0.5 = Force %0.4, e0.2
  39753. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39754. val %0.7 = Force %0.6, e0.2
  39755. void Return %0.7
  39756. ├────── Scope resolution: == 548
  39757. bitwAnd[0x7f92445706c0]
  39758. BB0
  39759. val^ %0.0 = LdArg 0
  39760. val^ %0.1 = LdArg 1
  39761. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39762. val %0.3 = Force! %0.0, e0.2
  39763. val^? %0.4 = LdVar b, e0.2
  39764. val %0.5 = Force %0.4, e0.2
  39765. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39766. val %0.7 = Force %0.6, e0.2
  39767. void Return %0.7
  39768. ├────── Constant folding: == 555
  39769. bitwAnd[0x7f92445706c0]
  39770. BB0
  39771. val^ %0.0 = LdArg 0
  39772. val^ %0.1 = LdArg 1
  39773. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39774. val %0.3 = Force! %0.0, e0.2
  39775. val^? %0.4 = LdVar b, e0.2
  39776. val %0.5 = Force %0.4, e0.2
  39777. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39778. val %0.7 = Force %0.6, e0.2
  39779. void Return %0.7
  39780. ├────── Cleanup redundant operations: == 562
  39781. bitwAnd[0x7f92445706c0]
  39782. BB0
  39783. val^ %0.0 = LdArg 0
  39784. val^ %0.1 = LdArg 1
  39785. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39786. val %0.3 = Force! %0.0, e0.2
  39787. val^? %0.4 = LdVar b, e0.2
  39788. val %0.5 = Force %0.4, e0.2
  39789. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39790. val %0.7 = Force %0.6, e0.2
  39791. void Return %0.7
  39792. ├────── Delay instructions: == 569
  39793. bitwAnd[0x7f92445706c0]
  39794. BB0
  39795. val^ %0.0 = LdArg 0
  39796. val^ %0.1 = LdArg 1
  39797. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39798. val %0.3 = Force! %0.0, e0.2
  39799. val^? %0.4 = LdVar b, e0.2
  39800. val %0.5 = Force %0.4, e0.2
  39801. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39802. val %0.7 = Force %0.6, e0.2
  39803. void Return %0.7
  39804. ├────── Elide environments not needed: == 576
  39805. bitwAnd[0x7f92445706c0]
  39806. BB0
  39807. val^ %0.0 = LdArg 0
  39808. val^ %0.1 = LdArg 1
  39809. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39810. val %0.3 = Force! %0.0, e0.2
  39811. val^? %0.4 = LdVar b, e0.2
  39812. val %0.5 = Force %0.4, e0.2
  39813. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39814. val %0.7 = Force %0.6, e0.2
  39815. void Return %0.7
  39816. ├────── Move environment creation as far as possible: == 583
  39817. bitwAnd[0x7f92445706c0]
  39818. BB0
  39819. val^ %0.0 = LdArg 0
  39820. val^ %0.1 = LdArg 1
  39821. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39822. val %0.3 = Force! %0.0, e0.2
  39823. val^? %0.4 = LdVar b, e0.2
  39824. val %0.5 = Force %0.4, e0.2
  39825. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39826. val %0.7 = Force %0.6, e0.2
  39827. void Return %0.7
  39828. ├────── Cleanup redundant operations: == 590
  39829. bitwAnd[0x7f92445706c0]
  39830. BB0
  39831. val^ %0.0 = LdArg 0
  39832. val^ %0.1 = LdArg 1
  39833. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39834. val %0.3 = Force! %0.0, e0.2
  39835. val^? %0.4 = LdVar b, e0.2
  39836. val %0.5 = Force %0.4, e0.2
  39837. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39838. val %0.7 = Force %0.6, e0.2
  39839. void Return %0.7
  39840. ├────── Inline closures: == 597
  39841. bitwAnd[0x7f92445706c0]
  39842. BB0
  39843. val^ %0.0 = LdArg 0
  39844. val^ %0.1 = LdArg 1
  39845. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39846. val %0.3 = Force! %0.0, e0.2
  39847. val^? %0.4 = LdVar b, e0.2
  39848. val %0.5 = Force %0.4, e0.2
  39849. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39850. val %0.7 = Force %0.6, e0.2
  39851. void Return %0.7
  39852. ├────── Inline Promises: == 604
  39853. bitwAnd[0x7f92445706c0]
  39854. BB0
  39855. val^ %0.0 = LdArg 0
  39856. val^ %0.1 = LdArg 1
  39857. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39858. val %0.3 = Force! %0.0, e0.2
  39859. val^? %0.4 = LdVar b, e0.2
  39860. val %0.5 = Force %0.4, e0.2
  39861. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39862. val %0.7 = Force %0.6, e0.2
  39863. void Return %0.7
  39864. ├────── Scope resolution: == 611
  39865. bitwAnd[0x7f92445706c0]
  39866. BB0
  39867. val^ %0.0 = LdArg 0
  39868. val^ %0.1 = LdArg 1
  39869. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39870. val %0.3 = Force! %0.0, e0.2
  39871. val^? %0.4 = LdVar b, e0.2
  39872. val %0.5 = Force %0.4, e0.2
  39873. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39874. val %0.7 = Force %0.6, e0.2
  39875. void Return %0.7
  39876. ├────── Constant folding: == 618
  39877. bitwAnd[0x7f92445706c0]
  39878. BB0
  39879. val^ %0.0 = LdArg 0
  39880. val^ %0.1 = LdArg 1
  39881. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39882. val %0.3 = Force! %0.0, e0.2
  39883. val^? %0.4 = LdVar b, e0.2
  39884. val %0.5 = Force %0.4, e0.2
  39885. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39886. val %0.7 = Force %0.6, e0.2
  39887. void Return %0.7
  39888. ├────── Cleanup redundant operations: == 625
  39889. bitwAnd[0x7f92445706c0]
  39890. BB0
  39891. val^ %0.0 = LdArg 0
  39892. val^ %0.1 = LdArg 1
  39893. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39894. val %0.3 = Force! %0.0, e0.2
  39895. val^? %0.4 = LdVar b, e0.2
  39896. val %0.5 = Force %0.4, e0.2
  39897. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39898. val %0.7 = Force %0.6, e0.2
  39899. void Return %0.7
  39900. ├────── Delay instructions: == 632
  39901. bitwAnd[0x7f92445706c0]
  39902. BB0
  39903. val^ %0.0 = LdArg 0
  39904. val^ %0.1 = LdArg 1
  39905. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39906. val %0.3 = Force! %0.0, e0.2
  39907. val^? %0.4 = LdVar b, e0.2
  39908. val %0.5 = Force %0.4, e0.2
  39909. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39910. val %0.7 = Force %0.6, e0.2
  39911. void Return %0.7
  39912. ├────── Elide environments not needed: == 639
  39913. bitwAnd[0x7f92445706c0]
  39914. BB0
  39915. val^ %0.0 = LdArg 0
  39916. val^ %0.1 = LdArg 1
  39917. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39918. val %0.3 = Force! %0.0, e0.2
  39919. val^? %0.4 = LdVar b, e0.2
  39920. val %0.5 = Force %0.4, e0.2
  39921. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39922. val %0.7 = Force %0.6, e0.2
  39923. void Return %0.7
  39924. ├────── Move environment creation as far as possible: == 646
  39925. bitwAnd[0x7f92445706c0]
  39926. BB0
  39927. val^ %0.0 = LdArg 0
  39928. val^ %0.1 = LdArg 1
  39929. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39930. val %0.3 = Force! %0.0, e0.2
  39931. val^? %0.4 = LdVar b, e0.2
  39932. val %0.5 = Force %0.4, e0.2
  39933. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39934. val %0.7 = Force %0.6, e0.2
  39935. void Return %0.7
  39936. ├────── Cleanup redundant operations: == 653
  39937. bitwAnd[0x7f92445706c0]
  39938. BB0
  39939. val^ %0.0 = LdArg 0
  39940. val^ %0.1 = LdArg 1
  39941. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39942. val %0.3 = Force! %0.0, e0.2
  39943. val^? %0.4 = LdVar b, e0.2
  39944. val %0.5 = Force %0.4, e0.2
  39945. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39946. val %0.7 = Force %0.6, e0.2
  39947. void Return %0.7
  39948. ├────── Inline closures: == 660
  39949. bitwAnd[0x7f92445706c0]
  39950. BB0
  39951. val^ %0.0 = LdArg 0
  39952. val^ %0.1 = LdArg 1
  39953. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39954. val %0.3 = Force! %0.0, e0.2
  39955. val^? %0.4 = LdVar b, e0.2
  39956. val %0.5 = Force %0.4, e0.2
  39957. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39958. val %0.7 = Force %0.6, e0.2
  39959. void Return %0.7
  39960. ├────── Inline Promises: == 667
  39961. bitwAnd[0x7f92445706c0]
  39962. BB0
  39963. val^ %0.0 = LdArg 0
  39964. val^ %0.1 = LdArg 1
  39965. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39966. val %0.3 = Force! %0.0, e0.2
  39967. val^? %0.4 = LdVar b, e0.2
  39968. val %0.5 = Force %0.4, e0.2
  39969. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39970. val %0.7 = Force %0.6, e0.2
  39971. void Return %0.7
  39972. ├────── Scope resolution: == 674
  39973. bitwAnd[0x7f92445706c0]
  39974. BB0
  39975. val^ %0.0 = LdArg 0
  39976. val^ %0.1 = LdArg 1
  39977. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39978. val %0.3 = Force! %0.0, e0.2
  39979. val^? %0.4 = LdVar b, e0.2
  39980. val %0.5 = Force %0.4, e0.2
  39981. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39982. val %0.7 = Force %0.6, e0.2
  39983. void Return %0.7
  39984. ├────── Constant folding: == 681
  39985. bitwAnd[0x7f92445706c0]
  39986. BB0
  39987. val^ %0.0 = LdArg 0
  39988. val^ %0.1 = LdArg 1
  39989. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  39990. val %0.3 = Force! %0.0, e0.2
  39991. val^? %0.4 = LdVar b, e0.2
  39992. val %0.5 = Force %0.4, e0.2
  39993. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  39994. val %0.7 = Force %0.6, e0.2
  39995. void Return %0.7
  39996. ├────── Cleanup redundant operations: == 688
  39997. bitwAnd[0x7f92445706c0]
  39998. BB0
  39999. val^ %0.0 = LdArg 0
  40000. val^ %0.1 = LdArg 1
  40001. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40002. val %0.3 = Force! %0.0, e0.2
  40003. val^? %0.4 = LdVar b, e0.2
  40004. val %0.5 = Force %0.4, e0.2
  40005. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40006. val %0.7 = Force %0.6, e0.2
  40007. void Return %0.7
  40008. ├────── Delay instructions: == 695
  40009. bitwAnd[0x7f92445706c0]
  40010. BB0
  40011. val^ %0.0 = LdArg 0
  40012. val^ %0.1 = LdArg 1
  40013. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40014. val %0.3 = Force! %0.0, e0.2
  40015. val^? %0.4 = LdVar b, e0.2
  40016. val %0.5 = Force %0.4, e0.2
  40017. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40018. val %0.7 = Force %0.6, e0.2
  40019. void Return %0.7
  40020. ├────── Elide environments not needed: == 702
  40021. bitwAnd[0x7f92445706c0]
  40022. BB0
  40023. val^ %0.0 = LdArg 0
  40024. val^ %0.1 = LdArg 1
  40025. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40026. val %0.3 = Force! %0.0, e0.2
  40027. val^? %0.4 = LdVar b, e0.2
  40028. val %0.5 = Force %0.4, e0.2
  40029. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40030. val %0.7 = Force %0.6, e0.2
  40031. void Return %0.7
  40032. ├────── Move environment creation as far as possible: == 709
  40033. bitwAnd[0x7f92445706c0]
  40034. BB0
  40035. val^ %0.0 = LdArg 0
  40036. val^ %0.1 = LdArg 1
  40037. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40038. val %0.3 = Force! %0.0, e0.2
  40039. val^? %0.4 = LdVar b, e0.2
  40040. val %0.5 = Force %0.4, e0.2
  40041. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40042. val %0.7 = Force %0.6, e0.2
  40043. void Return %0.7
  40044. ├────── Cleanup redundant operations: == 716
  40045. bitwAnd[0x7f92445706c0]
  40046. BB0
  40047. val^ %0.0 = LdArg 0
  40048. val^ %0.1 = LdArg 1
  40049. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40050. val %0.3 = Force! %0.0, e0.2
  40051. val^? %0.4 = LdVar b, e0.2
  40052. val %0.5 = Force %0.4, e0.2
  40053. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40054. val %0.7 = Force %0.6, e0.2
  40055. void Return %0.7
  40056. ├────── Inline closures: == 723
  40057. bitwAnd[0x7f92445706c0]
  40058. BB0
  40059. val^ %0.0 = LdArg 0
  40060. val^ %0.1 = LdArg 1
  40061. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40062. val %0.3 = Force! %0.0, e0.2
  40063. val^? %0.4 = LdVar b, e0.2
  40064. val %0.5 = Force %0.4, e0.2
  40065. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40066. val %0.7 = Force %0.6, e0.2
  40067. void Return %0.7
  40068. ├────── Inline Promises: == 730
  40069. bitwAnd[0x7f92445706c0]
  40070. BB0
  40071. val^ %0.0 = LdArg 0
  40072. val^ %0.1 = LdArg 1
  40073. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40074. val %0.3 = Force! %0.0, e0.2
  40075. val^? %0.4 = LdVar b, e0.2
  40076. val %0.5 = Force %0.4, e0.2
  40077. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40078. val %0.7 = Force %0.6, e0.2
  40079. void Return %0.7
  40080. ├────── Scope resolution: == 737
  40081. bitwAnd[0x7f92445706c0]
  40082. BB0
  40083. val^ %0.0 = LdArg 0
  40084. val^ %0.1 = LdArg 1
  40085. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40086. val %0.3 = Force! %0.0, e0.2
  40087. val^? %0.4 = LdVar b, e0.2
  40088. val %0.5 = Force %0.4, e0.2
  40089. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40090. val %0.7 = Force %0.6, e0.2
  40091. void Return %0.7
  40092. ├────── Constant folding: == 744
  40093. bitwAnd[0x7f92445706c0]
  40094. BB0
  40095. val^ %0.0 = LdArg 0
  40096. val^ %0.1 = LdArg 1
  40097. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40098. val %0.3 = Force! %0.0, e0.2
  40099. val^? %0.4 = LdVar b, e0.2
  40100. val %0.5 = Force %0.4, e0.2
  40101. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40102. val %0.7 = Force %0.6, e0.2
  40103. void Return %0.7
  40104. ├────── Cleanup redundant operations: == 751
  40105. bitwAnd[0x7f92445706c0]
  40106. BB0
  40107. val^ %0.0 = LdArg 0
  40108. val^ %0.1 = LdArg 1
  40109. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40110. val %0.3 = Force! %0.0, e0.2
  40111. val^? %0.4 = LdVar b, e0.2
  40112. val %0.5 = Force %0.4, e0.2
  40113. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40114. val %0.7 = Force %0.6, e0.2
  40115. void Return %0.7
  40116. ├────── Delay instructions: == 758
  40117. bitwAnd[0x7f92445706c0]
  40118. BB0
  40119. val^ %0.0 = LdArg 0
  40120. val^ %0.1 = LdArg 1
  40121. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40122. val %0.3 = Force! %0.0, e0.2
  40123. val^? %0.4 = LdVar b, e0.2
  40124. val %0.5 = Force %0.4, e0.2
  40125. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40126. val %0.7 = Force %0.6, e0.2
  40127. void Return %0.7
  40128. ├────── Elide environments not needed: == 765
  40129. bitwAnd[0x7f92445706c0]
  40130. BB0
  40131. val^ %0.0 = LdArg 0
  40132. val^ %0.1 = LdArg 1
  40133. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40134. val %0.3 = Force! %0.0, e0.2
  40135. val^? %0.4 = LdVar b, e0.2
  40136. val %0.5 = Force %0.4, e0.2
  40137. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40138. val %0.7 = Force %0.6, e0.2
  40139. void Return %0.7
  40140. ├────── Move environment creation as far as possible: == 772
  40141. bitwAnd[0x7f92445706c0]
  40142. BB0
  40143. val^ %0.0 = LdArg 0
  40144. val^ %0.1 = LdArg 1
  40145. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40146. val %0.3 = Force! %0.0, e0.2
  40147. val^? %0.4 = LdVar b, e0.2
  40148. val %0.5 = Force %0.4, e0.2
  40149. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40150. val %0.7 = Force %0.6, e0.2
  40151. void Return %0.7
  40152. ├────── Cleanup redundant operations: == 779
  40153. bitwAnd[0x7f92445706c0]
  40154. BB0
  40155. val^ %0.0 = LdArg 0
  40156. val^ %0.1 = LdArg 1
  40157. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40158. val %0.3 = Force! %0.0, e0.2
  40159. val^? %0.4 = LdVar b, e0.2
  40160. val %0.5 = Force %0.4, e0.2
  40161. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40162. val %0.7 = Force %0.6, e0.2
  40163. void Return %0.7
  40164. ├────── Inline closures: == 786
  40165. bitwAnd[0x7f92445706c0]
  40166. BB0
  40167. val^ %0.0 = LdArg 0
  40168. val^ %0.1 = LdArg 1
  40169. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40170. val %0.3 = Force! %0.0, e0.2
  40171. val^? %0.4 = LdVar b, e0.2
  40172. val %0.5 = Force %0.4, e0.2
  40173. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40174. val %0.7 = Force %0.6, e0.2
  40175. void Return %0.7
  40176. ├────── Speculate on values to elide environments: == 793
  40177. bitwAnd[0x7f92445706c0]
  40178. BB0
  40179. val^ %0.0 = LdArg 0
  40180. val^ %0.1 = LdArg 1
  40181. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40182. val %0.3 = Force! %0.0, e0.2
  40183. val^? %0.4 = LdVar b, e0.2
  40184. val %0.5 = Force %0.4, e0.2
  40185. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40186. val %0.7 = Force %0.6, e0.2
  40187. void Return %0.7
  40188. ├────── Cleanup unused checkpoints: == 800
  40189. bitwAnd[0x7f92445706c0]
  40190. BB0
  40191. val^ %0.0 = LdArg 0
  40192. val^ %0.1 = LdArg 1
  40193. env e0.2 = MkEnv a=%0.0, b=%0.1, parent=<environment: namespace:base>
  40194. val %0.3 = Force! %0.0, e0.2
  40195. val^? %0.4 = LdVar b, e0.2
  40196. val %0.5 = Force %0.4, e0.2
  40197. val^ %0.6 = CallBuiltin bitwiseAnd(%0.3, %0.5) e0.2
  40198. val %0.7 = Force %0.6, e0.2
  40199. void Return %0.7
  40200. │ bitwAnd[0x7f92445706c0] │
  40201. └──────────────────────────────────────────────────────────────────────────────┘
  40202.  
  40203. ┌──────────────────────────────────────────────────────────────────────────────┐
  40204. │ vector[0x7f92445590f0] │
  40205. ├────── Inline Promises: == 3
  40206. vector[0x7f92445590f0]
  40207. BB0
  40208. val^ %0.0 = LdArg 1
  40209. val^ %0.1 = LdArg 0
  40210. env e0.2 = MkEnv mode=%0.1, length=%0.0, parent=<environment: namespace:base>
  40211. val^? %0.3 = LdVar mode, e0.2
  40212. val %0.4 = Force %0.3, e0.2
  40213. val^? %0.5 = LdVar length, e0.2
  40214. val %0.6 = Force %0.5, e0.2
  40215. val %0.7 = CallSafeBuiltin vector(%0.4, %0.6)
  40216. void Return %0.7
  40217. ├────── Scope resolution: == 10
  40218. vector[0x7f92445590f0]
  40219. BB0
  40220. val^ %0.0 = LdArg 1
  40221. val^ %0.1 = LdArg 0
  40222. env e0.2 = MkEnv mode=%0.1, length=%0.0, parent=<environment: namespace:base>
  40223. val %0.3 = Force %0.1, e0.2
  40224. val^? %0.4 = LdVar length, e0.2
  40225. val %0.5 = Force %0.4, e0.2
  40226. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40227. void Return %0.6
  40228. ├────── Constant folding: == 17
  40229. vector[0x7f92445590f0]
  40230. BB0
  40231. val^ %0.0 = LdArg 1
  40232. val^ %0.1 = LdArg 0
  40233. env e0.2 = MkEnv mode=%0.1, length=%0.0, parent=<environment: namespace:base>
  40234. val %0.3 = Force %0.1, e0.2
  40235. val^? %0.4 = LdVar length, e0.2
  40236. val %0.5 = Force %0.4, e0.2
  40237. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40238. void Return %0.6
  40239. ├────── Cleanup redundant operations: == 24
  40240. vector[0x7f92445590f0]
  40241. BB0
  40242. val^ %0.0 = LdArg 1
  40243. val^ %0.1 = LdArg 0
  40244. env e0.2 = MkEnv mode=%0.1, length=%0.0, parent=<environment: namespace:base>
  40245. val %0.3 = Force %0.1, e0.2
  40246. val^? %0.4 = LdVar length, e0.2
  40247. val %0.5 = Force %0.4, e0.2
  40248. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40249. void Return %0.6
  40250. ├────── Delay instructions: == 31
  40251. vector[0x7f92445590f0]
  40252. BB0
  40253. val^ %0.0 = LdArg 0
  40254. val^ %0.1 = LdArg 1
  40255. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40256. val %0.3 = Force %0.0, e0.2
  40257. val^? %0.4 = LdVar length, e0.2
  40258. val %0.5 = Force %0.4, e0.2
  40259. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40260. void Return %0.6
  40261. ├────── Elide environments not needed: == 38
  40262. vector[0x7f92445590f0]
  40263. BB0
  40264. val^ %0.0 = LdArg 0
  40265. val^ %0.1 = LdArg 1
  40266. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40267. val %0.3 = Force %0.0, e0.2
  40268. val^? %0.4 = LdVar length, e0.2
  40269. val %0.5 = Force %0.4, e0.2
  40270. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40271. void Return %0.6
  40272. ├────── Move environment creation as far as possible: == 45
  40273. vector[0x7f92445590f0]
  40274. BB0
  40275. val^ %0.0 = LdArg 0
  40276. val^ %0.1 = LdArg 1
  40277. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40278. val %0.3 = Force %0.0, e0.2
  40279. val^? %0.4 = LdVar length, e0.2
  40280. val %0.5 = Force %0.4, e0.2
  40281. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40282. void Return %0.6
  40283. ├────── Cleanup redundant operations: == 52
  40284. vector[0x7f92445590f0]
  40285. BB0
  40286. val^ %0.0 = LdArg 0
  40287. val^ %0.1 = LdArg 1
  40288. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40289. val %0.3 = Force %0.0, e0.2
  40290. val^? %0.4 = LdVar length, e0.2
  40291. val %0.5 = Force %0.4, e0.2
  40292. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40293. void Return %0.6
  40294. ├────── Inline closures: == 59
  40295. vector[0x7f92445590f0]
  40296. BB0
  40297. val^ %0.0 = LdArg 0
  40298. val^ %0.1 = LdArg 1
  40299. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40300. val %0.3 = Force %0.0, e0.2
  40301. val^? %0.4 = LdVar length, e0.2
  40302. val %0.5 = Force %0.4, e0.2
  40303. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40304. void Return %0.6
  40305. ├────── Inline Promises: == 66
  40306. vector[0x7f92445590f0]
  40307. BB0
  40308. val^ %0.0 = LdArg 0
  40309. val^ %0.1 = LdArg 1
  40310. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40311. val %0.3 = Force! %0.0, e0.2
  40312. val^? %0.4 = LdVar length, e0.2
  40313. val %0.5 = Force %0.4, e0.2
  40314. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40315. void Return %0.6
  40316. ├────── Scope resolution: == 73
  40317. vector[0x7f92445590f0]
  40318. BB0
  40319. val^ %0.0 = LdArg 0
  40320. val^ %0.1 = LdArg 1
  40321. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40322. val %0.3 = Force! %0.0, e0.2
  40323. val^? %0.4 = LdVar length, e0.2
  40324. val %0.5 = Force %0.4, e0.2
  40325. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40326. void Return %0.6
  40327. ├────── Constant folding: == 80
  40328. vector[0x7f92445590f0]
  40329. BB0
  40330. val^ %0.0 = LdArg 0
  40331. val^ %0.1 = LdArg 1
  40332. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40333. val %0.3 = Force! %0.0, e0.2
  40334. val^? %0.4 = LdVar length, e0.2
  40335. val %0.5 = Force %0.4, e0.2
  40336. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40337. void Return %0.6
  40338. ├────── Cleanup redundant operations: == 87
  40339. vector[0x7f92445590f0]
  40340. BB0
  40341. val^ %0.0 = LdArg 0
  40342. val^ %0.1 = LdArg 1
  40343. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40344. val %0.3 = Force! %0.0, e0.2
  40345. val^? %0.4 = LdVar length, e0.2
  40346. val %0.5 = Force %0.4, e0.2
  40347. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40348. void Return %0.6
  40349. ├────── Delay instructions: == 94
  40350. vector[0x7f92445590f0]
  40351. BB0
  40352. val^ %0.0 = LdArg 0
  40353. val^ %0.1 = LdArg 1
  40354. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40355. val %0.3 = Force! %0.0, e0.2
  40356. val^? %0.4 = LdVar length, e0.2
  40357. val %0.5 = Force %0.4, e0.2
  40358. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40359. void Return %0.6
  40360. ├────── Elide environments not needed: == 101
  40361. vector[0x7f92445590f0]
  40362. BB0
  40363. val^ %0.0 = LdArg 0
  40364. val^ %0.1 = LdArg 1
  40365. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40366. val %0.3 = Force! %0.0, e0.2
  40367. val^? %0.4 = LdVar length, e0.2
  40368. val %0.5 = Force %0.4, e0.2
  40369. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40370. void Return %0.6
  40371. ├────── Move environment creation as far as possible: == 108
  40372. vector[0x7f92445590f0]
  40373. BB0
  40374. val^ %0.0 = LdArg 0
  40375. val^ %0.1 = LdArg 1
  40376. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40377. val %0.3 = Force! %0.0, e0.2
  40378. val^? %0.4 = LdVar length, e0.2
  40379. val %0.5 = Force %0.4, e0.2
  40380. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40381. void Return %0.6
  40382. ├────── Cleanup redundant operations: == 115
  40383. vector[0x7f92445590f0]
  40384. BB0
  40385. val^ %0.0 = LdArg 0
  40386. val^ %0.1 = LdArg 1
  40387. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40388. val %0.3 = Force! %0.0, e0.2
  40389. val^? %0.4 = LdVar length, e0.2
  40390. val %0.5 = Force %0.4, e0.2
  40391. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40392. void Return %0.6
  40393. ├────── Inline closures: == 122
  40394. vector[0x7f92445590f0]
  40395. BB0
  40396. val^ %0.0 = LdArg 0
  40397. val^ %0.1 = LdArg 1
  40398. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40399. val %0.3 = Force! %0.0, e0.2
  40400. val^? %0.4 = LdVar length, e0.2
  40401. val %0.5 = Force %0.4, e0.2
  40402. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40403. void Return %0.6
  40404. ├────── Inline Promises: == 129
  40405. vector[0x7f92445590f0]
  40406. BB0
  40407. val^ %0.0 = LdArg 0
  40408. val^ %0.1 = LdArg 1
  40409. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40410. val %0.3 = Force! %0.0, e0.2
  40411. val^? %0.4 = LdVar length, e0.2
  40412. val %0.5 = Force %0.4, e0.2
  40413. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40414. void Return %0.6
  40415. ├────── Scope resolution: == 136
  40416. vector[0x7f92445590f0]
  40417. BB0
  40418. val^ %0.0 = LdArg 0
  40419. val^ %0.1 = LdArg 1
  40420. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40421. val %0.3 = Force! %0.0, e0.2
  40422. val^? %0.4 = LdVar length, e0.2
  40423. val %0.5 = Force %0.4, e0.2
  40424. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40425. void Return %0.6
  40426. ├────── Constant folding: == 143
  40427. vector[0x7f92445590f0]
  40428. BB0
  40429. val^ %0.0 = LdArg 0
  40430. val^ %0.1 = LdArg 1
  40431. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40432. val %0.3 = Force! %0.0, e0.2
  40433. val^? %0.4 = LdVar length, e0.2
  40434. val %0.5 = Force %0.4, e0.2
  40435. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40436. void Return %0.6
  40437. ├────── Cleanup redundant operations: == 150
  40438. vector[0x7f92445590f0]
  40439. BB0
  40440. val^ %0.0 = LdArg 0
  40441. val^ %0.1 = LdArg 1
  40442. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40443. val %0.3 = Force! %0.0, e0.2
  40444. val^? %0.4 = LdVar length, e0.2
  40445. val %0.5 = Force %0.4, e0.2
  40446. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40447. void Return %0.6
  40448. ├────── Delay instructions: == 157
  40449. vector[0x7f92445590f0]
  40450. BB0
  40451. val^ %0.0 = LdArg 0
  40452. val^ %0.1 = LdArg 1
  40453. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40454. val %0.3 = Force! %0.0, e0.2
  40455. val^? %0.4 = LdVar length, e0.2
  40456. val %0.5 = Force %0.4, e0.2
  40457. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40458. void Return %0.6
  40459. ├────── Elide environments not needed: == 164
  40460. vector[0x7f92445590f0]
  40461. BB0
  40462. val^ %0.0 = LdArg 0
  40463. val^ %0.1 = LdArg 1
  40464. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40465. val %0.3 = Force! %0.0, e0.2
  40466. val^? %0.4 = LdVar length, e0.2
  40467. val %0.5 = Force %0.4, e0.2
  40468. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40469. void Return %0.6
  40470. ├────── Move environment creation as far as possible: == 171
  40471. vector[0x7f92445590f0]
  40472. BB0
  40473. val^ %0.0 = LdArg 0
  40474. val^ %0.1 = LdArg 1
  40475. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40476. val %0.3 = Force! %0.0, e0.2
  40477. val^? %0.4 = LdVar length, e0.2
  40478. val %0.5 = Force %0.4, e0.2
  40479. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40480. void Return %0.6
  40481. ├────── Cleanup redundant operations: == 178
  40482. vector[0x7f92445590f0]
  40483. BB0
  40484. val^ %0.0 = LdArg 0
  40485. val^ %0.1 = LdArg 1
  40486. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40487. val %0.3 = Force! %0.0, e0.2
  40488. val^? %0.4 = LdVar length, e0.2
  40489. val %0.5 = Force %0.4, e0.2
  40490. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40491. void Return %0.6
  40492. ├────── Inline closures: == 185
  40493. vector[0x7f92445590f0]
  40494. BB0
  40495. val^ %0.0 = LdArg 0
  40496. val^ %0.1 = LdArg 1
  40497. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40498. val %0.3 = Force! %0.0, e0.2
  40499. val^? %0.4 = LdVar length, e0.2
  40500. val %0.5 = Force %0.4, e0.2
  40501. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40502. void Return %0.6
  40503. ├────── Inline Promises: == 192
  40504. vector[0x7f92445590f0]
  40505. BB0
  40506. val^ %0.0 = LdArg 0
  40507. val^ %0.1 = LdArg 1
  40508. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40509. val %0.3 = Force! %0.0, e0.2
  40510. val^? %0.4 = LdVar length, e0.2
  40511. val %0.5 = Force %0.4, e0.2
  40512. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40513. void Return %0.6
  40514. ├────── Scope resolution: == 199
  40515. vector[0x7f92445590f0]
  40516. BB0
  40517. val^ %0.0 = LdArg 0
  40518. val^ %0.1 = LdArg 1
  40519. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40520. val %0.3 = Force! %0.0, e0.2
  40521. val^? %0.4 = LdVar length, e0.2
  40522. val %0.5 = Force %0.4, e0.2
  40523. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40524. void Return %0.6
  40525. ├────── Constant folding: == 206
  40526. vector[0x7f92445590f0]
  40527. BB0
  40528. val^ %0.0 = LdArg 0
  40529. val^ %0.1 = LdArg 1
  40530. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40531. val %0.3 = Force! %0.0, e0.2
  40532. val^? %0.4 = LdVar length, e0.2
  40533. val %0.5 = Force %0.4, e0.2
  40534. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40535. void Return %0.6
  40536. ├────── Cleanup redundant operations: == 213
  40537. vector[0x7f92445590f0]
  40538. BB0
  40539. val^ %0.0 = LdArg 0
  40540. val^ %0.1 = LdArg 1
  40541. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40542. val %0.3 = Force! %0.0, e0.2
  40543. val^? %0.4 = LdVar length, e0.2
  40544. val %0.5 = Force %0.4, e0.2
  40545. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40546. void Return %0.6
  40547. ├────── Delay instructions: == 220
  40548. vector[0x7f92445590f0]
  40549. BB0
  40550. val^ %0.0 = LdArg 0
  40551. val^ %0.1 = LdArg 1
  40552. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40553. val %0.3 = Force! %0.0, e0.2
  40554. val^? %0.4 = LdVar length, e0.2
  40555. val %0.5 = Force %0.4, e0.2
  40556. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40557. void Return %0.6
  40558. ├────── Elide environments not needed: == 227
  40559. vector[0x7f92445590f0]
  40560. BB0
  40561. val^ %0.0 = LdArg 0
  40562. val^ %0.1 = LdArg 1
  40563. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40564. val %0.3 = Force! %0.0, e0.2
  40565. val^? %0.4 = LdVar length, e0.2
  40566. val %0.5 = Force %0.4, e0.2
  40567. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40568. void Return %0.6
  40569. ├────── Move environment creation as far as possible: == 234
  40570. vector[0x7f92445590f0]
  40571. BB0
  40572. val^ %0.0 = LdArg 0
  40573. val^ %0.1 = LdArg 1
  40574. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40575. val %0.3 = Force! %0.0, e0.2
  40576. val^? %0.4 = LdVar length, e0.2
  40577. val %0.5 = Force %0.4, e0.2
  40578. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40579. void Return %0.6
  40580. ├────── Cleanup redundant operations: == 241
  40581. vector[0x7f92445590f0]
  40582. BB0
  40583. val^ %0.0 = LdArg 0
  40584. val^ %0.1 = LdArg 1
  40585. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40586. val %0.3 = Force! %0.0, e0.2
  40587. val^? %0.4 = LdVar length, e0.2
  40588. val %0.5 = Force %0.4, e0.2
  40589. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40590. void Return %0.6
  40591. ├────── Inline closures: == 248
  40592. vector[0x7f92445590f0]
  40593. BB0
  40594. val^ %0.0 = LdArg 0
  40595. val^ %0.1 = LdArg 1
  40596. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40597. val %0.3 = Force! %0.0, e0.2
  40598. val^? %0.4 = LdVar length, e0.2
  40599. val %0.5 = Force %0.4, e0.2
  40600. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40601. void Return %0.6
  40602. ├────── Speculate on values to elide environments: == 255
  40603. vector[0x7f92445590f0]
  40604. BB0
  40605. val^ %0.0 = LdArg 0
  40606. val^ %0.1 = LdArg 1
  40607. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40608. val %0.3 = Force! %0.0, e0.2
  40609. val^? %0.4 = LdVar length, e0.2
  40610. val %0.5 = Force %0.4, e0.2
  40611. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40612. void Return %0.6
  40613. ├────── Cleanup unused checkpoints: == 262
  40614. vector[0x7f92445590f0]
  40615. BB0
  40616. val^ %0.0 = LdArg 0
  40617. val^ %0.1 = LdArg 1
  40618. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40619. val %0.3 = Force! %0.0, e0.2
  40620. val^? %0.4 = LdVar length, e0.2
  40621. val %0.5 = Force %0.4, e0.2
  40622. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40623. void Return %0.6
  40624. ├────── Inline Promises: == 269
  40625. vector[0x7f92445590f0]
  40626. BB0
  40627. val^ %0.0 = LdArg 0
  40628. val^ %0.1 = LdArg 1
  40629. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40630. val %0.3 = Force! %0.0, e0.2
  40631. val^? %0.4 = LdVar length, e0.2
  40632. val %0.5 = Force %0.4, e0.2
  40633. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40634. void Return %0.6
  40635. ├────── Scope resolution: == 276
  40636. vector[0x7f92445590f0]
  40637. BB0
  40638. val^ %0.0 = LdArg 0
  40639. val^ %0.1 = LdArg 1
  40640. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40641. val %0.3 = Force! %0.0, e0.2
  40642. val^? %0.4 = LdVar length, e0.2
  40643. val %0.5 = Force %0.4, e0.2
  40644. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40645. void Return %0.6
  40646. ├────── Constant folding: == 283
  40647. vector[0x7f92445590f0]
  40648. BB0
  40649. val^ %0.0 = LdArg 0
  40650. val^ %0.1 = LdArg 1
  40651. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40652. val %0.3 = Force! %0.0, e0.2
  40653. val^? %0.4 = LdVar length, e0.2
  40654. val %0.5 = Force %0.4, e0.2
  40655. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40656. void Return %0.6
  40657. ├────── Cleanup redundant operations: == 290
  40658. vector[0x7f92445590f0]
  40659. BB0
  40660. val^ %0.0 = LdArg 0
  40661. val^ %0.1 = LdArg 1
  40662. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40663. val %0.3 = Force! %0.0, e0.2
  40664. val^? %0.4 = LdVar length, e0.2
  40665. val %0.5 = Force %0.4, e0.2
  40666. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40667. void Return %0.6
  40668. ├────── Delay instructions: == 297
  40669. vector[0x7f92445590f0]
  40670. BB0
  40671. val^ %0.0 = LdArg 0
  40672. val^ %0.1 = LdArg 1
  40673. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40674. val %0.3 = Force! %0.0, e0.2
  40675. val^? %0.4 = LdVar length, e0.2
  40676. val %0.5 = Force %0.4, e0.2
  40677. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40678. void Return %0.6
  40679. ├────── Elide environments not needed: == 304
  40680. vector[0x7f92445590f0]
  40681. BB0
  40682. val^ %0.0 = LdArg 0
  40683. val^ %0.1 = LdArg 1
  40684. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40685. val %0.3 = Force! %0.0, e0.2
  40686. val^? %0.4 = LdVar length, e0.2
  40687. val %0.5 = Force %0.4, e0.2
  40688. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40689. void Return %0.6
  40690. ├────── Move environment creation as far as possible: == 311
  40691. vector[0x7f92445590f0]
  40692. BB0
  40693. val^ %0.0 = LdArg 0
  40694. val^ %0.1 = LdArg 1
  40695. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40696. val %0.3 = Force! %0.0, e0.2
  40697. val^? %0.4 = LdVar length, e0.2
  40698. val %0.5 = Force %0.4, e0.2
  40699. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40700. void Return %0.6
  40701. ├────── Cleanup redundant operations: == 318
  40702. vector[0x7f92445590f0]
  40703. BB0
  40704. val^ %0.0 = LdArg 0
  40705. val^ %0.1 = LdArg 1
  40706. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40707. val %0.3 = Force! %0.0, e0.2
  40708. val^? %0.4 = LdVar length, e0.2
  40709. val %0.5 = Force %0.4, e0.2
  40710. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40711. void Return %0.6
  40712. ├────── Inline closures: == 325
  40713. vector[0x7f92445590f0]
  40714. BB0
  40715. val^ %0.0 = LdArg 0
  40716. val^ %0.1 = LdArg 1
  40717. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40718. val %0.3 = Force! %0.0, e0.2
  40719. val^? %0.4 = LdVar length, e0.2
  40720. val %0.5 = Force %0.4, e0.2
  40721. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40722. void Return %0.6
  40723. ├────── Inline Promises: == 332
  40724. vector[0x7f92445590f0]
  40725. BB0
  40726. val^ %0.0 = LdArg 0
  40727. val^ %0.1 = LdArg 1
  40728. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40729. val %0.3 = Force! %0.0, e0.2
  40730. val^? %0.4 = LdVar length, e0.2
  40731. val %0.5 = Force %0.4, e0.2
  40732. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40733. void Return %0.6
  40734. ├────── Scope resolution: == 339
  40735. vector[0x7f92445590f0]
  40736. BB0
  40737. val^ %0.0 = LdArg 0
  40738. val^ %0.1 = LdArg 1
  40739. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40740. val %0.3 = Force! %0.0, e0.2
  40741. val^? %0.4 = LdVar length, e0.2
  40742. val %0.5 = Force %0.4, e0.2
  40743. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40744. void Return %0.6
  40745. ├────── Constant folding: == 346
  40746. vector[0x7f92445590f0]
  40747. BB0
  40748. val^ %0.0 = LdArg 0
  40749. val^ %0.1 = LdArg 1
  40750. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40751. val %0.3 = Force! %0.0, e0.2
  40752. val^? %0.4 = LdVar length, e0.2
  40753. val %0.5 = Force %0.4, e0.2
  40754. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40755. void Return %0.6
  40756. ├────── Cleanup redundant operations: == 353
  40757. vector[0x7f92445590f0]
  40758. BB0
  40759. val^ %0.0 = LdArg 0
  40760. val^ %0.1 = LdArg 1
  40761. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40762. val %0.3 = Force! %0.0, e0.2
  40763. val^? %0.4 = LdVar length, e0.2
  40764. val %0.5 = Force %0.4, e0.2
  40765. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40766. void Return %0.6
  40767. ├────── Delay instructions: == 360
  40768. vector[0x7f92445590f0]
  40769. BB0
  40770. val^ %0.0 = LdArg 0
  40771. val^ %0.1 = LdArg 1
  40772. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40773. val %0.3 = Force! %0.0, e0.2
  40774. val^? %0.4 = LdVar length, e0.2
  40775. val %0.5 = Force %0.4, e0.2
  40776. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40777. void Return %0.6
  40778. ├────── Elide environments not needed: == 367
  40779. vector[0x7f92445590f0]
  40780. BB0
  40781. val^ %0.0 = LdArg 0
  40782. val^ %0.1 = LdArg 1
  40783. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40784. val %0.3 = Force! %0.0, e0.2
  40785. val^? %0.4 = LdVar length, e0.2
  40786. val %0.5 = Force %0.4, e0.2
  40787. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40788. void Return %0.6
  40789. ├────── Move environment creation as far as possible: == 374
  40790. vector[0x7f92445590f0]
  40791. BB0
  40792. val^ %0.0 = LdArg 0
  40793. val^ %0.1 = LdArg 1
  40794. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40795. val %0.3 = Force! %0.0, e0.2
  40796. val^? %0.4 = LdVar length, e0.2
  40797. val %0.5 = Force %0.4, e0.2
  40798. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40799. void Return %0.6
  40800. ├────── Cleanup redundant operations: == 381
  40801. vector[0x7f92445590f0]
  40802. BB0
  40803. val^ %0.0 = LdArg 0
  40804. val^ %0.1 = LdArg 1
  40805. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40806. val %0.3 = Force! %0.0, e0.2
  40807. val^? %0.4 = LdVar length, e0.2
  40808. val %0.5 = Force %0.4, e0.2
  40809. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40810. void Return %0.6
  40811. ├────── Inline closures: == 388
  40812. vector[0x7f92445590f0]
  40813. BB0
  40814. val^ %0.0 = LdArg 0
  40815. val^ %0.1 = LdArg 1
  40816. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40817. val %0.3 = Force! %0.0, e0.2
  40818. val^? %0.4 = LdVar length, e0.2
  40819. val %0.5 = Force %0.4, e0.2
  40820. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40821. void Return %0.6
  40822. ├────── Inline Promises: == 395
  40823. vector[0x7f92445590f0]
  40824. BB0
  40825. val^ %0.0 = LdArg 0
  40826. val^ %0.1 = LdArg 1
  40827. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40828. val %0.3 = Force! %0.0, e0.2
  40829. val^? %0.4 = LdVar length, e0.2
  40830. val %0.5 = Force %0.4, e0.2
  40831. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40832. void Return %0.6
  40833. ├────── Scope resolution: == 402
  40834. vector[0x7f92445590f0]
  40835. BB0
  40836. val^ %0.0 = LdArg 0
  40837. val^ %0.1 = LdArg 1
  40838. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40839. val %0.3 = Force! %0.0, e0.2
  40840. val^? %0.4 = LdVar length, e0.2
  40841. val %0.5 = Force %0.4, e0.2
  40842. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40843. void Return %0.6
  40844. ├────── Constant folding: == 409
  40845. vector[0x7f92445590f0]
  40846. BB0
  40847. val^ %0.0 = LdArg 0
  40848. val^ %0.1 = LdArg 1
  40849. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40850. val %0.3 = Force! %0.0, e0.2
  40851. val^? %0.4 = LdVar length, e0.2
  40852. val %0.5 = Force %0.4, e0.2
  40853. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40854. void Return %0.6
  40855. ├────── Cleanup redundant operations: == 416
  40856. vector[0x7f92445590f0]
  40857. BB0
  40858. val^ %0.0 = LdArg 0
  40859. val^ %0.1 = LdArg 1
  40860. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40861. val %0.3 = Force! %0.0, e0.2
  40862. val^? %0.4 = LdVar length, e0.2
  40863. val %0.5 = Force %0.4, e0.2
  40864. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40865. void Return %0.6
  40866. ├────── Delay instructions: == 423
  40867. vector[0x7f92445590f0]
  40868. BB0
  40869. val^ %0.0 = LdArg 0
  40870. val^ %0.1 = LdArg 1
  40871. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40872. val %0.3 = Force! %0.0, e0.2
  40873. val^? %0.4 = LdVar length, e0.2
  40874. val %0.5 = Force %0.4, e0.2
  40875. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40876. void Return %0.6
  40877. ├────── Elide environments not needed: == 430
  40878. vector[0x7f92445590f0]
  40879. BB0
  40880. val^ %0.0 = LdArg 0
  40881. val^ %0.1 = LdArg 1
  40882. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40883. val %0.3 = Force! %0.0, e0.2
  40884. val^? %0.4 = LdVar length, e0.2
  40885. val %0.5 = Force %0.4, e0.2
  40886. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40887. void Return %0.6
  40888. ├────── Move environment creation as far as possible: == 437
  40889. vector[0x7f92445590f0]
  40890. BB0
  40891. val^ %0.0 = LdArg 0
  40892. val^ %0.1 = LdArg 1
  40893. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40894. val %0.3 = Force! %0.0, e0.2
  40895. val^? %0.4 = LdVar length, e0.2
  40896. val %0.5 = Force %0.4, e0.2
  40897. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40898. void Return %0.6
  40899. ├────── Cleanup redundant operations: == 444
  40900. vector[0x7f92445590f0]
  40901. BB0
  40902. val^ %0.0 = LdArg 0
  40903. val^ %0.1 = LdArg 1
  40904. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40905. val %0.3 = Force! %0.0, e0.2
  40906. val^? %0.4 = LdVar length, e0.2
  40907. val %0.5 = Force %0.4, e0.2
  40908. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40909. void Return %0.6
  40910. ├────── Inline closures: == 451
  40911. vector[0x7f92445590f0]
  40912. BB0
  40913. val^ %0.0 = LdArg 0
  40914. val^ %0.1 = LdArg 1
  40915. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40916. val %0.3 = Force! %0.0, e0.2
  40917. val^? %0.4 = LdVar length, e0.2
  40918. val %0.5 = Force %0.4, e0.2
  40919. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40920. void Return %0.6
  40921. ├────── Inline Promises: == 458
  40922. vector[0x7f92445590f0]
  40923. BB0
  40924. val^ %0.0 = LdArg 0
  40925. val^ %0.1 = LdArg 1
  40926. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40927. val %0.3 = Force! %0.0, e0.2
  40928. val^? %0.4 = LdVar length, e0.2
  40929. val %0.5 = Force %0.4, e0.2
  40930. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40931. void Return %0.6
  40932. ├────── Scope resolution: == 465
  40933. vector[0x7f92445590f0]
  40934. BB0
  40935. val^ %0.0 = LdArg 0
  40936. val^ %0.1 = LdArg 1
  40937. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40938. val %0.3 = Force! %0.0, e0.2
  40939. val^? %0.4 = LdVar length, e0.2
  40940. val %0.5 = Force %0.4, e0.2
  40941. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40942. void Return %0.6
  40943. ├────── Constant folding: == 472
  40944. vector[0x7f92445590f0]
  40945. BB0
  40946. val^ %0.0 = LdArg 0
  40947. val^ %0.1 = LdArg 1
  40948. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40949. val %0.3 = Force! %0.0, e0.2
  40950. val^? %0.4 = LdVar length, e0.2
  40951. val %0.5 = Force %0.4, e0.2
  40952. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40953. void Return %0.6
  40954. ├────── Cleanup redundant operations: == 479
  40955. vector[0x7f92445590f0]
  40956. BB0
  40957. val^ %0.0 = LdArg 0
  40958. val^ %0.1 = LdArg 1
  40959. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40960. val %0.3 = Force! %0.0, e0.2
  40961. val^? %0.4 = LdVar length, e0.2
  40962. val %0.5 = Force %0.4, e0.2
  40963. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40964. void Return %0.6
  40965. ├────── Delay instructions: == 486
  40966. vector[0x7f92445590f0]
  40967. BB0
  40968. val^ %0.0 = LdArg 0
  40969. val^ %0.1 = LdArg 1
  40970. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40971. val %0.3 = Force! %0.0, e0.2
  40972. val^? %0.4 = LdVar length, e0.2
  40973. val %0.5 = Force %0.4, e0.2
  40974. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40975. void Return %0.6
  40976. ├────── Elide environments not needed: == 493
  40977. vector[0x7f92445590f0]
  40978. BB0
  40979. val^ %0.0 = LdArg 0
  40980. val^ %0.1 = LdArg 1
  40981. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40982. val %0.3 = Force! %0.0, e0.2
  40983. val^? %0.4 = LdVar length, e0.2
  40984. val %0.5 = Force %0.4, e0.2
  40985. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40986. void Return %0.6
  40987. ├────── Move environment creation as far as possible: == 500
  40988. vector[0x7f92445590f0]
  40989. BB0
  40990. val^ %0.0 = LdArg 0
  40991. val^ %0.1 = LdArg 1
  40992. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  40993. val %0.3 = Force! %0.0, e0.2
  40994. val^? %0.4 = LdVar length, e0.2
  40995. val %0.5 = Force %0.4, e0.2
  40996. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  40997. void Return %0.6
  40998. ├────── Cleanup redundant operations: == 507
  40999. vector[0x7f92445590f0]
  41000. BB0
  41001. val^ %0.0 = LdArg 0
  41002. val^ %0.1 = LdArg 1
  41003. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41004. val %0.3 = Force! %0.0, e0.2
  41005. val^? %0.4 = LdVar length, e0.2
  41006. val %0.5 = Force %0.4, e0.2
  41007. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41008. void Return %0.6
  41009. ├────── Inline closures: == 514
  41010. vector[0x7f92445590f0]
  41011. BB0
  41012. val^ %0.0 = LdArg 0
  41013. val^ %0.1 = LdArg 1
  41014. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41015. val %0.3 = Force! %0.0, e0.2
  41016. val^? %0.4 = LdVar length, e0.2
  41017. val %0.5 = Force %0.4, e0.2
  41018. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41019. void Return %0.6
  41020. ├────── Speculate on values to elide environments: == 521
  41021. vector[0x7f92445590f0]
  41022. BB0
  41023. val^ %0.0 = LdArg 0
  41024. val^ %0.1 = LdArg 1
  41025. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41026. val %0.3 = Force! %0.0, e0.2
  41027. val^? %0.4 = LdVar length, e0.2
  41028. val %0.5 = Force %0.4, e0.2
  41029. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41030. void Return %0.6
  41031. ├────── Cleanup unused checkpoints: == 528
  41032. vector[0x7f92445590f0]
  41033. BB0
  41034. val^ %0.0 = LdArg 0
  41035. val^ %0.1 = LdArg 1
  41036. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41037. val %0.3 = Force! %0.0, e0.2
  41038. val^? %0.4 = LdVar length, e0.2
  41039. val %0.5 = Force %0.4, e0.2
  41040. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41041. void Return %0.6
  41042. ├────── Cleanup framestates unused by checkpoints: == 535
  41043. vector[0x7f92445590f0]
  41044. BB0
  41045. val^ %0.0 = LdArg 0
  41046. val^ %0.1 = LdArg 1
  41047. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41048. val %0.3 = Force! %0.0, e0.2
  41049. val^? %0.4 = LdVar length, e0.2
  41050. val %0.5 = Force %0.4, e0.2
  41051. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41052. void Return %0.6
  41053. ├────── Inline Promises: == 542
  41054. vector[0x7f92445590f0]
  41055. BB0
  41056. val^ %0.0 = LdArg 0
  41057. val^ %0.1 = LdArg 1
  41058. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41059. val %0.3 = Force! %0.0, e0.2
  41060. val^? %0.4 = LdVar length, e0.2
  41061. val %0.5 = Force %0.4, e0.2
  41062. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41063. void Return %0.6
  41064. ├────── Scope resolution: == 549
  41065. vector[0x7f92445590f0]
  41066. BB0
  41067. val^ %0.0 = LdArg 0
  41068. val^ %0.1 = LdArg 1
  41069. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41070. val %0.3 = Force! %0.0, e0.2
  41071. val^? %0.4 = LdVar length, e0.2
  41072. val %0.5 = Force %0.4, e0.2
  41073. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41074. void Return %0.6
  41075. ├────── Constant folding: == 556
  41076. vector[0x7f92445590f0]
  41077. BB0
  41078. val^ %0.0 = LdArg 0
  41079. val^ %0.1 = LdArg 1
  41080. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41081. val %0.3 = Force! %0.0, e0.2
  41082. val^? %0.4 = LdVar length, e0.2
  41083. val %0.5 = Force %0.4, e0.2
  41084. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41085. void Return %0.6
  41086. ├────── Cleanup redundant operations: == 563
  41087. vector[0x7f92445590f0]
  41088. BB0
  41089. val^ %0.0 = LdArg 0
  41090. val^ %0.1 = LdArg 1
  41091. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41092. val %0.3 = Force! %0.0, e0.2
  41093. val^? %0.4 = LdVar length, e0.2
  41094. val %0.5 = Force %0.4, e0.2
  41095. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41096. void Return %0.6
  41097. ├────── Delay instructions: == 570
  41098. vector[0x7f92445590f0]
  41099. BB0
  41100. val^ %0.0 = LdArg 0
  41101. val^ %0.1 = LdArg 1
  41102. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41103. val %0.3 = Force! %0.0, e0.2
  41104. val^? %0.4 = LdVar length, e0.2
  41105. val %0.5 = Force %0.4, e0.2
  41106. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41107. void Return %0.6
  41108. ├────── Elide environments not needed: == 577
  41109. vector[0x7f92445590f0]
  41110. BB0
  41111. val^ %0.0 = LdArg 0
  41112. val^ %0.1 = LdArg 1
  41113. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41114. val %0.3 = Force! %0.0, e0.2
  41115. val^? %0.4 = LdVar length, e0.2
  41116. val %0.5 = Force %0.4, e0.2
  41117. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41118. void Return %0.6
  41119. ├────── Move environment creation as far as possible: == 584
  41120. vector[0x7f92445590f0]
  41121. BB0
  41122. val^ %0.0 = LdArg 0
  41123. val^ %0.1 = LdArg 1
  41124. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41125. val %0.3 = Force! %0.0, e0.2
  41126. val^? %0.4 = LdVar length, e0.2
  41127. val %0.5 = Force %0.4, e0.2
  41128. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41129. void Return %0.6
  41130. ├────── Cleanup redundant operations: == 591
  41131. vector[0x7f92445590f0]
  41132. BB0
  41133. val^ %0.0 = LdArg 0
  41134. val^ %0.1 = LdArg 1
  41135. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41136. val %0.3 = Force! %0.0, e0.2
  41137. val^? %0.4 = LdVar length, e0.2
  41138. val %0.5 = Force %0.4, e0.2
  41139. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41140. void Return %0.6
  41141. ├────── Inline closures: == 598
  41142. vector[0x7f92445590f0]
  41143. BB0
  41144. val^ %0.0 = LdArg 0
  41145. val^ %0.1 = LdArg 1
  41146. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41147. val %0.3 = Force! %0.0, e0.2
  41148. val^? %0.4 = LdVar length, e0.2
  41149. val %0.5 = Force %0.4, e0.2
  41150. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41151. void Return %0.6
  41152. ├────── Inline Promises: == 605
  41153. vector[0x7f92445590f0]
  41154. BB0
  41155. val^ %0.0 = LdArg 0
  41156. val^ %0.1 = LdArg 1
  41157. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41158. val %0.3 = Force! %0.0, e0.2
  41159. val^? %0.4 = LdVar length, e0.2
  41160. val %0.5 = Force %0.4, e0.2
  41161. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41162. void Return %0.6
  41163. ├────── Scope resolution: == 612
  41164. vector[0x7f92445590f0]
  41165. BB0
  41166. val^ %0.0 = LdArg 0
  41167. val^ %0.1 = LdArg 1
  41168. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41169. val %0.3 = Force! %0.0, e0.2
  41170. val^? %0.4 = LdVar length, e0.2
  41171. val %0.5 = Force %0.4, e0.2
  41172. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41173. void Return %0.6
  41174. ├────── Constant folding: == 619
  41175. vector[0x7f92445590f0]
  41176. BB0
  41177. val^ %0.0 = LdArg 0
  41178. val^ %0.1 = LdArg 1
  41179. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41180. val %0.3 = Force! %0.0, e0.2
  41181. val^? %0.4 = LdVar length, e0.2
  41182. val %0.5 = Force %0.4, e0.2
  41183. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41184. void Return %0.6
  41185. ├────── Cleanup redundant operations: == 626
  41186. vector[0x7f92445590f0]
  41187. BB0
  41188. val^ %0.0 = LdArg 0
  41189. val^ %0.1 = LdArg 1
  41190. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41191. val %0.3 = Force! %0.0, e0.2
  41192. val^? %0.4 = LdVar length, e0.2
  41193. val %0.5 = Force %0.4, e0.2
  41194. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41195. void Return %0.6
  41196. ├────── Delay instructions: == 633
  41197. vector[0x7f92445590f0]
  41198. BB0
  41199. val^ %0.0 = LdArg 0
  41200. val^ %0.1 = LdArg 1
  41201. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41202. val %0.3 = Force! %0.0, e0.2
  41203. val^? %0.4 = LdVar length, e0.2
  41204. val %0.5 = Force %0.4, e0.2
  41205. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41206. void Return %0.6
  41207. ├────── Elide environments not needed: == 640
  41208. vector[0x7f92445590f0]
  41209. BB0
  41210. val^ %0.0 = LdArg 0
  41211. val^ %0.1 = LdArg 1
  41212. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41213. val %0.3 = Force! %0.0, e0.2
  41214. val^? %0.4 = LdVar length, e0.2
  41215. val %0.5 = Force %0.4, e0.2
  41216. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41217. void Return %0.6
  41218. ├────── Move environment creation as far as possible: == 647
  41219. vector[0x7f92445590f0]
  41220. BB0
  41221. val^ %0.0 = LdArg 0
  41222. val^ %0.1 = LdArg 1
  41223. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41224. val %0.3 = Force! %0.0, e0.2
  41225. val^? %0.4 = LdVar length, e0.2
  41226. val %0.5 = Force %0.4, e0.2
  41227. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41228. void Return %0.6
  41229. ├────── Cleanup redundant operations: == 654
  41230. vector[0x7f92445590f0]
  41231. BB0
  41232. val^ %0.0 = LdArg 0
  41233. val^ %0.1 = LdArg 1
  41234. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41235. val %0.3 = Force! %0.0, e0.2
  41236. val^? %0.4 = LdVar length, e0.2
  41237. val %0.5 = Force %0.4, e0.2
  41238. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41239. void Return %0.6
  41240. ├────── Inline closures: == 661
  41241. vector[0x7f92445590f0]
  41242. BB0
  41243. val^ %0.0 = LdArg 0
  41244. val^ %0.1 = LdArg 1
  41245. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41246. val %0.3 = Force! %0.0, e0.2
  41247. val^? %0.4 = LdVar length, e0.2
  41248. val %0.5 = Force %0.4, e0.2
  41249. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41250. void Return %0.6
  41251. ├────── Inline Promises: == 668
  41252. vector[0x7f92445590f0]
  41253. BB0
  41254. val^ %0.0 = LdArg 0
  41255. val^ %0.1 = LdArg 1
  41256. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41257. val %0.3 = Force! %0.0, e0.2
  41258. val^? %0.4 = LdVar length, e0.2
  41259. val %0.5 = Force %0.4, e0.2
  41260. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41261. void Return %0.6
  41262. ├────── Scope resolution: == 675
  41263. vector[0x7f92445590f0]
  41264. BB0
  41265. val^ %0.0 = LdArg 0
  41266. val^ %0.1 = LdArg 1
  41267. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41268. val %0.3 = Force! %0.0, e0.2
  41269. val^? %0.4 = LdVar length, e0.2
  41270. val %0.5 = Force %0.4, e0.2
  41271. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41272. void Return %0.6
  41273. ├────── Constant folding: == 682
  41274. vector[0x7f92445590f0]
  41275. BB0
  41276. val^ %0.0 = LdArg 0
  41277. val^ %0.1 = LdArg 1
  41278. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41279. val %0.3 = Force! %0.0, e0.2
  41280. val^? %0.4 = LdVar length, e0.2
  41281. val %0.5 = Force %0.4, e0.2
  41282. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41283. void Return %0.6
  41284. ├────── Cleanup redundant operations: == 689
  41285. vector[0x7f92445590f0]
  41286. BB0
  41287. val^ %0.0 = LdArg 0
  41288. val^ %0.1 = LdArg 1
  41289. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41290. val %0.3 = Force! %0.0, e0.2
  41291. val^? %0.4 = LdVar length, e0.2
  41292. val %0.5 = Force %0.4, e0.2
  41293. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41294. void Return %0.6
  41295. ├────── Delay instructions: == 696
  41296. vector[0x7f92445590f0]
  41297. BB0
  41298. val^ %0.0 = LdArg 0
  41299. val^ %0.1 = LdArg 1
  41300. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41301. val %0.3 = Force! %0.0, e0.2
  41302. val^? %0.4 = LdVar length, e0.2
  41303. val %0.5 = Force %0.4, e0.2
  41304. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41305. void Return %0.6
  41306. ├────── Elide environments not needed: == 703
  41307. vector[0x7f92445590f0]
  41308. BB0
  41309. val^ %0.0 = LdArg 0
  41310. val^ %0.1 = LdArg 1
  41311. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41312. val %0.3 = Force! %0.0, e0.2
  41313. val^? %0.4 = LdVar length, e0.2
  41314. val %0.5 = Force %0.4, e0.2
  41315. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41316. void Return %0.6
  41317. ├────── Move environment creation as far as possible: == 710
  41318. vector[0x7f92445590f0]
  41319. BB0
  41320. val^ %0.0 = LdArg 0
  41321. val^ %0.1 = LdArg 1
  41322. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41323. val %0.3 = Force! %0.0, e0.2
  41324. val^? %0.4 = LdVar length, e0.2
  41325. val %0.5 = Force %0.4, e0.2
  41326. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41327. void Return %0.6
  41328. ├────── Cleanup redundant operations: == 717
  41329. vector[0x7f92445590f0]
  41330. BB0
  41331. val^ %0.0 = LdArg 0
  41332. val^ %0.1 = LdArg 1
  41333. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41334. val %0.3 = Force! %0.0, e0.2
  41335. val^? %0.4 = LdVar length, e0.2
  41336. val %0.5 = Force %0.4, e0.2
  41337. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41338. void Return %0.6
  41339. ├────── Inline closures: == 724
  41340. vector[0x7f92445590f0]
  41341. BB0
  41342. val^ %0.0 = LdArg 0
  41343. val^ %0.1 = LdArg 1
  41344. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41345. val %0.3 = Force! %0.0, e0.2
  41346. val^? %0.4 = LdVar length, e0.2
  41347. val %0.5 = Force %0.4, e0.2
  41348. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41349. void Return %0.6
  41350. ├────── Inline Promises: == 731
  41351. vector[0x7f92445590f0]
  41352. BB0
  41353. val^ %0.0 = LdArg 0
  41354. val^ %0.1 = LdArg 1
  41355. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41356. val %0.3 = Force! %0.0, e0.2
  41357. val^? %0.4 = LdVar length, e0.2
  41358. val %0.5 = Force %0.4, e0.2
  41359. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41360. void Return %0.6
  41361. ├────── Scope resolution: == 738
  41362. vector[0x7f92445590f0]
  41363. BB0
  41364. val^ %0.0 = LdArg 0
  41365. val^ %0.1 = LdArg 1
  41366. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41367. val %0.3 = Force! %0.0, e0.2
  41368. val^? %0.4 = LdVar length, e0.2
  41369. val %0.5 = Force %0.4, e0.2
  41370. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41371. void Return %0.6
  41372. ├────── Constant folding: == 745
  41373. vector[0x7f92445590f0]
  41374. BB0
  41375. val^ %0.0 = LdArg 0
  41376. val^ %0.1 = LdArg 1
  41377. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41378. val %0.3 = Force! %0.0, e0.2
  41379. val^? %0.4 = LdVar length, e0.2
  41380. val %0.5 = Force %0.4, e0.2
  41381. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41382. void Return %0.6
  41383. ├────── Cleanup redundant operations: == 752
  41384. vector[0x7f92445590f0]
  41385. BB0
  41386. val^ %0.0 = LdArg 0
  41387. val^ %0.1 = LdArg 1
  41388. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41389. val %0.3 = Force! %0.0, e0.2
  41390. val^? %0.4 = LdVar length, e0.2
  41391. val %0.5 = Force %0.4, e0.2
  41392. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41393. void Return %0.6
  41394. ├────── Delay instructions: == 759
  41395. vector[0x7f92445590f0]
  41396. BB0
  41397. val^ %0.0 = LdArg 0
  41398. val^ %0.1 = LdArg 1
  41399. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41400. val %0.3 = Force! %0.0, e0.2
  41401. val^? %0.4 = LdVar length, e0.2
  41402. val %0.5 = Force %0.4, e0.2
  41403. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41404. void Return %0.6
  41405. ├────── Elide environments not needed: == 766
  41406. vector[0x7f92445590f0]
  41407. BB0
  41408. val^ %0.0 = LdArg 0
  41409. val^ %0.1 = LdArg 1
  41410. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41411. val %0.3 = Force! %0.0, e0.2
  41412. val^? %0.4 = LdVar length, e0.2
  41413. val %0.5 = Force %0.4, e0.2
  41414. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41415. void Return %0.6
  41416. ├────── Move environment creation as far as possible: == 773
  41417. vector[0x7f92445590f0]
  41418. BB0
  41419. val^ %0.0 = LdArg 0
  41420. val^ %0.1 = LdArg 1
  41421. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41422. val %0.3 = Force! %0.0, e0.2
  41423. val^? %0.4 = LdVar length, e0.2
  41424. val %0.5 = Force %0.4, e0.2
  41425. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41426. void Return %0.6
  41427. ├────── Cleanup redundant operations: == 780
  41428. vector[0x7f92445590f0]
  41429. BB0
  41430. val^ %0.0 = LdArg 0
  41431. val^ %0.1 = LdArg 1
  41432. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41433. val %0.3 = Force! %0.0, e0.2
  41434. val^? %0.4 = LdVar length, e0.2
  41435. val %0.5 = Force %0.4, e0.2
  41436. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41437. void Return %0.6
  41438. ├────── Inline closures: == 787
  41439. vector[0x7f92445590f0]
  41440. BB0
  41441. val^ %0.0 = LdArg 0
  41442. val^ %0.1 = LdArg 1
  41443. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41444. val %0.3 = Force! %0.0, e0.2
  41445. val^? %0.4 = LdVar length, e0.2
  41446. val %0.5 = Force %0.4, e0.2
  41447. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41448. void Return %0.6
  41449. ├────── Speculate on values to elide environments: == 794
  41450. vector[0x7f92445590f0]
  41451. BB0
  41452. val^ %0.0 = LdArg 0
  41453. val^ %0.1 = LdArg 1
  41454. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41455. val %0.3 = Force! %0.0, e0.2
  41456. val^? %0.4 = LdVar length, e0.2
  41457. val %0.5 = Force %0.4, e0.2
  41458. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41459. void Return %0.6
  41460. ├────── Cleanup unused checkpoints: == 801
  41461. vector[0x7f92445590f0]
  41462. BB0
  41463. val^ %0.0 = LdArg 0
  41464. val^ %0.1 = LdArg 1
  41465. env e0.2 = MkEnv mode=%0.0, length=%0.1, parent=<environment: namespace:base>
  41466. val %0.3 = Force! %0.0, e0.2
  41467. val^? %0.4 = LdVar length, e0.2
  41468. val %0.5 = Force %0.4, e0.2
  41469. val %0.6 = CallSafeBuiltin vector(%0.3, %0.5)
  41470. void Return %0.6
  41471. │ vector[0x7f92445590f0] │
  41472. └──────────────────────────────────────────────────────────────────────────────┘
  41473.  
  41474. ┌──────────────────────────────────────────────────────────────────────────────┐
  41475. │ test>buildTreeDepth@91[0x7f92445596d0] │
  41476. ├────── Inline Promises: == 1
  41477. test>buildTreeDepth@91[0x7f92445596d0]
  41478. BB0
  41479. val^ %0.0 = LdArg 1
  41480. val^ %0.1 = LdArg 0
  41481. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=?
  41482. val^? %0.3 = LdVar depth, e0.2
  41483. val %0.4 = Force %0.3, e0.2
  41484. real$' %0.5 = LdConst [1] 1
  41485. cp %0.6 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41486. BB1
  41487. lgl %1.0 = Eq %0.4, %0.5, e0.2
  41488. lgl %1.1 = AsLogical %1.0
  41489. t %1.2 = AsTest %1.1
  41490. void Branch %1.2 -> BB3 (if true) | BB4 (if false)
  41491. BB2
  41492. fs %2.0 = FrameState 0x7f924457f3d0+58: [%0.4, %0.5], env=e0.2
  41493. void Deopt %2.0
  41494. BB3
  41495. cls %3.0 = LdFun c, e0.2
  41496. prom %3.1 = MkArg missing, Prom(4), e0.2
  41497. fs %3.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  41498. val^ %3.3 = Call %3.0(%3.1) %3.2, e0.2
  41499. goto BB18
  41500. BB4
  41501. cls %4.0 = LdFun vector, e0.2
  41502. str$' %4.1 = LdConst [1] "list"
  41503. prom %4.2 = MkArg %4.1, Prom(0), e0.2
  41504. real$' %4.3 = LdConst [1] 4
  41505. prom %4.4 = MkArg %4.3, Prom(1), e0.2
  41506. cls' %4.5 = LdConst function (mode = "logical", length = ...
  41507. t %4.6 = Identical %4.0, %4.5
  41508. cp %4.7 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  41509. BB18
  41510. val^ %18.0 = Phi %12.2:BB12, %3.3:BB3
  41511. val %18.1 = Force %18.0, e0.2
  41512. void Return %18.1
  41513. BB5
  41514. void Assume %4.6, %4.7
  41515. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  41516. val^ %5.2 = StaticCall vector[0x7f92445590f0](%4.2, %4.4) %5.1, e0.2
  41517. val^ %5.3 = SetShared %5.2
  41518. val %5.4 = Force %5.3, e0.2
  41519. void StVar array, %5.4, e0.2
  41520. real$' %5.6 = LdConst [1] 1
  41521. real$' %5.7 = LdConst [1] 4
  41522. cp %5.8 = Checkpoint -> BB7 (by default) | BB8 (if coming from expect)
  41523. BB6
  41524. fs %6.0 = FrameState 0x7f924457f3d0+113: [%4.0], env=e0.2
  41525. void Deopt %6.0
  41526. BB7
  41527. val %7.0 = Colon %5.6, %5.7, e0.2
  41528. val %7.1 = SetShared %7.0
  41529. int$' %7.2 = ForSeqSize %7.1
  41530. int$' %7.3 = LdConst [1] 0
  41531. goto BB9
  41532. BB8
  41533. fs %8.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  41534. void Deopt %8.0
  41535. BB9
  41536. int$' %9.0 = Phi %7.3:BB7, %9.2:BB16
  41537. int$' %9.1 = Inc %9.0
  41538. int$' %9.2 = EnsureNamed %9.1
  41539. cp %9.3 = Checkpoint -> BB10 (by default) | BB11 (if coming from expect)
  41540. BB10
  41541. lgl %10.0 = Lt %7.2, %9.2, e0.2
  41542. t %10.1 = AsTest %10.0
  41543. void Branch %10.1 -> BB12 (if true) | BB13 (if false)
  41544. BB11
  41545. fs %11.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %9.2, %7.2, %9.2], env=e0.2
  41546. void Deopt %11.0
  41547. BB12
  41548. nil' %12.0 = LdConst NULL
  41549. val^? %12.1 = LdVar array, e0.2
  41550. val %12.2 = Force %12.1, e0.2
  41551. goto BB18
  41552. BB13
  41553. cp %13.0 = Checkpoint -> BB14 (by default) | BB15 (if coming from expect)
  41554. BB14
  41555. val$ %14.0 = Extract2_1D %7.1, %9.2, e0.2
  41556. void StVar i, %14.0, e0.2
  41557. cls %14.2 = LdFun buildTreeDepth, e0.2
  41558. prom %14.3 = MkArg missing, Prom(2), e0.2
  41559. prom %14.4 = MkArg missing, Prom(3), e0.2
  41560. cls' %14.5 = LdConst function (depth, random) { if (d...
  41561. t %14.6 = Identical %14.2, %14.5
  41562. cp %14.7 = Checkpoint -> BB16 (by default) | BB17 (if coming from expect)
  41563. BB15
  41564. fs %15.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %9.2, %7.1, %9.2], env=e0.2
  41565. void Deopt %15.0
  41566. BB16
  41567. void Assume %14.6, %14.7
  41568. fs %16.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %9.2], env=e0.2
  41569. val^ %16.2 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.1, e0.2
  41570. val^ %16.3 = EnsureNamed %16.2
  41571. val^? %16.4 = LdVar array, e0.2
  41572. val %16.5 = Force %16.4, e0.2
  41573. val^? %16.6 = LdVar i, e0.2
  41574. val %16.7 = Force %16.6, e0.2
  41575. val %16.8 = Force %16.3, e0.2
  41576. val %16.9 = Subassign2_1D %16.8, %16.5, %16.7, e0.2
  41577. void StVar array, %16.9, e0.2
  41578. goto BB9
  41579. BB17
  41580. fs %17.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %9.2, %14.2], env=e0.2
  41581. void Deopt %17.0
  41582. Prom 0:
  41583. BB0
  41584. env e0.0 = LdFunctionEnv
  41585. str$' %0.1 = LdConst [1] "list"
  41586. void Return %0.1
  41587. Prom 1:
  41588. BB0
  41589. env e0.0 = LdFunctionEnv
  41590. real$' %0.1 = LdConst [1] 4
  41591. void Return %0.1
  41592. Prom 2:
  41593. BB0
  41594. env e0.0 = LdFunctionEnv
  41595. val^? %0.1 = LdVar depth, e0.0
  41596. val %0.2 = Force %0.1, e0.0
  41597. real$' %0.3 = LdConst [1] 1
  41598. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41599. BB1
  41600. val %1.0 = Sub %0.2, %0.3, e0.0
  41601. void Return %1.0
  41602. BB2
  41603. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  41604. void Deopt %2.0
  41605. Prom 3:
  41606. BB0
  41607. env e0.0 = LdFunctionEnv
  41608. val^? %0.1 = LdVar random, e0.0
  41609. val %0.2 = Force %0.1, e0.0
  41610. void Return %0.2
  41611. Prom 4:
  41612. BB0
  41613. env e0.0 = LdFunctionEnv
  41614. cls %0.1 = LdFun nextRandom, e0.0
  41615. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  41616. t %0.3 = Identical %0.1, %0.2
  41617. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41618. BB1
  41619. void Assume %0.3, %0.4
  41620. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  41621. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  41622. real$' %1.3 = LdConst [1] 10
  41623. cp %1.4 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  41624. BB2
  41625. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  41626. void Deopt %2.0
  41627. BB3
  41628. val %3.0 = Force %1.2, e0.0
  41629. val %3.1 = Mod %3.0, %1.3, e0.0
  41630. real$' %3.2 = LdConst [1] 1
  41631. cp %3.3 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  41632. BB4
  41633. fs %4.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  41634. void Deopt %4.0
  41635. BB5
  41636. val %5.0 = Add %3.1, %3.2, e0.0
  41637. void Return %5.0
  41638. BB6
  41639. fs %6.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  41640. void Deopt %6.0
  41641. ├────── Scope resolution: == 8
  41642. test>buildTreeDepth@91[0x7f92445596d0]
  41643. BB0
  41644. val^ %0.0 = LdArg 1
  41645. val^ %0.1 = LdArg 0
  41646. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=?
  41647. val %0.3 = Force %0.1, e0.2
  41648. real$' %0.4 = LdConst [1] 1
  41649. cp %0.5 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41650. BB1
  41651. lgl %1.0 = Eq %0.3, %0.4, e0.2
  41652. lgl %1.1 = AsLogical %1.0
  41653. t %1.2 = AsTest %1.1
  41654. void Branch %1.2 -> BB3 (if true) | BB4 (if false)
  41655. BB2
  41656. fs %2.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  41657. void Deopt %2.0
  41658. BB3
  41659. cls %3.0 = LdFun c, e0.2
  41660. prom %3.1 = MkArg missing, Prom(4), e0.2
  41661. fs %3.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  41662. val^ %3.3 = Call %3.0(%3.1) %3.2, e0.2
  41663. goto BB18
  41664. BB4
  41665. cls %4.0 = LdFun vector, e0.2
  41666. str$' %4.1 = LdConst [1] "list"
  41667. prom %4.2 = MkArg %4.1, Prom(0), e0.2
  41668. real$' %4.3 = LdConst [1] 4
  41669. prom %4.4 = MkArg %4.3, Prom(1), e0.2
  41670. cls' %4.5 = LdConst function (mode = "logical", length = ...
  41671. t %4.6 = Identical %4.0, %4.5
  41672. cp %4.7 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  41673. BB18
  41674. val^ %18.0 = Phi %9.0:BB12, %3.3:BB3
  41675. val %18.1 = Force %18.0, e0.2
  41676. void Return %18.1
  41677. BB5
  41678. void Assume %4.6, %4.7
  41679. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  41680. val^ %5.2 = StaticCall vector[0x7f92445590f0](%4.2, %4.4) %5.1, e0.2
  41681. val^ %5.3 = SetShared %5.2
  41682. val %5.4 = Force %5.3, e0.2
  41683. void StVar array, %5.4, e0.2
  41684. real$' %5.6 = LdConst [1] 1
  41685. real$' %5.7 = LdConst [1] 4
  41686. cp %5.8 = Checkpoint -> BB7 (by default) | BB8 (if coming from expect)
  41687. BB6
  41688. fs %6.0 = FrameState 0x7f924457f3d0+113: [%4.0], env=e0.2
  41689. void Deopt %6.0
  41690. BB7
  41691. val %7.0 = Colon %5.6, %5.7, e0.2
  41692. val %7.1 = SetShared %7.0
  41693. int$' %7.2 = ForSeqSize %7.1
  41694. int$' %7.3 = LdConst [1] 0
  41695. goto BB9
  41696. BB8
  41697. fs %8.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  41698. void Deopt %8.0
  41699. BB9
  41700. val %9.0 = Phi %5.4:BB5, %16.9:BB16
  41701. int$' %9.1 = Phi %7.3:BB7, %9.3:BB16
  41702. int$' %9.2 = Inc %9.1
  41703. int$' %9.3 = EnsureNamed %9.2
  41704. cp %9.4 = Checkpoint -> BB10 (by default) | BB11 (if coming from expect)
  41705. BB10
  41706. lgl %10.0 = Lt %7.2, %9.3, e0.2
  41707. t %10.1 = AsTest %10.0
  41708. void Branch %10.1 -> BB12 (if true) | BB13 (if false)
  41709. BB11
  41710. fs %11.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %9.3, %7.2, %9.3], env=e0.2
  41711. void Deopt %11.0
  41712. BB12
  41713. nil' %12.0 = LdConst NULL
  41714. goto BB18
  41715. BB13
  41716. cp %13.0 = Checkpoint -> BB14 (by default) | BB15 (if coming from expect)
  41717. BB14
  41718. val$ %14.0 = Extract2_1D %7.1, %9.3, e0.2
  41719. void StVar i, %14.0, e0.2
  41720. cls %14.2 = LdFun buildTreeDepth, e0.2
  41721. prom %14.3 = MkArg missing, Prom(2), e0.2
  41722. prom %14.4 = MkArg missing, Prom(3), e0.2
  41723. cls' %14.5 = LdConst function (depth, random) { if (d...
  41724. t %14.6 = Identical %14.2, %14.5
  41725. cp %14.7 = Checkpoint -> BB16 (by default) | BB17 (if coming from expect)
  41726. BB15
  41727. fs %15.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %9.3, %7.1, %9.3], env=e0.2
  41728. void Deopt %15.0
  41729. BB16
  41730. void Assume %14.6, %14.7
  41731. fs %16.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %9.3], env=e0.2
  41732. val^ %16.2 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.1, e0.2
  41733. val^ %16.3 = EnsureNamed %16.2
  41734. val^? %16.4 = LdVar array, e0.2
  41735. val %16.5 = Force %16.4, e0.2
  41736. val^? %16.6 = LdVar i, e0.2
  41737. val %16.7 = Force %16.6, e0.2
  41738. val %16.8 = Force %16.3, e0.2
  41739. val %16.9 = Subassign2_1D %16.8, %16.5, %16.7, e0.2
  41740. void StVar array, %16.9, e0.2
  41741. goto BB9
  41742. BB17
  41743. fs %17.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %9.3, %14.2], env=e0.2
  41744. void Deopt %17.0
  41745. Prom 0:
  41746. BB0
  41747. env e0.0 = LdFunctionEnv
  41748. str$' %0.1 = LdConst [1] "list"
  41749. void Return %0.1
  41750. Prom 1:
  41751. BB0
  41752. env e0.0 = LdFunctionEnv
  41753. real$' %0.1 = LdConst [1] 4
  41754. void Return %0.1
  41755. Prom 2:
  41756. BB0
  41757. env e0.0 = LdFunctionEnv
  41758. val^? %0.1 = LdVar depth, e0.0
  41759. val %0.2 = Force %0.1, e0.0
  41760. real$' %0.3 = LdConst [1] 1
  41761. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41762. BB1
  41763. val %1.0 = Sub %0.2, %0.3, e0.0
  41764. void Return %1.0
  41765. BB2
  41766. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  41767. void Deopt %2.0
  41768. Prom 3:
  41769. BB0
  41770. env e0.0 = LdFunctionEnv
  41771. val^? %0.1 = LdVar random, e0.0
  41772. val %0.2 = Force %0.1, e0.0
  41773. void Return %0.2
  41774. Prom 4:
  41775. BB0
  41776. env e0.0 = LdFunctionEnv
  41777. cls %0.1 = LdFun nextRandom, e0.0
  41778. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  41779. t %0.3 = Identical %0.1, %0.2
  41780. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41781. BB1
  41782. void Assume %0.3, %0.4
  41783. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  41784. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  41785. real$' %1.3 = LdConst [1] 10
  41786. cp %1.4 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  41787. BB2
  41788. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  41789. void Deopt %2.0
  41790. BB3
  41791. val %3.0 = Force %1.2, e0.0
  41792. val %3.1 = Mod %3.0, %1.3, e0.0
  41793. real$' %3.2 = LdConst [1] 1
  41794. cp %3.3 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  41795. BB4
  41796. fs %4.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  41797. void Deopt %4.0
  41798. BB5
  41799. val %5.0 = Add %3.1, %3.2, e0.0
  41800. void Return %5.0
  41801. BB6
  41802. fs %6.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  41803. void Deopt %6.0
  41804. ├────── Constant folding: == 15
  41805. test>buildTreeDepth@91[0x7f92445596d0]
  41806. BB0
  41807. val^ %0.0 = LdArg 1
  41808. val^ %0.1 = LdArg 0
  41809. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=?
  41810. val %0.3 = Force %0.1, e0.2
  41811. real$' %0.4 = LdConst [1] 1
  41812. cp %0.5 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41813. BB1
  41814. lgl %1.0 = Eq %0.3, %0.4, e0.2
  41815. lgl %1.1 = AsLogical %1.0
  41816. t %1.2 = AsTest %1.1
  41817. void Branch %1.2 -> BB3 (if true) | BB4 (if false)
  41818. BB2
  41819. fs %2.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  41820. void Deopt %2.0
  41821. BB3
  41822. cls %3.0 = LdFun c, e0.2
  41823. prom %3.1 = MkArg missing, Prom(4), e0.2
  41824. fs %3.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  41825. val^ %3.3 = Call %3.0(%3.1) %3.2, e0.2
  41826. goto BB18
  41827. BB4
  41828. cls %4.0 = LdFun vector, e0.2
  41829. str$' %4.1 = LdConst [1] "list"
  41830. prom %4.2 = MkArg %4.1, Prom(0), e0.2
  41831. real$' %4.3 = LdConst [1] 4
  41832. prom %4.4 = MkArg %4.3, Prom(1), e0.2
  41833. cls' %4.5 = LdConst function (mode = "logical", length = ...
  41834. t %4.6 = Identical %4.0, %4.5
  41835. cp %4.7 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  41836. BB18
  41837. val^ %18.0 = Phi %9.0:BB12, %3.3:BB3
  41838. val %18.1 = Force %18.0, e0.2
  41839. void Return %18.1
  41840. BB5
  41841. void Assume %4.6, %4.7
  41842. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  41843. val^ %5.2 = StaticCall vector[0x7f92445590f0](%4.2, %4.4) %5.1, e0.2
  41844. val^ %5.3 = SetShared %5.2
  41845. val %5.4 = Force %5.3, e0.2
  41846. void StVar array, %5.4, e0.2
  41847. real$' %5.6 = LdConst [1] 1
  41848. real$' %5.7 = LdConst [1] 4
  41849. cp %5.8 = Checkpoint -> BB7 (by default) | BB8 (if coming from expect)
  41850. BB6
  41851. fs %6.0 = FrameState 0x7f924457f3d0+113: [%4.0], env=e0.2
  41852. void Deopt %6.0
  41853. BB7
  41854. val %7.0 = Colon %5.6, %5.7, e0.2
  41855. val %7.1 = SetShared %7.0
  41856. int$' %7.2 = ForSeqSize %7.1
  41857. int$' %7.3 = LdConst [1] 0
  41858. goto BB9
  41859. BB8
  41860. fs %8.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  41861. void Deopt %8.0
  41862. BB9
  41863. val %9.0 = Phi %5.4:BB5, %16.9:BB16
  41864. int$' %9.1 = Phi %7.3:BB7, %9.3:BB16
  41865. int$' %9.2 = Inc %9.1
  41866. int$' %9.3 = EnsureNamed %9.2
  41867. cp %9.4 = Checkpoint -> BB10 (by default) | BB11 (if coming from expect)
  41868. BB10
  41869. lgl %10.0 = Lt %7.2, %9.3, e0.2
  41870. t %10.1 = AsTest %10.0
  41871. void Branch %10.1 -> BB12 (if true) | BB13 (if false)
  41872. BB11
  41873. fs %11.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %9.3, %7.2, %9.3], env=e0.2
  41874. void Deopt %11.0
  41875. BB12
  41876. nil' %12.0 = LdConst NULL
  41877. goto BB18
  41878. BB13
  41879. cp %13.0 = Checkpoint -> BB14 (by default) | BB15 (if coming from expect)
  41880. BB14
  41881. val$ %14.0 = Extract2_1D %7.1, %9.3, e0.2
  41882. void StVar i, %14.0, e0.2
  41883. cls %14.2 = LdFun buildTreeDepth, e0.2
  41884. prom %14.3 = MkArg missing, Prom(2), e0.2
  41885. prom %14.4 = MkArg missing, Prom(3), e0.2
  41886. cls' %14.5 = LdConst function (depth, random) { if (d...
  41887. t %14.6 = Identical %14.2, %14.5
  41888. cp %14.7 = Checkpoint -> BB16 (by default) | BB17 (if coming from expect)
  41889. BB15
  41890. fs %15.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %9.3, %7.1, %9.3], env=e0.2
  41891. void Deopt %15.0
  41892. BB16
  41893. void Assume %14.6, %14.7
  41894. fs %16.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %9.3], env=e0.2
  41895. val^ %16.2 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.1, e0.2
  41896. val^ %16.3 = EnsureNamed %16.2
  41897. val^? %16.4 = LdVar array, e0.2
  41898. val %16.5 = Force %16.4, e0.2
  41899. val^? %16.6 = LdVar i, e0.2
  41900. val %16.7 = Force %16.6, e0.2
  41901. val %16.8 = Force %16.3, e0.2
  41902. val %16.9 = Subassign2_1D %16.8, %16.5, %16.7, e0.2
  41903. void StVar array, %16.9, e0.2
  41904. goto BB9
  41905. BB17
  41906. fs %17.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %9.3, %14.2], env=e0.2
  41907. void Deopt %17.0
  41908. Prom 0:
  41909. BB0
  41910. env e0.0 = LdFunctionEnv
  41911. str$' %0.1 = LdConst [1] "list"
  41912. void Return %0.1
  41913. Prom 1:
  41914. BB0
  41915. env e0.0 = LdFunctionEnv
  41916. real$' %0.1 = LdConst [1] 4
  41917. void Return %0.1
  41918. Prom 2:
  41919. BB0
  41920. env e0.0 = LdFunctionEnv
  41921. val^? %0.1 = LdVar depth, e0.0
  41922. val %0.2 = Force %0.1, e0.0
  41923. real$' %0.3 = LdConst [1] 1
  41924. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41925. BB1
  41926. val %1.0 = Sub %0.2, %0.3, e0.0
  41927. void Return %1.0
  41928. BB2
  41929. fs %2.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  41930. void Deopt %2.0
  41931. Prom 3:
  41932. BB0
  41933. env e0.0 = LdFunctionEnv
  41934. val^? %0.1 = LdVar random, e0.0
  41935. val %0.2 = Force %0.1, e0.0
  41936. void Return %0.2
  41937. Prom 4:
  41938. BB0
  41939. env e0.0 = LdFunctionEnv
  41940. cls %0.1 = LdFun nextRandom, e0.0
  41941. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  41942. t %0.3 = Identical %0.1, %0.2
  41943. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  41944. BB1
  41945. void Assume %0.3, %0.4
  41946. fs %1.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  41947. val^ %1.2 = StaticCall nextRandom[0x7f9244606500]() %1.1, e0.0
  41948. real$' %1.3 = LdConst [1] 10
  41949. cp %1.4 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  41950. BB2
  41951. fs %2.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  41952. void Deopt %2.0
  41953. BB3
  41954. val %3.0 = Force %1.2, e0.0
  41955. val %3.1 = Mod %3.0, %1.3, e0.0
  41956. real$' %3.2 = LdConst [1] 1
  41957. cp %3.3 = Checkpoint -> BB5 (by default) | BB6 (if coming from expect)
  41958. BB4
  41959. fs %4.0 = FrameState 0x7f9244580470+71: [%1.2, %1.3], env=e0.0
  41960. void Deopt %4.0
  41961. BB5
  41962. val %5.0 = Add %3.1, %3.2, e0.0
  41963. void Return %5.0
  41964. BB6
  41965. fs %6.0 = FrameState 0x7f9244580470+86: [%3.1, %3.2], env=e0.0
  41966. void Deopt %6.0
  41967. ├────── Cleanup redundant operations: == 22
  41968. test>buildTreeDepth@91[0x7f92445596d0]
  41969. BB0
  41970. val^ %0.0 = LdArg 1
  41971. val^ %0.1 = LdArg 0
  41972. env e0.2 = MkEnv depth=%0.1, random=%0.0, parent=?
  41973. val %0.3 = Force %0.1, e0.2
  41974. real$' %0.4 = LdConst [1] 1
  41975. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  41976. BB2
  41977. lgl %2.0 = Eq %0.3, %0.4, e0.2
  41978. lgl %2.1 = AsLogical %2.0
  41979. t %2.2 = AsTest %2.1
  41980. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  41981. BB1
  41982. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  41983. void Deopt %1.0
  41984. BB17
  41985. cls %17.0 = LdFun c, e0.2
  41986. prom %17.1 = MkArg missing, Prom(4), e0.2
  41987. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  41988. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  41989. goto BB18
  41990. BB3
  41991. cls %3.0 = LdFun vector, e0.2
  41992. str$' %3.1 = LdConst [1] "list"
  41993. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  41994. real$' %3.3 = LdConst [1] 4
  41995. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  41996. cls' %3.5 = LdConst function (mode = "logical", length = ...
  41997. t %3.6 = Identical %3.0, %3.5
  41998. cp %3.7 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  41999. BB18
  42000. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  42001. val %18.1 = Force %18.0, e0.2
  42002. void Return %18.1
  42003. BB5
  42004. void Assume %3.6, %3.7
  42005. fs %5.1 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  42006. val^ %5.2 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.1, e0.2
  42007. val^ %5.3 = SetShared %5.2
  42008. val %5.4 = Force %5.3, e0.2
  42009. void StVar array, %5.4, e0.2
  42010. real$' %5.6 = LdConst [1] 1
  42011. real$' %5.7 = LdConst [1] 4
  42012. cp %5.8 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  42013. BB4
  42014. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  42015. void Deopt %4.0
  42016. BB7
  42017. val %7.0 = Colon %5.6, %5.7, e0.2
  42018. val %7.1 = SetShared %7.0
  42019. int$' %7.2 = ForSeqSize %7.1
  42020. int$' %7.3 = LdConst [1] 0
  42021. goto BB8
  42022. BB6
  42023. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.6, %5.7], env=e0.2
  42024. void Deopt %6.0
  42025. BB8
  42026. val %8.0 = Phi %5.4:BB5, %15.9:BB15
  42027. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  42028. int$' %8.2 = Inc %8.1
  42029. int$' %8.3 = EnsureNamed %8.2
  42030. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  42031. BB10
  42032. lgl %10.0 = Lt %7.2, %8.3, e0.2
  42033. t %10.1 = AsTest %10.0
  42034. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  42035. BB9
  42036. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  42037. void Deopt %9.0
  42038. BB16
  42039. goto BB18
  42040. BB11
  42041. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  42042. BB13
  42043. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  42044. void StVar i, %13.0, e0.2
  42045. cls %13.2 = LdFun buildTreeDepth, e0.2
  42046. prom %13.3 = MkArg missing, Prom(2), e0.2
  42047. prom %13.4 = MkArg missing, Prom(3), e0.2
  42048. cls' %13.5 = LdConst function (depth, random) { if (d...
  42049. t %13.6 = Identical %13.2, %13.5
  42050. cp %13.7 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  42051. BB12
  42052. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  42053. void Deopt %12.0
  42054. BB15
  42055. void Assume %13.6, %13.7
  42056. fs %15.1 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  42057. val^ %15.2 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.1, e0.2
  42058. val^ %15.3 = EnsureNamed %15.2
  42059. val^? %15.4 = LdVar array, e0.2
  42060. val %15.5 = Force %15.4, e0.2
  42061. val^? %15.6 = LdVar i, e0.2
  42062. val %15.7 = Force %15.6, e0.2
  42063. val %15.8 = Force %15.3, e0.2
  42064. val %15.9 = Subassign2_1D %15.8, %15.5, %15.7, e0.2
  42065. void StVar array, %15.9, e0.2
  42066. goto BB8
  42067. BB14
  42068. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  42069. void Deopt %14.0
  42070. Prom 0:
  42071. BB0
  42072. env e0.0 = LdFunctionEnv
  42073. str$' %0.1 = LdConst [1] "list"
  42074. void Return %0.1
  42075. Prom 1:
  42076. BB0
  42077. env e0.0 = LdFunctionEnv
  42078. real$' %0.1 = LdConst [1] 4
  42079. void Return %0.1
  42080. Prom 2:
  42081. BB0
  42082. env e0.0 = LdFunctionEnv
  42083. val^? %0.1 = LdVar depth, e0.0
  42084. val %0.2 = Force %0.1, e0.0
  42085. real$' %0.3 = LdConst [1] 1
  42086. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42087. BB2
  42088. val %2.0 = Sub %0.2, %0.3, e0.0
  42089. void Return %2.0
  42090. BB1
  42091. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  42092. void Deopt %1.0
  42093. Prom 3:
  42094. BB0
  42095. env e0.0 = LdFunctionEnv
  42096. val^? %0.1 = LdVar random, e0.0
  42097. val %0.2 = Force %0.1, e0.0
  42098. void Return %0.2
  42099. Prom 4:
  42100. BB0
  42101. env e0.0 = LdFunctionEnv
  42102. cls %0.1 = LdFun nextRandom, e0.0
  42103. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  42104. t %0.3 = Identical %0.1, %0.2
  42105. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42106. BB2
  42107. void Assume %0.3, %0.4
  42108. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  42109. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  42110. real$' %2.3 = LdConst [1] 10
  42111. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  42112. BB1
  42113. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  42114. void Deopt %1.0
  42115. BB4
  42116. val %4.0 = Force %2.2, e0.0
  42117. val %4.1 = Mod %4.0, %2.3, e0.0
  42118. real$' %4.2 = LdConst [1] 1
  42119. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  42120. BB3
  42121. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  42122. void Deopt %3.0
  42123. BB6
  42124. val %6.0 = Add %4.1, %4.2, e0.0
  42125. void Return %6.0
  42126. BB5
  42127. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  42128. void Deopt %5.0
  42129. ├────── Delay instructions: == 29
  42130. test>buildTreeDepth@91[0x7f92445596d0]
  42131. BB0
  42132. val^ %0.0 = LdArg 0
  42133. val^ %0.1 = LdArg 1
  42134. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  42135. val %0.3 = Force %0.0, e0.2
  42136. real$' %0.4 = LdConst [1] 1
  42137. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42138. BB2
  42139. lgl %2.0 = Eq %0.3, %0.4, e0.2
  42140. lgl %2.1 = AsLogical %2.0
  42141. t %2.2 = AsTest %2.1
  42142. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  42143. BB1
  42144. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  42145. void Deopt %1.0
  42146. BB17
  42147. cls %17.0 = LdFun c, e0.2
  42148. prom %17.1 = MkArg missing, Prom(4), e0.2
  42149. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  42150. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  42151. goto BB18
  42152. BB3
  42153. cls %3.0 = LdFun vector, e0.2
  42154. str$' %3.1 = LdConst [1] "list"
  42155. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  42156. real$' %3.3 = LdConst [1] 4
  42157. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  42158. cls' %3.5 = LdConst function (mode = "logical", length = ...
  42159. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  42160. BB18
  42161. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  42162. val %18.1 = Force %18.0, e0.2
  42163. void Return %18.1
  42164. BB5
  42165. t %5.0 = Identical %3.0, %3.5
  42166. void Assume %5.0, %3.6
  42167. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  42168. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  42169. val^ %5.4 = SetShared %5.3
  42170. val %5.5 = Force %5.4, e0.2
  42171. void StVar array, %5.5, e0.2
  42172. real$' %5.7 = LdConst [1] 1
  42173. real$' %5.8 = LdConst [1] 4
  42174. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  42175. BB4
  42176. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  42177. void Deopt %4.0
  42178. BB7
  42179. val %7.0 = Colon %5.7, %5.8, e0.2
  42180. val %7.1 = SetShared %7.0
  42181. int$' %7.2 = ForSeqSize %7.1
  42182. int$' %7.3 = LdConst [1] 0
  42183. goto BB8
  42184. BB6
  42185. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  42186. void Deopt %6.0
  42187. BB8
  42188. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  42189. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  42190. int$' %8.2 = Inc %8.1
  42191. int$' %8.3 = EnsureNamed %8.2
  42192. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  42193. BB10
  42194. lgl %10.0 = Lt %7.2, %8.3, e0.2
  42195. t %10.1 = AsTest %10.0
  42196. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  42197. BB9
  42198. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  42199. void Deopt %9.0
  42200. BB16
  42201. goto BB18
  42202. BB11
  42203. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  42204. BB13
  42205. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  42206. void StVar i, %13.0, e0.2
  42207. cls %13.2 = LdFun buildTreeDepth, e0.2
  42208. prom %13.3 = MkArg missing, Prom(2), e0.2
  42209. prom %13.4 = MkArg missing, Prom(3), e0.2
  42210. cls' %13.5 = LdConst function (depth, random) { if (d...
  42211. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  42212. BB12
  42213. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  42214. void Deopt %12.0
  42215. BB15
  42216. t %15.0 = Identical %13.2, %13.5
  42217. void Assume %15.0, %13.6
  42218. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  42219. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  42220. val^? %15.4 = LdVar array, e0.2
  42221. val %15.5 = Force %15.4, e0.2
  42222. val^? %15.6 = LdVar i, e0.2
  42223. val %15.7 = Force %15.6, e0.2
  42224. val^ %15.8 = EnsureNamed %15.3
  42225. val %15.9 = Force %15.8, e0.2
  42226. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  42227. void StVar array, %15.10, e0.2
  42228. goto BB8
  42229. BB14
  42230. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  42231. void Deopt %14.0
  42232. Prom 0:
  42233. BB0
  42234. env e0.0 = LdFunctionEnv
  42235. str$' %0.1 = LdConst [1] "list"
  42236. void Return %0.1
  42237. Prom 1:
  42238. BB0
  42239. env e0.0 = LdFunctionEnv
  42240. real$' %0.1 = LdConst [1] 4
  42241. void Return %0.1
  42242. Prom 2:
  42243. BB0
  42244. env e0.0 = LdFunctionEnv
  42245. val^? %0.1 = LdVar depth, e0.0
  42246. val %0.2 = Force %0.1, e0.0
  42247. real$' %0.3 = LdConst [1] 1
  42248. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42249. BB2
  42250. val %2.0 = Sub %0.2, %0.3, e0.0
  42251. void Return %2.0
  42252. BB1
  42253. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  42254. void Deopt %1.0
  42255. Prom 3:
  42256. BB0
  42257. env e0.0 = LdFunctionEnv
  42258. val^? %0.1 = LdVar random, e0.0
  42259. val %0.2 = Force %0.1, e0.0
  42260. void Return %0.2
  42261. Prom 4:
  42262. BB0
  42263. env e0.0 = LdFunctionEnv
  42264. cls %0.1 = LdFun nextRandom, e0.0
  42265. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  42266. t %0.3 = Identical %0.1, %0.2
  42267. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42268. BB2
  42269. void Assume %0.3, %0.4
  42270. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  42271. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  42272. real$' %2.3 = LdConst [1] 10
  42273. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  42274. BB1
  42275. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  42276. void Deopt %1.0
  42277. BB4
  42278. val %4.0 = Force %2.2, e0.0
  42279. val %4.1 = Mod %4.0, %2.3, e0.0
  42280. real$' %4.2 = LdConst [1] 1
  42281. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  42282. BB3
  42283. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  42284. void Deopt %3.0
  42285. BB6
  42286. val %6.0 = Add %4.1, %4.2, e0.0
  42287. void Return %6.0
  42288. BB5
  42289. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  42290. void Deopt %5.0
  42291. ├────── Elide environments not needed: == 36
  42292. test>buildTreeDepth@91[0x7f92445596d0]
  42293. BB0
  42294. val^ %0.0 = LdArg 0
  42295. val^ %0.1 = LdArg 1
  42296. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  42297. val %0.3 = Force %0.0, e0.2
  42298. real$' %0.4 = LdConst [1] 1
  42299. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42300. BB2
  42301. lgl %2.0 = Eq %0.3, %0.4, e0.2
  42302. lgl %2.1 = AsLogical %2.0
  42303. t %2.2 = AsTest %2.1
  42304. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  42305. BB1
  42306. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  42307. void Deopt %1.0
  42308. BB17
  42309. cls %17.0 = LdFun c, e0.2
  42310. prom %17.1 = MkArg missing, Prom(4), e0.2
  42311. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  42312. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  42313. goto BB18
  42314. BB3
  42315. cls %3.0 = LdFun vector, e0.2
  42316. str$' %3.1 = LdConst [1] "list"
  42317. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  42318. real$' %3.3 = LdConst [1] 4
  42319. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  42320. cls' %3.5 = LdConst function (mode = "logical", length = ...
  42321. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  42322. BB18
  42323. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  42324. val %18.1 = Force %18.0, e0.2
  42325. void Return %18.1
  42326. BB5
  42327. t %5.0 = Identical %3.0, %3.5
  42328. void Assume %5.0, %3.6
  42329. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  42330. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  42331. val^ %5.4 = SetShared %5.3
  42332. val %5.5 = Force %5.4, e0.2
  42333. void StVar array, %5.5, e0.2
  42334. real$' %5.7 = LdConst [1] 1
  42335. real$' %5.8 = LdConst [1] 4
  42336. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  42337. BB4
  42338. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  42339. void Deopt %4.0
  42340. BB7
  42341. val' %7.0 = Colon %5.7, %5.8, elided
  42342. val %7.1 = SetShared %7.0
  42343. int$' %7.2 = ForSeqSize %7.1
  42344. int$' %7.3 = LdConst [1] 0
  42345. goto BB8
  42346. BB6
  42347. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  42348. void Deopt %6.0
  42349. BB8
  42350. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  42351. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  42352. int$' %8.2 = Inc %8.1
  42353. int$' %8.3 = EnsureNamed %8.2
  42354. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  42355. BB10
  42356. lgl' %10.0 = Lt %7.2, %8.3, elided
  42357. t %10.1 = AsTest %10.0
  42358. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  42359. BB9
  42360. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  42361. void Deopt %9.0
  42362. BB16
  42363. goto BB18
  42364. BB11
  42365. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  42366. BB13
  42367. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  42368. void StVar i, %13.0, e0.2
  42369. cls %13.2 = LdFun buildTreeDepth, e0.2
  42370. prom %13.3 = MkArg missing, Prom(2), e0.2
  42371. prom %13.4 = MkArg missing, Prom(3), e0.2
  42372. cls' %13.5 = LdConst function (depth, random) { if (d...
  42373. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  42374. BB12
  42375. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  42376. void Deopt %12.0
  42377. BB15
  42378. t %15.0 = Identical %13.2, %13.5
  42379. void Assume %15.0, %13.6
  42380. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  42381. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  42382. val^? %15.4 = LdVar array, e0.2
  42383. val %15.5 = Force %15.4, e0.2
  42384. val^? %15.6 = LdVar i, e0.2
  42385. val %15.7 = Force %15.6, e0.2
  42386. val^ %15.8 = EnsureNamed %15.3
  42387. val %15.9 = Force %15.8, e0.2
  42388. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  42389. void StVar array, %15.10, e0.2
  42390. goto BB8
  42391. BB14
  42392. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  42393. void Deopt %14.0
  42394. Prom 0:
  42395. BB0
  42396. env e0.0 = LdFunctionEnv
  42397. str$' %0.1 = LdConst [1] "list"
  42398. void Return %0.1
  42399. Prom 1:
  42400. BB0
  42401. env e0.0 = LdFunctionEnv
  42402. real$' %0.1 = LdConst [1] 4
  42403. void Return %0.1
  42404. Prom 2:
  42405. BB0
  42406. env e0.0 = LdFunctionEnv
  42407. val^? %0.1 = LdVar depth, e0.0
  42408. val %0.2 = Force %0.1, e0.0
  42409. real$' %0.3 = LdConst [1] 1
  42410. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42411. BB2
  42412. val %2.0 = Sub %0.2, %0.3, e0.0
  42413. void Return %2.0
  42414. BB1
  42415. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  42416. void Deopt %1.0
  42417. Prom 3:
  42418. BB0
  42419. env e0.0 = LdFunctionEnv
  42420. val^? %0.1 = LdVar random, e0.0
  42421. val %0.2 = Force %0.1, e0.0
  42422. void Return %0.2
  42423. Prom 4:
  42424. BB0
  42425. env e0.0 = LdFunctionEnv
  42426. cls %0.1 = LdFun nextRandom, e0.0
  42427. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  42428. t %0.3 = Identical %0.1, %0.2
  42429. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42430. BB2
  42431. void Assume %0.3, %0.4
  42432. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  42433. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  42434. real$' %2.3 = LdConst [1] 10
  42435. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  42436. BB1
  42437. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  42438. void Deopt %1.0
  42439. BB4
  42440. val %4.0 = Force %2.2, e0.0
  42441. val %4.1 = Mod %4.0, %2.3, e0.0
  42442. real$' %4.2 = LdConst [1] 1
  42443. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  42444. BB3
  42445. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  42446. void Deopt %3.0
  42447. BB6
  42448. val %6.0 = Add %4.1, %4.2, e0.0
  42449. void Return %6.0
  42450. BB5
  42451. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  42452. void Deopt %5.0
  42453. ├────── Move environment creation as far as possible: == 43
  42454. test>buildTreeDepth@91[0x7f92445596d0]
  42455. BB0
  42456. val^ %0.0 = LdArg 0
  42457. val^ %0.1 = LdArg 1
  42458. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  42459. val %0.3 = Force %0.0, e0.2
  42460. real$' %0.4 = LdConst [1] 1
  42461. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42462. BB2
  42463. lgl %2.0 = Eq %0.3, %0.4, e0.2
  42464. lgl %2.1 = AsLogical %2.0
  42465. t %2.2 = AsTest %2.1
  42466. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  42467. BB1
  42468. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  42469. void Deopt %1.0
  42470. BB17
  42471. cls %17.0 = LdFun c, e0.2
  42472. prom %17.1 = MkArg missing, Prom(4), e0.2
  42473. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  42474. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  42475. goto BB18
  42476. BB3
  42477. cls %3.0 = LdFun vector, e0.2
  42478. str$' %3.1 = LdConst [1] "list"
  42479. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  42480. real$' %3.3 = LdConst [1] 4
  42481. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  42482. cls' %3.5 = LdConst function (mode = "logical", length = ...
  42483. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  42484. BB18
  42485. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  42486. val %18.1 = Force %18.0, e0.2
  42487. void Return %18.1
  42488. BB5
  42489. t %5.0 = Identical %3.0, %3.5
  42490. void Assume %5.0, %3.6
  42491. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  42492. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  42493. val^ %5.4 = SetShared %5.3
  42494. val %5.5 = Force %5.4, e0.2
  42495. void StVar array, %5.5, e0.2
  42496. real$' %5.7 = LdConst [1] 1
  42497. real$' %5.8 = LdConst [1] 4
  42498. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  42499. BB4
  42500. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  42501. void Deopt %4.0
  42502. BB7
  42503. val' %7.0 = Colon %5.7, %5.8, elided
  42504. val %7.1 = SetShared %7.0
  42505. int$' %7.2 = ForSeqSize %7.1
  42506. int$' %7.3 = LdConst [1] 0
  42507. goto BB8
  42508. BB6
  42509. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  42510. void Deopt %6.0
  42511. BB8
  42512. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  42513. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  42514. int$' %8.2 = Inc %8.1
  42515. int$' %8.3 = EnsureNamed %8.2
  42516. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  42517. BB10
  42518. lgl' %10.0 = Lt %7.2, %8.3, elided
  42519. t %10.1 = AsTest %10.0
  42520. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  42521. BB9
  42522. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  42523. void Deopt %9.0
  42524. BB16
  42525. goto BB18
  42526. BB11
  42527. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  42528. BB13
  42529. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  42530. void StVar i, %13.0, e0.2
  42531. cls %13.2 = LdFun buildTreeDepth, e0.2
  42532. prom %13.3 = MkArg missing, Prom(2), e0.2
  42533. prom %13.4 = MkArg missing, Prom(3), e0.2
  42534. cls' %13.5 = LdConst function (depth, random) { if (d...
  42535. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  42536. BB12
  42537. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  42538. void Deopt %12.0
  42539. BB15
  42540. t %15.0 = Identical %13.2, %13.5
  42541. void Assume %15.0, %13.6
  42542. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  42543. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  42544. val^? %15.4 = LdVar array, e0.2
  42545. val %15.5 = Force %15.4, e0.2
  42546. val^? %15.6 = LdVar i, e0.2
  42547. val %15.7 = Force %15.6, e0.2
  42548. val^ %15.8 = EnsureNamed %15.3
  42549. val %15.9 = Force %15.8, e0.2
  42550. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  42551. void StVar array, %15.10, e0.2
  42552. goto BB8
  42553. BB14
  42554. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  42555. void Deopt %14.0
  42556. Prom 0:
  42557. BB0
  42558. env e0.0 = LdFunctionEnv
  42559. str$' %0.1 = LdConst [1] "list"
  42560. void Return %0.1
  42561. Prom 1:
  42562. BB0
  42563. env e0.0 = LdFunctionEnv
  42564. real$' %0.1 = LdConst [1] 4
  42565. void Return %0.1
  42566. Prom 2:
  42567. BB0
  42568. env e0.0 = LdFunctionEnv
  42569. val^? %0.1 = LdVar depth, e0.0
  42570. val %0.2 = Force %0.1, e0.0
  42571. real$' %0.3 = LdConst [1] 1
  42572. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42573. BB2
  42574. val %2.0 = Sub %0.2, %0.3, e0.0
  42575. void Return %2.0
  42576. BB1
  42577. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  42578. void Deopt %1.0
  42579. Prom 3:
  42580. BB0
  42581. env e0.0 = LdFunctionEnv
  42582. val^? %0.1 = LdVar random, e0.0
  42583. val %0.2 = Force %0.1, e0.0
  42584. void Return %0.2
  42585. Prom 4:
  42586. BB0
  42587. env e0.0 = LdFunctionEnv
  42588. cls %0.1 = LdFun nextRandom, e0.0
  42589. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  42590. t %0.3 = Identical %0.1, %0.2
  42591. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42592. BB2
  42593. void Assume %0.3, %0.4
  42594. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  42595. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  42596. real$' %2.3 = LdConst [1] 10
  42597. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  42598. BB1
  42599. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  42600. void Deopt %1.0
  42601. BB4
  42602. val %4.0 = Force %2.2, e0.0
  42603. val %4.1 = Mod %4.0, %2.3, e0.0
  42604. real$' %4.2 = LdConst [1] 1
  42605. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  42606. BB3
  42607. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  42608. void Deopt %3.0
  42609. BB6
  42610. val %6.0 = Add %4.1, %4.2, e0.0
  42611. void Return %6.0
  42612. BB5
  42613. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  42614. void Deopt %5.0
  42615. ├────── Cleanup redundant operations: == 50
  42616. test>buildTreeDepth@91[0x7f92445596d0]
  42617. BB0
  42618. val^ %0.0 = LdArg 0
  42619. val^ %0.1 = LdArg 1
  42620. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  42621. val %0.3 = Force %0.0, e0.2
  42622. real$' %0.4 = LdConst [1] 1
  42623. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42624. BB2
  42625. lgl %2.0 = Eq %0.3, %0.4, e0.2
  42626. lgl %2.1 = AsLogical %2.0
  42627. t %2.2 = AsTest %2.1
  42628. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  42629. BB1
  42630. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  42631. void Deopt %1.0
  42632. BB17
  42633. cls %17.0 = LdFun c, e0.2
  42634. prom %17.1 = MkArg missing, Prom(4), e0.2
  42635. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  42636. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  42637. goto BB18
  42638. BB3
  42639. cls %3.0 = LdFun vector, e0.2
  42640. str$' %3.1 = LdConst [1] "list"
  42641. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  42642. real$' %3.3 = LdConst [1] 4
  42643. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  42644. cls' %3.5 = LdConst function (mode = "logical", length = ...
  42645. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  42646. BB18
  42647. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  42648. val %18.1 = Force %18.0, e0.2
  42649. void Return %18.1
  42650. BB5
  42651. t %5.0 = Identical %3.0, %3.5
  42652. void Assume %5.0, %3.6
  42653. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  42654. val^ %5.3 = StaticCall vector[0x7f92445590f0](%3.2, %3.4) %5.2, e0.2
  42655. val^ %5.4 = SetShared %5.3
  42656. val %5.5 = Force %5.4, e0.2
  42657. void StVar array, %5.5, e0.2
  42658. real$' %5.7 = LdConst [1] 1
  42659. real$' %5.8 = LdConst [1] 4
  42660. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  42661. BB4
  42662. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  42663. void Deopt %4.0
  42664. BB7
  42665. val' %7.0 = Colon %5.7, %5.8, elided
  42666. val' %7.1 = SetShared %7.0
  42667. int$' %7.2 = ForSeqSize %7.1
  42668. int$' %7.3 = LdConst [1] 0
  42669. goto BB8
  42670. BB6
  42671. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  42672. void Deopt %6.0
  42673. BB8
  42674. val %8.0 = Phi %5.5:BB5, %15.10:BB15
  42675. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  42676. int$' %8.2 = Inc %8.1
  42677. int$' %8.3 = EnsureNamed %8.2
  42678. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  42679. BB10
  42680. lgl' %10.0 = Lt %7.2, %8.3, elided
  42681. t %10.1 = AsTest %10.0
  42682. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  42683. BB9
  42684. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  42685. void Deopt %9.0
  42686. BB16
  42687. goto BB18
  42688. BB11
  42689. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  42690. BB13
  42691. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  42692. void StVar i, %13.0, e0.2
  42693. cls %13.2 = LdFun buildTreeDepth, e0.2
  42694. prom %13.3 = MkArg missing, Prom(2), e0.2
  42695. prom %13.4 = MkArg missing, Prom(3), e0.2
  42696. cls' %13.5 = LdConst function (depth, random) { if (d...
  42697. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  42698. BB12
  42699. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  42700. void Deopt %12.0
  42701. BB15
  42702. t %15.0 = Identical %13.2, %13.5
  42703. void Assume %15.0, %13.6
  42704. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  42705. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  42706. val^? %15.4 = LdVar array, e0.2
  42707. val %15.5 = Force %15.4, e0.2
  42708. val^? %15.6 = LdVar i, e0.2
  42709. val %15.7 = Force %15.6, e0.2
  42710. val^ %15.8 = EnsureNamed %15.3
  42711. val %15.9 = Force %15.8, e0.2
  42712. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  42713. void StVar array, %15.10, e0.2
  42714. goto BB8
  42715. BB14
  42716. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  42717. void Deopt %14.0
  42718. Prom 0:
  42719. BB0
  42720. env e0.0 = LdFunctionEnv
  42721. str$' %0.1 = LdConst [1] "list"
  42722. void Return %0.1
  42723. Prom 1:
  42724. BB0
  42725. env e0.0 = LdFunctionEnv
  42726. real$' %0.1 = LdConst [1] 4
  42727. void Return %0.1
  42728. Prom 2:
  42729. BB0
  42730. env e0.0 = LdFunctionEnv
  42731. val^? %0.1 = LdVar depth, e0.0
  42732. val %0.2 = Force %0.1, e0.0
  42733. real$' %0.3 = LdConst [1] 1
  42734. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42735. BB2
  42736. val %2.0 = Sub %0.2, %0.3, e0.0
  42737. void Return %2.0
  42738. BB1
  42739. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  42740. void Deopt %1.0
  42741. Prom 3:
  42742. BB0
  42743. env e0.0 = LdFunctionEnv
  42744. val^? %0.1 = LdVar random, e0.0
  42745. val %0.2 = Force %0.1, e0.0
  42746. void Return %0.2
  42747. Prom 4:
  42748. BB0
  42749. env e0.0 = LdFunctionEnv
  42750. cls %0.1 = LdFun nextRandom, e0.0
  42751. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  42752. t %0.3 = Identical %0.1, %0.2
  42753. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42754. BB2
  42755. void Assume %0.3, %0.4
  42756. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  42757. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  42758. real$' %2.3 = LdConst [1] 10
  42759. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  42760. BB1
  42761. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  42762. void Deopt %1.0
  42763. BB4
  42764. val %4.0 = Force %2.2, e0.0
  42765. val %4.1 = Mod %4.0, %2.3, e0.0
  42766. real$' %4.2 = LdConst [1] 1
  42767. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  42768. BB3
  42769. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  42770. void Deopt %3.0
  42771. BB6
  42772. val %6.0 = Add %4.1, %4.2, e0.0
  42773. void Return %6.0
  42774. BB5
  42775. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  42776. void Deopt %5.0
  42777. ├────── Inline closures: == 57
  42778. test>buildTreeDepth@91[0x7f92445596d0]
  42779. BB0
  42780. val^ %0.0 = LdArg 0
  42781. val^ %0.1 = LdArg 1
  42782. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  42783. val %0.3 = Force %0.0, e0.2
  42784. real$' %0.4 = LdConst [1] 1
  42785. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42786. BB2
  42787. lgl %2.0 = Eq %0.3, %0.4, e0.2
  42788. lgl %2.1 = AsLogical %2.0
  42789. t %2.2 = AsTest %2.1
  42790. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  42791. BB1
  42792. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  42793. void Deopt %1.0
  42794. BB17
  42795. cls %17.0 = LdFun c, e0.2
  42796. prom %17.1 = MkArg missing, Prom(4), e0.2
  42797. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  42798. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  42799. goto BB18
  42800. BB3
  42801. cls %3.0 = LdFun vector, e0.2
  42802. str$' %3.1 = LdConst [1] "list"
  42803. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  42804. real$' %3.3 = LdConst [1] 4
  42805. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  42806. cls' %3.5 = LdConst function (mode = "logical", length = ...
  42807. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  42808. BB18
  42809. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  42810. val %18.1 = Force %18.0, e0.2
  42811. void Return %18.1
  42812. BB5
  42813. t %5.0 = Identical %3.0, %3.5
  42814. void Assume %5.0, %3.6
  42815. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  42816. goto BB20
  42817. BB4
  42818. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  42819. void Deopt %4.0
  42820. BB20
  42821. val^? %20.0 = CastType %3.2
  42822. val^? %20.1 = CastType %3.4
  42823. env e20.2 = MkEnv mode=%20.0, length=%20.1, parent=<environment: namespace:base>
  42824. val %20.3 = Force %20.0, e20.2
  42825. val^? %20.4 = LdVar length, e20.2
  42826. val %20.5 = Force %20.4, e20.2
  42827. val %20.6 = CallSafeBuiltin vector(%20.3, %20.5)
  42828. goto BB19
  42829. BB19
  42830. val^ %19.0 = SetShared %20.6
  42831. val %19.1 = Force %19.0, e0.2
  42832. void StVar array, %19.1, e0.2
  42833. real$' %19.3 = LdConst [1] 1
  42834. real$' %19.4 = LdConst [1] 4
  42835. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  42836. BB7
  42837. val' %7.0 = Colon %19.3, %19.4, elided
  42838. val' %7.1 = SetShared %7.0
  42839. int$' %7.2 = ForSeqSize %7.1
  42840. int$' %7.3 = LdConst [1] 0
  42841. goto BB8
  42842. BB6
  42843. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  42844. void Deopt %6.0
  42845. BB8
  42846. val %8.0 = Phi %19.1:BB19, %15.10:BB15
  42847. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  42848. int$' %8.2 = Inc %8.1
  42849. int$' %8.3 = EnsureNamed %8.2
  42850. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  42851. BB10
  42852. lgl' %10.0 = Lt %7.2, %8.3, elided
  42853. t %10.1 = AsTest %10.0
  42854. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  42855. BB9
  42856. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  42857. void Deopt %9.0
  42858. BB16
  42859. goto BB18
  42860. BB11
  42861. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  42862. BB13
  42863. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  42864. void StVar i, %13.0, e0.2
  42865. cls %13.2 = LdFun buildTreeDepth, e0.2
  42866. prom %13.3 = MkArg missing, Prom(2), e0.2
  42867. prom %13.4 = MkArg missing, Prom(3), e0.2
  42868. cls' %13.5 = LdConst function (depth, random) { if (d...
  42869. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  42870. BB12
  42871. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  42872. void Deopt %12.0
  42873. BB15
  42874. t %15.0 = Identical %13.2, %13.5
  42875. void Assume %15.0, %13.6
  42876. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  42877. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  42878. val^? %15.4 = LdVar array, e0.2
  42879. val %15.5 = Force %15.4, e0.2
  42880. val^? %15.6 = LdVar i, e0.2
  42881. val %15.7 = Force %15.6, e0.2
  42882. val^ %15.8 = EnsureNamed %15.3
  42883. val %15.9 = Force %15.8, e0.2
  42884. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  42885. void StVar array, %15.10, e0.2
  42886. goto BB8
  42887. BB14
  42888. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  42889. void Deopt %14.0
  42890. Prom 0:
  42891. BB0
  42892. env e0.0 = LdFunctionEnv
  42893. str$' %0.1 = LdConst [1] "list"
  42894. void Return %0.1
  42895. Prom 1:
  42896. BB0
  42897. env e0.0 = LdFunctionEnv
  42898. real$' %0.1 = LdConst [1] 4
  42899. void Return %0.1
  42900. Prom 2:
  42901. BB0
  42902. env e0.0 = LdFunctionEnv
  42903. val^? %0.1 = LdVar depth, e0.0
  42904. val %0.2 = Force %0.1, e0.0
  42905. real$' %0.3 = LdConst [1] 1
  42906. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42907. BB2
  42908. val %2.0 = Sub %0.2, %0.3, e0.0
  42909. void Return %2.0
  42910. BB1
  42911. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  42912. void Deopt %1.0
  42913. Prom 3:
  42914. BB0
  42915. env e0.0 = LdFunctionEnv
  42916. val^? %0.1 = LdVar random, e0.0
  42917. val %0.2 = Force %0.1, e0.0
  42918. void Return %0.2
  42919. Prom 4:
  42920. BB0
  42921. env e0.0 = LdFunctionEnv
  42922. cls %0.1 = LdFun nextRandom, e0.0
  42923. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  42924. t %0.3 = Identical %0.1, %0.2
  42925. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42926. BB2
  42927. void Assume %0.3, %0.4
  42928. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  42929. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  42930. real$' %2.3 = LdConst [1] 10
  42931. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  42932. BB1
  42933. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  42934. void Deopt %1.0
  42935. BB4
  42936. val %4.0 = Force %2.2, e0.0
  42937. val %4.1 = Mod %4.0, %2.3, e0.0
  42938. real$' %4.2 = LdConst [1] 1
  42939. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  42940. BB3
  42941. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  42942. void Deopt %3.0
  42943. BB6
  42944. val %6.0 = Add %4.1, %4.2, e0.0
  42945. void Return %6.0
  42946. BB5
  42947. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  42948. void Deopt %5.0
  42949. ├────── Inline Promises: == 64
  42950. test>buildTreeDepth@91[0x7f92445596d0]
  42951. BB0
  42952. val^ %0.0 = LdArg 0
  42953. val^ %0.1 = LdArg 1
  42954. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  42955. val %0.3 = Force! %0.0, e0.2
  42956. real$' %0.4 = LdConst [1] 1
  42957. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  42958. BB2
  42959. lgl %2.0 = Eq %0.3, %0.4, e0.2
  42960. lgl %2.1 = AsLogical %2.0
  42961. t %2.2 = AsTest %2.1
  42962. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  42963. BB1
  42964. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  42965. void Deopt %1.0
  42966. BB17
  42967. cls %17.0 = LdFun c, e0.2
  42968. prom %17.1 = MkArg missing, Prom(4), e0.2
  42969. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  42970. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  42971. goto BB18
  42972. BB3
  42973. cls %3.0 = LdFun vector, e0.2
  42974. str$' %3.1 = LdConst [1] "list"
  42975. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  42976. real$' %3.3 = LdConst [1] 4
  42977. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  42978. cls' %3.5 = LdConst function (mode = "logical", length = ...
  42979. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  42980. BB18
  42981. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  42982. val %18.1 = Force %18.0, e0.2
  42983. void Return %18.1
  42984. BB5
  42985. t %5.0 = Identical %3.0, %3.5
  42986. void Assume %5.0, %3.6
  42987. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  42988. goto BB20
  42989. BB4
  42990. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  42991. void Deopt %4.0
  42992. BB20
  42993. env e20.0 = MkEnv mode=%3.1, length=%3.3, parent=<environment: namespace:base>
  42994. val %20.1 = Force %3.1, e20.0
  42995. val^? %20.2 = LdVar length, e20.0
  42996. val %20.3 = Force %20.2, e20.0
  42997. val %20.4 = CallSafeBuiltin vector(%20.1, %20.3)
  42998. goto BB19
  42999. BB19
  43000. val^ %19.0 = SetShared %20.4
  43001. val %19.1 = Force %19.0, e0.2
  43002. void StVar array, %19.1, e0.2
  43003. real$' %19.3 = LdConst [1] 1
  43004. real$' %19.4 = LdConst [1] 4
  43005. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  43006. BB7
  43007. val' %7.0 = Colon %19.3, %19.4, elided
  43008. val' %7.1 = SetShared %7.0
  43009. int$' %7.2 = ForSeqSize %7.1
  43010. int$' %7.3 = LdConst [1] 0
  43011. goto BB8
  43012. BB6
  43013. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  43014. void Deopt %6.0
  43015. BB8
  43016. val %8.0 = Phi %19.1:BB19, %15.10:BB15
  43017. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  43018. int$' %8.2 = Inc %8.1
  43019. int$' %8.3 = EnsureNamed %8.2
  43020. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  43021. BB10
  43022. lgl' %10.0 = Lt %7.2, %8.3, elided
  43023. t %10.1 = AsTest %10.0
  43024. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  43025. BB9
  43026. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  43027. void Deopt %9.0
  43028. BB16
  43029. goto BB18
  43030. BB11
  43031. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  43032. BB13
  43033. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  43034. void StVar i, %13.0, e0.2
  43035. cls %13.2 = LdFun buildTreeDepth, e0.2
  43036. prom %13.3 = MkArg missing, Prom(2), e0.2
  43037. prom %13.4 = MkArg missing, Prom(3), e0.2
  43038. cls' %13.5 = LdConst function (depth, random) { if (d...
  43039. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  43040. BB12
  43041. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  43042. void Deopt %12.0
  43043. BB15
  43044. t %15.0 = Identical %13.2, %13.5
  43045. void Assume %15.0, %13.6
  43046. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  43047. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  43048. val^? %15.4 = LdVar array, e0.2
  43049. val %15.5 = Force %15.4, e0.2
  43050. val^? %15.6 = LdVar i, e0.2
  43051. val %15.7 = Force %15.6, e0.2
  43052. val^ %15.8 = EnsureNamed %15.3
  43053. val %15.9 = Force %15.8, e0.2
  43054. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  43055. void StVar array, %15.10, e0.2
  43056. goto BB8
  43057. BB14
  43058. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  43059. void Deopt %14.0
  43060. Prom 0:
  43061. BB0
  43062. env e0.0 = LdFunctionEnv
  43063. str$' %0.1 = LdConst [1] "list"
  43064. void Return %0.1
  43065. Prom 1:
  43066. BB0
  43067. env e0.0 = LdFunctionEnv
  43068. real$' %0.1 = LdConst [1] 4
  43069. void Return %0.1
  43070. Prom 2:
  43071. BB0
  43072. env e0.0 = LdFunctionEnv
  43073. val^? %0.1 = LdVar depth, e0.0
  43074. val %0.2 = Force %0.1, e0.0
  43075. real$' %0.3 = LdConst [1] 1
  43076. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43077. BB2
  43078. val %2.0 = Sub %0.2, %0.3, e0.0
  43079. void Return %2.0
  43080. BB1
  43081. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  43082. void Deopt %1.0
  43083. Prom 3:
  43084. BB0
  43085. env e0.0 = LdFunctionEnv
  43086. val^? %0.1 = LdVar random, e0.0
  43087. val %0.2 = Force %0.1, e0.0
  43088. void Return %0.2
  43089. Prom 4:
  43090. BB0
  43091. env e0.0 = LdFunctionEnv
  43092. cls %0.1 = LdFun nextRandom, e0.0
  43093. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  43094. t %0.3 = Identical %0.1, %0.2
  43095. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43096. BB2
  43097. void Assume %0.3, %0.4
  43098. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  43099. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  43100. real$' %2.3 = LdConst [1] 10
  43101. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  43102. BB1
  43103. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  43104. void Deopt %1.0
  43105. BB4
  43106. val %4.0 = Force %2.2, e0.0
  43107. val %4.1 = Mod %4.0, %2.3, e0.0
  43108. real$' %4.2 = LdConst [1] 1
  43109. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  43110. BB3
  43111. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  43112. void Deopt %3.0
  43113. BB6
  43114. val %6.0 = Add %4.1, %4.2, e0.0
  43115. void Return %6.0
  43116. BB5
  43117. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  43118. void Deopt %5.0
  43119. ├────── Scope resolution: == 71
  43120. test>buildTreeDepth@91[0x7f92445596d0]
  43121. BB0
  43122. val^ %0.0 = LdArg 0
  43123. val^ %0.1 = LdArg 1
  43124. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  43125. val %0.3 = Force! %0.0, e0.2
  43126. real$' %0.4 = LdConst [1] 1
  43127. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43128. BB2
  43129. lgl %2.0 = Eq %0.3, %0.4, e0.2
  43130. lgl %2.1 = AsLogical %2.0
  43131. t %2.2 = AsTest %2.1
  43132. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  43133. BB1
  43134. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  43135. void Deopt %1.0
  43136. BB17
  43137. cls %17.0 = LdFun c, e0.2
  43138. prom %17.1 = MkArg missing, Prom(4), e0.2
  43139. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  43140. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  43141. goto BB18
  43142. BB3
  43143. cls %3.0 = LdFun vector, e0.2
  43144. str$' %3.1 = LdConst [1] "list"
  43145. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  43146. real$' %3.3 = LdConst [1] 4
  43147. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  43148. cls' %3.5 = LdConst function (mode = "logical", length = ...
  43149. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  43150. BB18
  43151. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  43152. val %18.1 = Force %18.0, e0.2
  43153. void Return %18.1
  43154. BB5
  43155. t %5.0 = Identical %3.0, %3.5
  43156. void Assume %5.0, %3.6
  43157. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  43158. goto BB20
  43159. BB4
  43160. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  43161. void Deopt %4.0
  43162. BB20
  43163. env e20.0 = MkEnv mode=%3.1, length=%3.3, parent=<environment: namespace:base>
  43164. val %20.1 = CallSafeBuiltin vector(%3.1, %3.3)
  43165. goto BB19
  43166. BB19
  43167. val^ %19.0 = SetShared %20.1
  43168. val %19.1 = Force %19.0, e0.2
  43169. void StVar array, %19.1, e0.2
  43170. real$' %19.3 = LdConst [1] 1
  43171. real$' %19.4 = LdConst [1] 4
  43172. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  43173. BB7
  43174. val' %7.0 = Colon %19.3, %19.4, elided
  43175. val' %7.1 = SetShared %7.0
  43176. int$' %7.2 = ForSeqSize %7.1
  43177. int$' %7.3 = LdConst [1] 0
  43178. goto BB8
  43179. BB6
  43180. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  43181. void Deopt %6.0
  43182. BB8
  43183. val %8.0 = Phi %19.1:BB19, %15.10:BB15
  43184. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  43185. int$' %8.2 = Inc %8.1
  43186. int$' %8.3 = EnsureNamed %8.2
  43187. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  43188. BB10
  43189. lgl' %10.0 = Lt %7.2, %8.3, elided
  43190. t %10.1 = AsTest %10.0
  43191. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  43192. BB9
  43193. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  43194. void Deopt %9.0
  43195. BB16
  43196. goto BB18
  43197. BB11
  43198. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  43199. BB13
  43200. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  43201. void StVar i, %13.0, e0.2
  43202. cls %13.2 = LdFun buildTreeDepth, e0.2
  43203. prom %13.3 = MkArg missing, Prom(2), e0.2
  43204. prom %13.4 = MkArg missing, Prom(3), e0.2
  43205. cls' %13.5 = LdConst function (depth, random) { if (d...
  43206. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  43207. BB12
  43208. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  43209. void Deopt %12.0
  43210. BB15
  43211. t %15.0 = Identical %13.2, %13.5
  43212. void Assume %15.0, %13.6
  43213. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  43214. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  43215. val^? %15.4 = LdVar array, e0.2
  43216. val %15.5 = Force %15.4, e0.2
  43217. val^? %15.6 = LdVar i, e0.2
  43218. val %15.7 = Force %15.6, e0.2
  43219. val^ %15.8 = EnsureNamed %15.3
  43220. val %15.9 = Force %15.8, e0.2
  43221. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  43222. void StVar array, %15.10, e0.2
  43223. goto BB8
  43224. BB14
  43225. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  43226. void Deopt %14.0
  43227. Prom 0:
  43228. BB0
  43229. env e0.0 = LdFunctionEnv
  43230. str$' %0.1 = LdConst [1] "list"
  43231. void Return %0.1
  43232. Prom 1:
  43233. BB0
  43234. env e0.0 = LdFunctionEnv
  43235. real$' %0.1 = LdConst [1] 4
  43236. void Return %0.1
  43237. Prom 2:
  43238. BB0
  43239. env e0.0 = LdFunctionEnv
  43240. val^? %0.1 = LdVar depth, e0.0
  43241. val %0.2 = Force %0.1, e0.0
  43242. real$' %0.3 = LdConst [1] 1
  43243. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43244. BB2
  43245. val %2.0 = Sub %0.2, %0.3, e0.0
  43246. void Return %2.0
  43247. BB1
  43248. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  43249. void Deopt %1.0
  43250. Prom 3:
  43251. BB0
  43252. env e0.0 = LdFunctionEnv
  43253. val^? %0.1 = LdVar random, e0.0
  43254. val %0.2 = Force %0.1, e0.0
  43255. void Return %0.2
  43256. Prom 4:
  43257. BB0
  43258. env e0.0 = LdFunctionEnv
  43259. cls %0.1 = LdFun nextRandom, e0.0
  43260. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  43261. t %0.3 = Identical %0.1, %0.2
  43262. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43263. BB2
  43264. void Assume %0.3, %0.4
  43265. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  43266. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  43267. real$' %2.3 = LdConst [1] 10
  43268. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  43269. BB1
  43270. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  43271. void Deopt %1.0
  43272. BB4
  43273. val %4.0 = Force %2.2, e0.0
  43274. val %4.1 = Mod %4.0, %2.3, e0.0
  43275. real$' %4.2 = LdConst [1] 1
  43276. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  43277. BB3
  43278. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  43279. void Deopt %3.0
  43280. BB6
  43281. val %6.0 = Add %4.1, %4.2, e0.0
  43282. void Return %6.0
  43283. BB5
  43284. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  43285. void Deopt %5.0
  43286. ├────── Constant folding: == 78
  43287. test>buildTreeDepth@91[0x7f92445596d0]
  43288. BB0
  43289. val^ %0.0 = LdArg 0
  43290. val^ %0.1 = LdArg 1
  43291. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  43292. val %0.3 = Force! %0.0, e0.2
  43293. real$' %0.4 = LdConst [1] 1
  43294. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43295. BB2
  43296. lgl %2.0 = Eq %0.3, %0.4, e0.2
  43297. lgl %2.1 = AsLogical %2.0
  43298. t %2.2 = AsTest %2.1
  43299. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  43300. BB1
  43301. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  43302. void Deopt %1.0
  43303. BB17
  43304. cls %17.0 = LdFun c, e0.2
  43305. prom %17.1 = MkArg missing, Prom(4), e0.2
  43306. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  43307. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  43308. goto BB18
  43309. BB3
  43310. cls %3.0 = LdFun vector, e0.2
  43311. str$' %3.1 = LdConst [1] "list"
  43312. prom %3.2 = MkArg %3.1, Prom(0), e0.2
  43313. real$' %3.3 = LdConst [1] 4
  43314. prom %3.4 = MkArg %3.3, Prom(1), e0.2
  43315. cls' %3.5 = LdConst function (mode = "logical", length = ...
  43316. cp %3.6 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  43317. BB18
  43318. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  43319. val %18.1 = Force %18.0, e0.2
  43320. void Return %18.1
  43321. BB5
  43322. t %5.0 = Identical %3.0, %3.5
  43323. void Assume %5.0, %3.6
  43324. fs %5.2 = FrameState 0x7f924457f3d0+138: [], env=e0.2
  43325. goto BB20
  43326. BB4
  43327. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  43328. void Deopt %4.0
  43329. BB20
  43330. env e20.0 = MkEnv mode=%3.1, length=%3.3, parent=<environment: namespace:base>
  43331. val %20.1 = CallSafeBuiltin vector(%3.1, %3.3)
  43332. goto BB19
  43333. BB19
  43334. val^ %19.0 = SetShared %20.1
  43335. val %19.1 = Force %19.0, e0.2
  43336. void StVar array, %19.1, e0.2
  43337. real$' %19.3 = LdConst [1] 1
  43338. real$' %19.4 = LdConst [1] 4
  43339. cp %19.5 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  43340. BB7
  43341. val' %7.0 = Colon %19.3, %19.4, elided
  43342. val' %7.1 = SetShared %7.0
  43343. int$' %7.2 = ForSeqSize %7.1
  43344. int$' %7.3 = LdConst [1] 0
  43345. goto BB8
  43346. BB6
  43347. fs %6.0 = FrameState 0x7f924457f3d0+192: [%19.3, %19.4], env=e0.2
  43348. void Deopt %6.0
  43349. BB8
  43350. val %8.0 = Phi %19.1:BB19, %15.10:BB15
  43351. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  43352. int$' %8.2 = Inc %8.1
  43353. int$' %8.3 = EnsureNamed %8.2
  43354. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  43355. BB10
  43356. lgl' %10.0 = Lt %7.2, %8.3, elided
  43357. t %10.1 = AsTest %10.0
  43358. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  43359. BB9
  43360. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  43361. void Deopt %9.0
  43362. BB16
  43363. goto BB18
  43364. BB11
  43365. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  43366. BB13
  43367. val$ %13.0 = Extract2_1D %7.1, %8.3, e0.2
  43368. void StVar i, %13.0, e0.2
  43369. cls %13.2 = LdFun buildTreeDepth, e0.2
  43370. prom %13.3 = MkArg missing, Prom(2), e0.2
  43371. prom %13.4 = MkArg missing, Prom(3), e0.2
  43372. cls' %13.5 = LdConst function (depth, random) { if (d...
  43373. cp %13.6 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  43374. BB12
  43375. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  43376. void Deopt %12.0
  43377. BB15
  43378. t %15.0 = Identical %13.2, %13.5
  43379. void Assume %15.0, %13.6
  43380. fs %15.2 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  43381. val^ %15.3 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.2, e0.2
  43382. val^? %15.4 = LdVar array, e0.2
  43383. val %15.5 = Force %15.4, e0.2
  43384. val^? %15.6 = LdVar i, e0.2
  43385. val %15.7 = Force %15.6, e0.2
  43386. val^ %15.8 = EnsureNamed %15.3
  43387. val %15.9 = Force %15.8, e0.2
  43388. val %15.10 = Subassign2_1D %15.9, %15.5, %15.7, e0.2
  43389. void StVar array, %15.10, e0.2
  43390. goto BB8
  43391. BB14
  43392. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  43393. void Deopt %14.0
  43394. Prom 0:
  43395. BB0
  43396. env e0.0 = LdFunctionEnv
  43397. str$' %0.1 = LdConst [1] "list"
  43398. void Return %0.1
  43399. Prom 1:
  43400. BB0
  43401. env e0.0 = LdFunctionEnv
  43402. real$' %0.1 = LdConst [1] 4
  43403. void Return %0.1
  43404. Prom 2:
  43405. BB0
  43406. env e0.0 = LdFunctionEnv
  43407. val^? %0.1 = LdVar depth, e0.0
  43408. val %0.2 = Force %0.1, e0.0
  43409. real$' %0.3 = LdConst [1] 1
  43410. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43411. BB2
  43412. val %2.0 = Sub %0.2, %0.3, e0.0
  43413. void Return %2.0
  43414. BB1
  43415. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  43416. void Deopt %1.0
  43417. Prom 3:
  43418. BB0
  43419. env e0.0 = LdFunctionEnv
  43420. val^? %0.1 = LdVar random, e0.0
  43421. val %0.2 = Force %0.1, e0.0
  43422. void Return %0.2
  43423. Prom 4:
  43424. BB0
  43425. env e0.0 = LdFunctionEnv
  43426. cls %0.1 = LdFun nextRandom, e0.0
  43427. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  43428. t %0.3 = Identical %0.1, %0.2
  43429. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43430. BB2
  43431. void Assume %0.3, %0.4
  43432. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  43433. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  43434. real$' %2.3 = LdConst [1] 10
  43435. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  43436. BB1
  43437. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  43438. void Deopt %1.0
  43439. BB4
  43440. val %4.0 = Force %2.2, e0.0
  43441. val %4.1 = Mod %4.0, %2.3, e0.0
  43442. real$' %4.2 = LdConst [1] 1
  43443. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  43444. BB3
  43445. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  43446. void Deopt %3.0
  43447. BB6
  43448. val %6.0 = Add %4.1, %4.2, e0.0
  43449. void Return %6.0
  43450. BB5
  43451. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  43452. void Deopt %5.0
  43453. ├────── Cleanup redundant operations: == 85
  43454. test>buildTreeDepth@91[0x7f92445596d0]
  43455. BB0
  43456. val^ %0.0 = LdArg 0
  43457. val^ %0.1 = LdArg 1
  43458. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  43459. val %0.3 = Force! %0.0, e0.2
  43460. real$' %0.4 = LdConst [1] 1
  43461. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43462. BB2
  43463. lgl %2.0 = Eq %0.3, %0.4, e0.2
  43464. lgl %2.1 = AsLogical %2.0
  43465. t %2.2 = AsTest %2.1
  43466. void Branch %2.2 -> BB18 (if true) | BB3 (if false)
  43467. BB1
  43468. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  43469. void Deopt %1.0
  43470. BB18
  43471. cls %18.0 = LdFun c, e0.2
  43472. prom %18.1 = MkArg missing, Prom(4), e0.2
  43473. fs %18.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  43474. val^ %18.3 = Call %18.0(%18.1) %18.2, e0.2
  43475. goto BB19
  43476. BB3
  43477. cls %3.0 = LdFun vector, e0.2
  43478. str$' %3.1 = LdConst [1] "list"
  43479. real$' %3.2 = LdConst [1] 4
  43480. cls' %3.3 = LdConst function (mode = "logical", length = ...
  43481. cp %3.4 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  43482. BB19
  43483. val^ %19.0 = Phi %9.0:BB17, %18.3:BB18
  43484. val %19.1 = Force %19.0, e0.2
  43485. void Return %19.1
  43486. BB5
  43487. t %5.0 = Identical %3.0, %3.3
  43488. void Assume %5.0, %3.4
  43489. val %5.2 = CallSafeBuiltin vector(%3.1, %3.2)
  43490. goto BB6
  43491. BB4
  43492. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  43493. void Deopt %4.0
  43494. BB6
  43495. val %6.0 = SetShared %5.2
  43496. void StVar array, %5.2, e0.2
  43497. real$' %6.2 = LdConst [1] 1
  43498. real$' %6.3 = LdConst [1] 4
  43499. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  43500. BB8
  43501. val' %8.0 = Colon %6.2, %6.3, elided
  43502. val' %8.1 = SetShared %8.0
  43503. int$' %8.2 = ForSeqSize %8.1
  43504. int$' %8.3 = LdConst [1] 0
  43505. goto BB9
  43506. BB7
  43507. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  43508. void Deopt %7.0
  43509. BB9
  43510. val %9.0 = Phi %5.2:BB6, %16.10:BB16
  43511. int$' %9.1 = Phi %8.3:BB8, %9.3:BB16
  43512. int$' %9.2 = Inc %9.1
  43513. int$' %9.3 = EnsureNamed %9.2
  43514. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  43515. BB11
  43516. lgl' %11.0 = Lt %8.2, %9.3, elided
  43517. t %11.1 = AsTest %11.0
  43518. void Branch %11.1 -> BB17 (if true) | BB12 (if false)
  43519. BB10
  43520. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  43521. void Deopt %10.0
  43522. BB17
  43523. goto BB19
  43524. BB12
  43525. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  43526. BB14
  43527. val$ %14.0 = Extract2_1D %8.1, %9.3, e0.2
  43528. void StVar i, %14.0, e0.2
  43529. cls %14.2 = LdFun buildTreeDepth, e0.2
  43530. prom %14.3 = MkArg missing, Prom(2), e0.2
  43531. prom %14.4 = MkArg missing, Prom(3), e0.2
  43532. cls' %14.5 = LdConst function (depth, random) { if (d...
  43533. cp %14.6 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  43534. BB13
  43535. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  43536. void Deopt %13.0
  43537. BB16
  43538. t %16.0 = Identical %14.2, %14.5
  43539. void Assume %16.0, %14.6
  43540. fs %16.2 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  43541. val^ %16.3 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.2, e0.2
  43542. val^? %16.4 = LdVar array, e0.2
  43543. val %16.5 = Force %16.4, e0.2
  43544. val^? %16.6 = LdVar i, e0.2
  43545. val %16.7 = Force %16.6, e0.2
  43546. val^ %16.8 = EnsureNamed %16.3
  43547. val %16.9 = Force %16.8, e0.2
  43548. val %16.10 = Subassign2_1D %16.9, %16.5, %16.7, e0.2
  43549. void StVar array, %16.10, e0.2
  43550. goto BB9
  43551. BB15
  43552. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  43553. void Deopt %15.0
  43554. Prom 2:
  43555. BB0
  43556. env e0.0 = LdFunctionEnv
  43557. val^? %0.1 = LdVar depth, e0.0
  43558. val %0.2 = Force %0.1, e0.0
  43559. real$' %0.3 = LdConst [1] 1
  43560. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43561. BB2
  43562. val %2.0 = Sub %0.2, %0.3, e0.0
  43563. void Return %2.0
  43564. BB1
  43565. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  43566. void Deopt %1.0
  43567. Prom 3:
  43568. BB0
  43569. env e0.0 = LdFunctionEnv
  43570. val^? %0.1 = LdVar random, e0.0
  43571. val %0.2 = Force %0.1, e0.0
  43572. void Return %0.2
  43573. Prom 4:
  43574. BB0
  43575. env e0.0 = LdFunctionEnv
  43576. cls %0.1 = LdFun nextRandom, e0.0
  43577. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  43578. t %0.3 = Identical %0.1, %0.2
  43579. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43580. BB2
  43581. void Assume %0.3, %0.4
  43582. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  43583. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  43584. real$' %2.3 = LdConst [1] 10
  43585. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  43586. BB1
  43587. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  43588. void Deopt %1.0
  43589. BB4
  43590. val %4.0 = Force %2.2, e0.0
  43591. val %4.1 = Mod %4.0, %2.3, e0.0
  43592. real$' %4.2 = LdConst [1] 1
  43593. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  43594. BB3
  43595. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  43596. void Deopt %3.0
  43597. BB6
  43598. val %6.0 = Add %4.1, %4.2, e0.0
  43599. void Return %6.0
  43600. BB5
  43601. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  43602. void Deopt %5.0
  43603. ├────── Delay instructions: == 92
  43604. test>buildTreeDepth@91[0x7f92445596d0]
  43605. BB0
  43606. val^ %0.0 = LdArg 0
  43607. val^ %0.1 = LdArg 1
  43608. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  43609. val %0.3 = Force! %0.0, e0.2
  43610. real$' %0.4 = LdConst [1] 1
  43611. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43612. BB2
  43613. lgl %2.0 = Eq %0.3, %0.4, e0.2
  43614. lgl %2.1 = AsLogical %2.0
  43615. t %2.2 = AsTest %2.1
  43616. void Branch %2.2 -> BB18 (if true) | BB3 (if false)
  43617. BB1
  43618. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  43619. void Deopt %1.0
  43620. BB18
  43621. cls %18.0 = LdFun c, e0.2
  43622. prom %18.1 = MkArg missing, Prom(4), e0.2
  43623. fs %18.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  43624. val^ %18.3 = Call %18.0(%18.1) %18.2, e0.2
  43625. goto BB19
  43626. BB3
  43627. cls %3.0 = LdFun vector, e0.2
  43628. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  43629. BB19
  43630. val^ %19.0 = Phi %9.0:BB17, %18.3:BB18
  43631. val %19.1 = Force %19.0, e0.2
  43632. void Return %19.1
  43633. BB5
  43634. real$' %5.0 = LdConst [1] 4
  43635. cls' %5.1 = LdConst function (mode = "logical", length = ...
  43636. t %5.2 = Identical %3.0, %5.1
  43637. void Assume %5.2, %3.1
  43638. str$' %5.4 = LdConst [1] "list"
  43639. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  43640. goto BB6
  43641. BB4
  43642. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  43643. void Deopt %4.0
  43644. BB6
  43645. val %6.0 = SetShared %5.5
  43646. void StVar array, %5.5, e0.2
  43647. real$' %6.2 = LdConst [1] 1
  43648. real$' %6.3 = LdConst [1] 4
  43649. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  43650. BB8
  43651. val' %8.0 = Colon %6.2, %6.3, elided
  43652. val' %8.1 = SetShared %8.0
  43653. int$' %8.2 = ForSeqSize %8.1
  43654. int$' %8.3 = LdConst [1] 0
  43655. goto BB9
  43656. BB7
  43657. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  43658. void Deopt %7.0
  43659. BB9
  43660. val %9.0 = Phi %5.5:BB6, %16.11:BB16
  43661. int$' %9.1 = Phi %8.3:BB8, %9.3:BB16
  43662. int$' %9.2 = Inc %9.1
  43663. int$' %9.3 = EnsureNamed %9.2
  43664. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  43665. BB11
  43666. lgl' %11.0 = Lt %8.2, %9.3, elided
  43667. t %11.1 = AsTest %11.0
  43668. void Branch %11.1 -> BB17 (if true) | BB12 (if false)
  43669. BB10
  43670. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  43671. void Deopt %10.0
  43672. BB17
  43673. goto BB19
  43674. BB12
  43675. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  43676. BB14
  43677. val$ %14.0 = Extract2_1D %8.1, %9.3, e0.2
  43678. void StVar i, %14.0, e0.2
  43679. cls %14.2 = LdFun buildTreeDepth, e0.2
  43680. prom %14.3 = MkArg missing, Prom(2), e0.2
  43681. prom %14.4 = MkArg missing, Prom(3), e0.2
  43682. cp %14.5 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  43683. BB13
  43684. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  43685. void Deopt %13.0
  43686. BB16
  43687. cls' %16.0 = LdConst function (depth, random) { if (d...
  43688. t %16.1 = Identical %14.2, %16.0
  43689. void Assume %16.1, %14.5
  43690. fs %16.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  43691. val^ %16.4 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.3, e0.2
  43692. val^? %16.5 = LdVar array, e0.2
  43693. val %16.6 = Force %16.5, e0.2
  43694. val^? %16.7 = LdVar i, e0.2
  43695. val %16.8 = Force %16.7, e0.2
  43696. val^ %16.9 = EnsureNamed %16.4
  43697. val %16.10 = Force %16.9, e0.2
  43698. val %16.11 = Subassign2_1D %16.10, %16.6, %16.8, e0.2
  43699. void StVar array, %16.11, e0.2
  43700. goto BB9
  43701. BB15
  43702. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  43703. void Deopt %15.0
  43704. Prom 2:
  43705. BB0
  43706. env e0.0 = LdFunctionEnv
  43707. val^? %0.1 = LdVar depth, e0.0
  43708. val %0.2 = Force %0.1, e0.0
  43709. real$' %0.3 = LdConst [1] 1
  43710. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43711. BB2
  43712. val %2.0 = Sub %0.2, %0.3, e0.0
  43713. void Return %2.0
  43714. BB1
  43715. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  43716. void Deopt %1.0
  43717. Prom 3:
  43718. BB0
  43719. env e0.0 = LdFunctionEnv
  43720. val^? %0.1 = LdVar random, e0.0
  43721. val %0.2 = Force %0.1, e0.0
  43722. void Return %0.2
  43723. Prom 4:
  43724. BB0
  43725. env e0.0 = LdFunctionEnv
  43726. cls %0.1 = LdFun nextRandom, e0.0
  43727. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  43728. t %0.3 = Identical %0.1, %0.2
  43729. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43730. BB2
  43731. void Assume %0.3, %0.4
  43732. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  43733. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  43734. real$' %2.3 = LdConst [1] 10
  43735. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  43736. BB1
  43737. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  43738. void Deopt %1.0
  43739. BB4
  43740. val %4.0 = Force %2.2, e0.0
  43741. val %4.1 = Mod %4.0, %2.3, e0.0
  43742. real$' %4.2 = LdConst [1] 1
  43743. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  43744. BB3
  43745. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  43746. void Deopt %3.0
  43747. BB6
  43748. val %6.0 = Add %4.1, %4.2, e0.0
  43749. void Return %6.0
  43750. BB5
  43751. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  43752. void Deopt %5.0
  43753. ├────── Elide environments not needed: == 99
  43754. test>buildTreeDepth@91[0x7f92445596d0]
  43755. BB0
  43756. val^ %0.0 = LdArg 0
  43757. val^ %0.1 = LdArg 1
  43758. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  43759. val %0.3 = Force! %0.0, e0.2
  43760. real$' %0.4 = LdConst [1] 1
  43761. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43762. BB2
  43763. lgl %2.0 = Eq %0.3, %0.4, e0.2
  43764. lgl %2.1 = AsLogical %2.0
  43765. t %2.2 = AsTest %2.1
  43766. void Branch %2.2 -> BB18 (if true) | BB3 (if false)
  43767. BB1
  43768. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  43769. void Deopt %1.0
  43770. BB18
  43771. cls %18.0 = LdFun c, e0.2
  43772. prom %18.1 = MkArg missing, Prom(4), e0.2
  43773. fs %18.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  43774. val^ %18.3 = Call %18.0(%18.1) %18.2, e0.2
  43775. goto BB19
  43776. BB3
  43777. cls %3.0 = LdFun vector, e0.2
  43778. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  43779. BB19
  43780. val^ %19.0 = Phi %9.0:BB17, %18.3:BB18
  43781. val %19.1 = Force %19.0, e0.2
  43782. void Return %19.1
  43783. BB5
  43784. real$' %5.0 = LdConst [1] 4
  43785. cls' %5.1 = LdConst function (mode = "logical", length = ...
  43786. t %5.2 = Identical %3.0, %5.1
  43787. void Assume %5.2, %3.1
  43788. str$' %5.4 = LdConst [1] "list"
  43789. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  43790. goto BB6
  43791. BB4
  43792. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  43793. void Deopt %4.0
  43794. BB6
  43795. val %6.0 = SetShared %5.5
  43796. void StVar array, %5.5, e0.2
  43797. real$' %6.2 = LdConst [1] 1
  43798. real$' %6.3 = LdConst [1] 4
  43799. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  43800. BB8
  43801. val' %8.0 = Colon %6.2, %6.3, elided
  43802. val' %8.1 = SetShared %8.0
  43803. int$' %8.2 = ForSeqSize %8.1
  43804. int$' %8.3 = LdConst [1] 0
  43805. goto BB9
  43806. BB7
  43807. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  43808. void Deopt %7.0
  43809. BB9
  43810. val %9.0 = Phi %5.5:BB6, %16.11:BB16
  43811. int$' %9.1 = Phi %8.3:BB8, %9.3:BB16
  43812. int$' %9.2 = Inc %9.1
  43813. int$' %9.3 = EnsureNamed %9.2
  43814. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  43815. BB11
  43816. lgl' %11.0 = Lt %8.2, %9.3, elided
  43817. t %11.1 = AsTest %11.0
  43818. void Branch %11.1 -> BB17 (if true) | BB12 (if false)
  43819. BB10
  43820. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  43821. void Deopt %10.0
  43822. BB17
  43823. goto BB19
  43824. BB12
  43825. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  43826. BB14
  43827. val$' %14.0 = Extract2_1D %8.1, %9.3, elided
  43828. void StVar i, %14.0, e0.2
  43829. cls %14.2 = LdFun buildTreeDepth, e0.2
  43830. prom %14.3 = MkArg missing, Prom(2), e0.2
  43831. prom %14.4 = MkArg missing, Prom(3), e0.2
  43832. cp %14.5 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  43833. BB13
  43834. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  43835. void Deopt %13.0
  43836. BB16
  43837. cls' %16.0 = LdConst function (depth, random) { if (d...
  43838. t %16.1 = Identical %14.2, %16.0
  43839. void Assume %16.1, %14.5
  43840. fs %16.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  43841. val^ %16.4 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.3, e0.2
  43842. val^? %16.5 = LdVar array, e0.2
  43843. val %16.6 = Force %16.5, e0.2
  43844. val^? %16.7 = LdVar i, e0.2
  43845. val %16.8 = Force %16.7, e0.2
  43846. val^ %16.9 = EnsureNamed %16.4
  43847. val %16.10 = Force %16.9, e0.2
  43848. val %16.11 = Subassign2_1D %16.10, %16.6, %16.8, e0.2
  43849. void StVar array, %16.11, e0.2
  43850. goto BB9
  43851. BB15
  43852. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  43853. void Deopt %15.0
  43854. Prom 2:
  43855. BB0
  43856. env e0.0 = LdFunctionEnv
  43857. val^? %0.1 = LdVar depth, e0.0
  43858. val %0.2 = Force %0.1, e0.0
  43859. real$' %0.3 = LdConst [1] 1
  43860. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43861. BB2
  43862. val %2.0 = Sub %0.2, %0.3, e0.0
  43863. void Return %2.0
  43864. BB1
  43865. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  43866. void Deopt %1.0
  43867. Prom 3:
  43868. BB0
  43869. env e0.0 = LdFunctionEnv
  43870. val^? %0.1 = LdVar random, e0.0
  43871. val %0.2 = Force %0.1, e0.0
  43872. void Return %0.2
  43873. Prom 4:
  43874. BB0
  43875. env e0.0 = LdFunctionEnv
  43876. cls %0.1 = LdFun nextRandom, e0.0
  43877. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  43878. t %0.3 = Identical %0.1, %0.2
  43879. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43880. BB2
  43881. void Assume %0.3, %0.4
  43882. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  43883. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  43884. real$' %2.3 = LdConst [1] 10
  43885. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  43886. BB1
  43887. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  43888. void Deopt %1.0
  43889. BB4
  43890. val %4.0 = Force %2.2, e0.0
  43891. val %4.1 = Mod %4.0, %2.3, e0.0
  43892. real$' %4.2 = LdConst [1] 1
  43893. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  43894. BB3
  43895. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  43896. void Deopt %3.0
  43897. BB6
  43898. val %6.0 = Add %4.1, %4.2, e0.0
  43899. void Return %6.0
  43900. BB5
  43901. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  43902. void Deopt %5.0
  43903. ├────── Move environment creation as far as possible: == 106
  43904. test>buildTreeDepth@91[0x7f92445596d0]
  43905. BB0
  43906. val^ %0.0 = LdArg 0
  43907. val^ %0.1 = LdArg 1
  43908. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  43909. val %0.3 = Force! %0.0, e0.2
  43910. real$' %0.4 = LdConst [1] 1
  43911. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  43912. BB2
  43913. lgl %2.0 = Eq %0.3, %0.4, e0.2
  43914. lgl %2.1 = AsLogical %2.0
  43915. t %2.2 = AsTest %2.1
  43916. void Branch %2.2 -> BB18 (if true) | BB3 (if false)
  43917. BB1
  43918. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  43919. void Deopt %1.0
  43920. BB18
  43921. cls %18.0 = LdFun c, e0.2
  43922. prom %18.1 = MkArg missing, Prom(4), e0.2
  43923. fs %18.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  43924. val^ %18.3 = Call %18.0(%18.1) %18.2, e0.2
  43925. goto BB19
  43926. BB3
  43927. cls %3.0 = LdFun vector, e0.2
  43928. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  43929. BB19
  43930. val^ %19.0 = Phi %9.0:BB17, %18.3:BB18
  43931. val %19.1 = Force %19.0, e0.2
  43932. void Return %19.1
  43933. BB5
  43934. real$' %5.0 = LdConst [1] 4
  43935. cls' %5.1 = LdConst function (mode = "logical", length = ...
  43936. t %5.2 = Identical %3.0, %5.1
  43937. void Assume %5.2, %3.1
  43938. str$' %5.4 = LdConst [1] "list"
  43939. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  43940. goto BB6
  43941. BB4
  43942. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  43943. void Deopt %4.0
  43944. BB6
  43945. val %6.0 = SetShared %5.5
  43946. void StVar array, %5.5, e0.2
  43947. real$' %6.2 = LdConst [1] 1
  43948. real$' %6.3 = LdConst [1] 4
  43949. cp %6.4 = Checkpoint -> BB8 (by default) | BB7 (if coming from expect)
  43950. BB8
  43951. val' %8.0 = Colon %6.2, %6.3, elided
  43952. val' %8.1 = SetShared %8.0
  43953. int$' %8.2 = ForSeqSize %8.1
  43954. int$' %8.3 = LdConst [1] 0
  43955. goto BB9
  43956. BB7
  43957. fs %7.0 = FrameState 0x7f924457f3d0+192: [%6.2, %6.3], env=e0.2
  43958. void Deopt %7.0
  43959. BB9
  43960. val %9.0 = Phi %5.5:BB6, %16.11:BB16
  43961. int$' %9.1 = Phi %8.3:BB8, %9.3:BB16
  43962. int$' %9.2 = Inc %9.1
  43963. int$' %9.3 = EnsureNamed %9.2
  43964. cp %9.4 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  43965. BB11
  43966. lgl' %11.0 = Lt %8.2, %9.3, elided
  43967. t %11.1 = AsTest %11.0
  43968. void Branch %11.1 -> BB17 (if true) | BB12 (if false)
  43969. BB10
  43970. fs %10.0 = FrameState 0x7f924457f3d0+203: [%8.1, %8.2, %9.3, %8.2, %9.3], env=e0.2
  43971. void Deopt %10.0
  43972. BB17
  43973. goto BB19
  43974. BB12
  43975. cp %12.0 = Checkpoint -> BB14 (by default) | BB13 (if coming from expect)
  43976. BB14
  43977. val$' %14.0 = Extract2_1D %8.1, %9.3, elided
  43978. void StVar i, %14.0, e0.2
  43979. cls %14.2 = LdFun buildTreeDepth, e0.2
  43980. prom %14.3 = MkArg missing, Prom(2), e0.2
  43981. prom %14.4 = MkArg missing, Prom(3), e0.2
  43982. cp %14.5 = Checkpoint -> BB16 (by default) | BB15 (if coming from expect)
  43983. BB13
  43984. fs %13.0 = FrameState 0x7f924457f3d0+219: [%8.1, %8.2, %9.3, %8.1, %9.3], env=e0.2
  43985. void Deopt %13.0
  43986. BB16
  43987. cls' %16.0 = LdConst function (depth, random) { if (d...
  43988. t %16.1 = Identical %14.2, %16.0
  43989. void Assume %16.1, %14.5
  43990. fs %16.3 = FrameState 0x7f924457f3d0+290: [%8.1, %8.2, %9.3], env=e0.2
  43991. val^ %16.4 = StaticCall buildTreeDepth[0x7f92446010b0](%14.3, %14.4) %16.3, e0.2
  43992. val^? %16.5 = LdVar array, e0.2
  43993. val %16.6 = Force %16.5, e0.2
  43994. val^? %16.7 = LdVar i, e0.2
  43995. val %16.8 = Force %16.7, e0.2
  43996. val^ %16.9 = EnsureNamed %16.4
  43997. val %16.10 = Force %16.9, e0.2
  43998. val %16.11 = Subassign2_1D %16.10, %16.6, %16.8, e0.2
  43999. void StVar array, %16.11, e0.2
  44000. goto BB9
  44001. BB15
  44002. fs %15.0 = FrameState 0x7f924457f3d0+273: [%8.1, %8.2, %9.3, %14.2], env=e0.2
  44003. void Deopt %15.0
  44004. Prom 2:
  44005. BB0
  44006. env e0.0 = LdFunctionEnv
  44007. val^? %0.1 = LdVar depth, e0.0
  44008. val %0.2 = Force %0.1, e0.0
  44009. real$' %0.3 = LdConst [1] 1
  44010. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44011. BB2
  44012. val %2.0 = Sub %0.2, %0.3, e0.0
  44013. void Return %2.0
  44014. BB1
  44015. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  44016. void Deopt %1.0
  44017. Prom 3:
  44018. BB0
  44019. env e0.0 = LdFunctionEnv
  44020. val^? %0.1 = LdVar random, e0.0
  44021. val %0.2 = Force %0.1, e0.0
  44022. void Return %0.2
  44023. Prom 4:
  44024. BB0
  44025. env e0.0 = LdFunctionEnv
  44026. cls %0.1 = LdFun nextRandom, e0.0
  44027. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  44028. t %0.3 = Identical %0.1, %0.2
  44029. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44030. BB2
  44031. void Assume %0.3, %0.4
  44032. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  44033. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  44034. real$' %2.3 = LdConst [1] 10
  44035. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  44036. BB1
  44037. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  44038. void Deopt %1.0
  44039. BB4
  44040. val %4.0 = Force %2.2, e0.0
  44041. val %4.1 = Mod %4.0, %2.3, e0.0
  44042. real$' %4.2 = LdConst [1] 1
  44043. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  44044. BB3
  44045. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  44046. void Deopt %3.0
  44047. BB6
  44048. val %6.0 = Add %4.1, %4.2, e0.0
  44049. void Return %6.0
  44050. BB5
  44051. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  44052. void Deopt %5.0
  44053. ├────── Cleanup redundant operations: == 113
  44054. test>buildTreeDepth@91[0x7f92445596d0]
  44055. BB0
  44056. val^ %0.0 = LdArg 0
  44057. val^ %0.1 = LdArg 1
  44058. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  44059. val %0.3 = Force! %0.0, e0.2
  44060. real$' %0.4 = LdConst [1] 1
  44061. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44062. BB2
  44063. lgl %2.0 = Eq %0.3, %0.4, e0.2
  44064. lgl %2.1 = AsLogical %2.0
  44065. t %2.2 = AsTest %2.1
  44066. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  44067. BB1
  44068. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  44069. void Deopt %1.0
  44070. BB17
  44071. cls %17.0 = LdFun c, e0.2
  44072. prom %17.1 = MkArg missing, Prom(4), e0.2
  44073. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  44074. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  44075. goto BB18
  44076. BB3
  44077. cls %3.0 = LdFun vector, e0.2
  44078. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  44079. BB18
  44080. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  44081. val %18.1 = Force %18.0, e0.2
  44082. void Return %18.1
  44083. BB5
  44084. real$' %5.0 = LdConst [1] 4
  44085. cls' %5.1 = LdConst function (mode = "logical", length = ...
  44086. t %5.2 = Identical %3.0, %5.1
  44087. void Assume %5.2, %3.1
  44088. str$' %5.4 = LdConst [1] "list"
  44089. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  44090. void StVar array, %5.5, e0.2
  44091. real$' %5.7 = LdConst [1] 1
  44092. real$' %5.8 = LdConst [1] 4
  44093. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  44094. BB4
  44095. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  44096. void Deopt %4.0
  44097. BB7
  44098. val' %7.0 = Colon %5.7, %5.8, elided
  44099. val' %7.1 = SetShared %7.0
  44100. int$' %7.2 = ForSeqSize %7.1
  44101. int$' %7.3 = LdConst [1] 0
  44102. goto BB8
  44103. BB6
  44104. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  44105. void Deopt %6.0
  44106. BB8
  44107. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  44108. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  44109. int$' %8.2 = Inc %8.1
  44110. int$' %8.3 = EnsureNamed %8.2
  44111. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  44112. BB10
  44113. lgl' %10.0 = Lt %7.2, %8.3, elided
  44114. t %10.1 = AsTest %10.0
  44115. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  44116. BB9
  44117. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  44118. void Deopt %9.0
  44119. BB16
  44120. goto BB18
  44121. BB11
  44122. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  44123. BB13
  44124. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  44125. void StVar i, %13.0, e0.2
  44126. cls %13.2 = LdFun buildTreeDepth, e0.2
  44127. prom %13.3 = MkArg missing, Prom(2), e0.2
  44128. prom %13.4 = MkArg missing, Prom(3), e0.2
  44129. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  44130. BB12
  44131. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  44132. void Deopt %12.0
  44133. BB15
  44134. cls' %15.0 = LdConst function (depth, random) { if (d...
  44135. t %15.1 = Identical %13.2, %15.0
  44136. void Assume %15.1, %13.5
  44137. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  44138. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  44139. val^? %15.5 = LdVar array, e0.2
  44140. val %15.6 = Force %15.5, e0.2
  44141. val^? %15.7 = LdVar i, e0.2
  44142. val %15.8 = Force %15.7, e0.2
  44143. val^ %15.9 = EnsureNamed %15.4
  44144. val %15.10 = Force %15.9, e0.2
  44145. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  44146. void StVar array, %15.11, e0.2
  44147. goto BB8
  44148. BB14
  44149. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  44150. void Deopt %14.0
  44151. Prom 2:
  44152. BB0
  44153. env e0.0 = LdFunctionEnv
  44154. val^? %0.1 = LdVar depth, e0.0
  44155. val %0.2 = Force %0.1, e0.0
  44156. real$' %0.3 = LdConst [1] 1
  44157. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44158. BB2
  44159. val %2.0 = Sub %0.2, %0.3, e0.0
  44160. void Return %2.0
  44161. BB1
  44162. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  44163. void Deopt %1.0
  44164. Prom 3:
  44165. BB0
  44166. env e0.0 = LdFunctionEnv
  44167. val^? %0.1 = LdVar random, e0.0
  44168. val %0.2 = Force %0.1, e0.0
  44169. void Return %0.2
  44170. Prom 4:
  44171. BB0
  44172. env e0.0 = LdFunctionEnv
  44173. cls %0.1 = LdFun nextRandom, e0.0
  44174. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  44175. t %0.3 = Identical %0.1, %0.2
  44176. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44177. BB2
  44178. void Assume %0.3, %0.4
  44179. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  44180. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  44181. real$' %2.3 = LdConst [1] 10
  44182. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  44183. BB1
  44184. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  44185. void Deopt %1.0
  44186. BB4
  44187. val %4.0 = Force %2.2, e0.0
  44188. val %4.1 = Mod %4.0, %2.3, e0.0
  44189. real$' %4.2 = LdConst [1] 1
  44190. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  44191. BB3
  44192. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  44193. void Deopt %3.0
  44194. BB6
  44195. val %6.0 = Add %4.1, %4.2, e0.0
  44196. void Return %6.0
  44197. BB5
  44198. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  44199. void Deopt %5.0
  44200. ├────── Inline closures: == 120
  44201. test>buildTreeDepth@91[0x7f92445596d0]
  44202. BB0
  44203. val^ %0.0 = LdArg 0
  44204. val^ %0.1 = LdArg 1
  44205. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  44206. val %0.3 = Force! %0.0, e0.2
  44207. real$' %0.4 = LdConst [1] 1
  44208. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44209. BB2
  44210. lgl %2.0 = Eq %0.3, %0.4, e0.2
  44211. lgl %2.1 = AsLogical %2.0
  44212. t %2.2 = AsTest %2.1
  44213. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  44214. BB1
  44215. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  44216. void Deopt %1.0
  44217. BB17
  44218. cls %17.0 = LdFun c, e0.2
  44219. prom %17.1 = MkArg missing, Prom(4), e0.2
  44220. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  44221. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  44222. goto BB18
  44223. BB3
  44224. cls %3.0 = LdFun vector, e0.2
  44225. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  44226. BB18
  44227. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  44228. val %18.1 = Force %18.0, e0.2
  44229. void Return %18.1
  44230. BB5
  44231. real$' %5.0 = LdConst [1] 4
  44232. cls' %5.1 = LdConst function (mode = "logical", length = ...
  44233. t %5.2 = Identical %3.0, %5.1
  44234. void Assume %5.2, %3.1
  44235. str$' %5.4 = LdConst [1] "list"
  44236. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  44237. void StVar array, %5.5, e0.2
  44238. real$' %5.7 = LdConst [1] 1
  44239. real$' %5.8 = LdConst [1] 4
  44240. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  44241. BB4
  44242. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  44243. void Deopt %4.0
  44244. BB7
  44245. val' %7.0 = Colon %5.7, %5.8, elided
  44246. val' %7.1 = SetShared %7.0
  44247. int$' %7.2 = ForSeqSize %7.1
  44248. int$' %7.3 = LdConst [1] 0
  44249. goto BB8
  44250. BB6
  44251. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  44252. void Deopt %6.0
  44253. BB8
  44254. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  44255. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  44256. int$' %8.2 = Inc %8.1
  44257. int$' %8.3 = EnsureNamed %8.2
  44258. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  44259. BB10
  44260. lgl' %10.0 = Lt %7.2, %8.3, elided
  44261. t %10.1 = AsTest %10.0
  44262. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  44263. BB9
  44264. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  44265. void Deopt %9.0
  44266. BB16
  44267. goto BB18
  44268. BB11
  44269. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  44270. BB13
  44271. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  44272. void StVar i, %13.0, e0.2
  44273. cls %13.2 = LdFun buildTreeDepth, e0.2
  44274. prom %13.3 = MkArg missing, Prom(2), e0.2
  44275. prom %13.4 = MkArg missing, Prom(3), e0.2
  44276. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  44277. BB12
  44278. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  44279. void Deopt %12.0
  44280. BB15
  44281. cls' %15.0 = LdConst function (depth, random) { if (d...
  44282. t %15.1 = Identical %13.2, %15.0
  44283. void Assume %15.1, %13.5
  44284. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  44285. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  44286. val^? %15.5 = LdVar array, e0.2
  44287. val %15.6 = Force %15.5, e0.2
  44288. val^? %15.7 = LdVar i, e0.2
  44289. val %15.8 = Force %15.7, e0.2
  44290. val^ %15.9 = EnsureNamed %15.4
  44291. val %15.10 = Force %15.9, e0.2
  44292. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  44293. void StVar array, %15.11, e0.2
  44294. goto BB8
  44295. BB14
  44296. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  44297. void Deopt %14.0
  44298. Prom 2:
  44299. BB0
  44300. env e0.0 = LdFunctionEnv
  44301. val^? %0.1 = LdVar depth, e0.0
  44302. val %0.2 = Force %0.1, e0.0
  44303. real$' %0.3 = LdConst [1] 1
  44304. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44305. BB2
  44306. val %2.0 = Sub %0.2, %0.3, e0.0
  44307. void Return %2.0
  44308. BB1
  44309. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  44310. void Deopt %1.0
  44311. Prom 3:
  44312. BB0
  44313. env e0.0 = LdFunctionEnv
  44314. val^? %0.1 = LdVar random, e0.0
  44315. val %0.2 = Force %0.1, e0.0
  44316. void Return %0.2
  44317. Prom 4:
  44318. BB0
  44319. env e0.0 = LdFunctionEnv
  44320. cls %0.1 = LdFun nextRandom, e0.0
  44321. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  44322. t %0.3 = Identical %0.1, %0.2
  44323. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44324. BB2
  44325. void Assume %0.3, %0.4
  44326. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  44327. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  44328. real$' %2.3 = LdConst [1] 10
  44329. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  44330. BB1
  44331. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  44332. void Deopt %1.0
  44333. BB4
  44334. val %4.0 = Force %2.2, e0.0
  44335. val %4.1 = Mod %4.0, %2.3, e0.0
  44336. real$' %4.2 = LdConst [1] 1
  44337. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  44338. BB3
  44339. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  44340. void Deopt %3.0
  44341. BB6
  44342. val %6.0 = Add %4.1, %4.2, e0.0
  44343. void Return %6.0
  44344. BB5
  44345. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  44346. void Deopt %5.0
  44347. ├────── Inline Promises: == 127
  44348. test>buildTreeDepth@91[0x7f92445596d0]
  44349. BB0
  44350. val^ %0.0 = LdArg 0
  44351. val^ %0.1 = LdArg 1
  44352. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  44353. val %0.3 = Force! %0.0, e0.2
  44354. real$' %0.4 = LdConst [1] 1
  44355. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44356. BB2
  44357. lgl %2.0 = Eq %0.3, %0.4, e0.2
  44358. lgl %2.1 = AsLogical %2.0
  44359. t %2.2 = AsTest %2.1
  44360. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  44361. BB1
  44362. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  44363. void Deopt %1.0
  44364. BB17
  44365. cls %17.0 = LdFun c, e0.2
  44366. prom %17.1 = MkArg missing, Prom(4), e0.2
  44367. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  44368. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  44369. goto BB18
  44370. BB3
  44371. cls %3.0 = LdFun vector, e0.2
  44372. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  44373. BB18
  44374. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  44375. val %18.1 = Force %18.0, e0.2
  44376. void Return %18.1
  44377. BB5
  44378. real$' %5.0 = LdConst [1] 4
  44379. cls' %5.1 = LdConst function (mode = "logical", length = ...
  44380. t %5.2 = Identical %3.0, %5.1
  44381. void Assume %5.2, %3.1
  44382. str$' %5.4 = LdConst [1] "list"
  44383. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  44384. void StVar array, %5.5, e0.2
  44385. real$' %5.7 = LdConst [1] 1
  44386. real$' %5.8 = LdConst [1] 4
  44387. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  44388. BB4
  44389. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  44390. void Deopt %4.0
  44391. BB7
  44392. val' %7.0 = Colon %5.7, %5.8, elided
  44393. val' %7.1 = SetShared %7.0
  44394. int$' %7.2 = ForSeqSize %7.1
  44395. int$' %7.3 = LdConst [1] 0
  44396. goto BB8
  44397. BB6
  44398. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  44399. void Deopt %6.0
  44400. BB8
  44401. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  44402. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  44403. int$' %8.2 = Inc %8.1
  44404. int$' %8.3 = EnsureNamed %8.2
  44405. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  44406. BB10
  44407. lgl' %10.0 = Lt %7.2, %8.3, elided
  44408. t %10.1 = AsTest %10.0
  44409. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  44410. BB9
  44411. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  44412. void Deopt %9.0
  44413. BB16
  44414. goto BB18
  44415. BB11
  44416. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  44417. BB13
  44418. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  44419. void StVar i, %13.0, e0.2
  44420. cls %13.2 = LdFun buildTreeDepth, e0.2
  44421. prom %13.3 = MkArg missing, Prom(2), e0.2
  44422. prom %13.4 = MkArg missing, Prom(3), e0.2
  44423. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  44424. BB12
  44425. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  44426. void Deopt %12.0
  44427. BB15
  44428. cls' %15.0 = LdConst function (depth, random) { if (d...
  44429. t %15.1 = Identical %13.2, %15.0
  44430. void Assume %15.1, %13.5
  44431. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  44432. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  44433. val^? %15.5 = LdVar array, e0.2
  44434. val %15.6 = Force %15.5, e0.2
  44435. val^? %15.7 = LdVar i, e0.2
  44436. val %15.8 = Force %15.7, e0.2
  44437. val^ %15.9 = EnsureNamed %15.4
  44438. val %15.10 = Force %15.9, e0.2
  44439. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  44440. void StVar array, %15.11, e0.2
  44441. goto BB8
  44442. BB14
  44443. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  44444. void Deopt %14.0
  44445. Prom 2:
  44446. BB0
  44447. env e0.0 = LdFunctionEnv
  44448. val^? %0.1 = LdVar depth, e0.0
  44449. val %0.2 = Force %0.1, e0.0
  44450. real$' %0.3 = LdConst [1] 1
  44451. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44452. BB2
  44453. val %2.0 = Sub %0.2, %0.3, e0.0
  44454. void Return %2.0
  44455. BB1
  44456. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  44457. void Deopt %1.0
  44458. Prom 3:
  44459. BB0
  44460. env e0.0 = LdFunctionEnv
  44461. val^? %0.1 = LdVar random, e0.0
  44462. val %0.2 = Force %0.1, e0.0
  44463. void Return %0.2
  44464. Prom 4:
  44465. BB0
  44466. env e0.0 = LdFunctionEnv
  44467. cls %0.1 = LdFun nextRandom, e0.0
  44468. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  44469. t %0.3 = Identical %0.1, %0.2
  44470. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44471. BB2
  44472. void Assume %0.3, %0.4
  44473. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  44474. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  44475. real$' %2.3 = LdConst [1] 10
  44476. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  44477. BB1
  44478. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  44479. void Deopt %1.0
  44480. BB4
  44481. val %4.0 = Force %2.2, e0.0
  44482. val %4.1 = Mod %4.0, %2.3, e0.0
  44483. real$' %4.2 = LdConst [1] 1
  44484. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  44485. BB3
  44486. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  44487. void Deopt %3.0
  44488. BB6
  44489. val %6.0 = Add %4.1, %4.2, e0.0
  44490. void Return %6.0
  44491. BB5
  44492. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  44493. void Deopt %5.0
  44494. ├────── Scope resolution: == 134
  44495. test>buildTreeDepth@91[0x7f92445596d0]
  44496. BB0
  44497. val^ %0.0 = LdArg 0
  44498. val^ %0.1 = LdArg 1
  44499. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  44500. val %0.3 = Force! %0.0, e0.2
  44501. real$' %0.4 = LdConst [1] 1
  44502. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44503. BB2
  44504. lgl %2.0 = Eq %0.3, %0.4, e0.2
  44505. lgl %2.1 = AsLogical %2.0
  44506. t %2.2 = AsTest %2.1
  44507. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  44508. BB1
  44509. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  44510. void Deopt %1.0
  44511. BB17
  44512. cls %17.0 = LdFun c, e0.2
  44513. prom %17.1 = MkArg missing, Prom(4), e0.2
  44514. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  44515. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  44516. goto BB18
  44517. BB3
  44518. cls %3.0 = LdFun vector, e0.2
  44519. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  44520. BB18
  44521. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  44522. val %18.1 = Force %18.0, e0.2
  44523. void Return %18.1
  44524. BB5
  44525. real$' %5.0 = LdConst [1] 4
  44526. cls' %5.1 = LdConst function (mode = "logical", length = ...
  44527. t %5.2 = Identical %3.0, %5.1
  44528. void Assume %5.2, %3.1
  44529. str$' %5.4 = LdConst [1] "list"
  44530. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  44531. void StVar array, %5.5, e0.2
  44532. real$' %5.7 = LdConst [1] 1
  44533. real$' %5.8 = LdConst [1] 4
  44534. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  44535. BB4
  44536. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  44537. void Deopt %4.0
  44538. BB7
  44539. val' %7.0 = Colon %5.7, %5.8, elided
  44540. val' %7.1 = SetShared %7.0
  44541. int$' %7.2 = ForSeqSize %7.1
  44542. int$' %7.3 = LdConst [1] 0
  44543. goto BB8
  44544. BB6
  44545. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  44546. void Deopt %6.0
  44547. BB8
  44548. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  44549. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  44550. int$' %8.2 = Inc %8.1
  44551. int$' %8.3 = EnsureNamed %8.2
  44552. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  44553. BB10
  44554. lgl' %10.0 = Lt %7.2, %8.3, elided
  44555. t %10.1 = AsTest %10.0
  44556. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  44557. BB9
  44558. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  44559. void Deopt %9.0
  44560. BB16
  44561. goto BB18
  44562. BB11
  44563. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  44564. BB13
  44565. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  44566. void StVar i, %13.0, e0.2
  44567. cls %13.2 = LdFun buildTreeDepth, e0.2
  44568. prom %13.3 = MkArg missing, Prom(2), e0.2
  44569. prom %13.4 = MkArg missing, Prom(3), e0.2
  44570. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  44571. BB12
  44572. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  44573. void Deopt %12.0
  44574. BB15
  44575. cls' %15.0 = LdConst function (depth, random) { if (d...
  44576. t %15.1 = Identical %13.2, %15.0
  44577. void Assume %15.1, %13.5
  44578. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  44579. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  44580. val^? %15.5 = LdVar array, e0.2
  44581. val %15.6 = Force %15.5, e0.2
  44582. val^? %15.7 = LdVar i, e0.2
  44583. val %15.8 = Force %15.7, e0.2
  44584. val^ %15.9 = EnsureNamed %15.4
  44585. val %15.10 = Force %15.9, e0.2
  44586. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  44587. void StVar array, %15.11, e0.2
  44588. goto BB8
  44589. BB14
  44590. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  44591. void Deopt %14.0
  44592. Prom 2:
  44593. BB0
  44594. env e0.0 = LdFunctionEnv
  44595. val^? %0.1 = LdVar depth, e0.0
  44596. val %0.2 = Force %0.1, e0.0
  44597. real$' %0.3 = LdConst [1] 1
  44598. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44599. BB2
  44600. val %2.0 = Sub %0.2, %0.3, e0.0
  44601. void Return %2.0
  44602. BB1
  44603. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  44604. void Deopt %1.0
  44605. Prom 3:
  44606. BB0
  44607. env e0.0 = LdFunctionEnv
  44608. val^? %0.1 = LdVar random, e0.0
  44609. val %0.2 = Force %0.1, e0.0
  44610. void Return %0.2
  44611. Prom 4:
  44612. BB0
  44613. env e0.0 = LdFunctionEnv
  44614. cls %0.1 = LdFun nextRandom, e0.0
  44615. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  44616. t %0.3 = Identical %0.1, %0.2
  44617. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44618. BB2
  44619. void Assume %0.3, %0.4
  44620. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  44621. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  44622. real$' %2.3 = LdConst [1] 10
  44623. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  44624. BB1
  44625. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  44626. void Deopt %1.0
  44627. BB4
  44628. val %4.0 = Force %2.2, e0.0
  44629. val %4.1 = Mod %4.0, %2.3, e0.0
  44630. real$' %4.2 = LdConst [1] 1
  44631. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  44632. BB3
  44633. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  44634. void Deopt %3.0
  44635. BB6
  44636. val %6.0 = Add %4.1, %4.2, e0.0
  44637. void Return %6.0
  44638. BB5
  44639. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  44640. void Deopt %5.0
  44641. ├────── Constant folding: == 141
  44642. test>buildTreeDepth@91[0x7f92445596d0]
  44643. BB0
  44644. val^ %0.0 = LdArg 0
  44645. val^ %0.1 = LdArg 1
  44646. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  44647. val %0.3 = Force! %0.0, e0.2
  44648. real$' %0.4 = LdConst [1] 1
  44649. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44650. BB2
  44651. lgl %2.0 = Eq %0.3, %0.4, e0.2
  44652. lgl %2.1 = AsLogical %2.0
  44653. t %2.2 = AsTest %2.1
  44654. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  44655. BB1
  44656. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  44657. void Deopt %1.0
  44658. BB17
  44659. cls %17.0 = LdFun c, e0.2
  44660. prom %17.1 = MkArg missing, Prom(4), e0.2
  44661. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  44662. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  44663. goto BB18
  44664. BB3
  44665. cls %3.0 = LdFun vector, e0.2
  44666. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  44667. BB18
  44668. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  44669. val %18.1 = Force %18.0, e0.2
  44670. void Return %18.1
  44671. BB5
  44672. real$' %5.0 = LdConst [1] 4
  44673. cls' %5.1 = LdConst function (mode = "logical", length = ...
  44674. t %5.2 = Identical %3.0, %5.1
  44675. void Assume %5.2, %3.1
  44676. str$' %5.4 = LdConst [1] "list"
  44677. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  44678. void StVar array, %5.5, e0.2
  44679. real$' %5.7 = LdConst [1] 1
  44680. real$' %5.8 = LdConst [1] 4
  44681. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  44682. BB4
  44683. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  44684. void Deopt %4.0
  44685. BB7
  44686. val' %7.0 = Colon %5.7, %5.8, elided
  44687. val' %7.1 = SetShared %7.0
  44688. int$' %7.2 = ForSeqSize %7.1
  44689. int$' %7.3 = LdConst [1] 0
  44690. goto BB8
  44691. BB6
  44692. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  44693. void Deopt %6.0
  44694. BB8
  44695. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  44696. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  44697. int$' %8.2 = Inc %8.1
  44698. int$' %8.3 = EnsureNamed %8.2
  44699. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  44700. BB10
  44701. lgl' %10.0 = Lt %7.2, %8.3, elided
  44702. t %10.1 = AsTest %10.0
  44703. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  44704. BB9
  44705. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  44706. void Deopt %9.0
  44707. BB16
  44708. goto BB18
  44709. BB11
  44710. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  44711. BB13
  44712. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  44713. void StVar i, %13.0, e0.2
  44714. cls %13.2 = LdFun buildTreeDepth, e0.2
  44715. prom %13.3 = MkArg missing, Prom(2), e0.2
  44716. prom %13.4 = MkArg missing, Prom(3), e0.2
  44717. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  44718. BB12
  44719. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  44720. void Deopt %12.0
  44721. BB15
  44722. cls' %15.0 = LdConst function (depth, random) { if (d...
  44723. t %15.1 = Identical %13.2, %15.0
  44724. void Assume %15.1, %13.5
  44725. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  44726. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  44727. val^? %15.5 = LdVar array, e0.2
  44728. val %15.6 = Force %15.5, e0.2
  44729. val^? %15.7 = LdVar i, e0.2
  44730. val %15.8 = Force %15.7, e0.2
  44731. val^ %15.9 = EnsureNamed %15.4
  44732. val %15.10 = Force %15.9, e0.2
  44733. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  44734. void StVar array, %15.11, e0.2
  44735. goto BB8
  44736. BB14
  44737. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  44738. void Deopt %14.0
  44739. Prom 2:
  44740. BB0
  44741. env e0.0 = LdFunctionEnv
  44742. val^? %0.1 = LdVar depth, e0.0
  44743. val %0.2 = Force %0.1, e0.0
  44744. real$' %0.3 = LdConst [1] 1
  44745. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44746. BB2
  44747. val %2.0 = Sub %0.2, %0.3, e0.0
  44748. void Return %2.0
  44749. BB1
  44750. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  44751. void Deopt %1.0
  44752. Prom 3:
  44753. BB0
  44754. env e0.0 = LdFunctionEnv
  44755. val^? %0.1 = LdVar random, e0.0
  44756. val %0.2 = Force %0.1, e0.0
  44757. void Return %0.2
  44758. Prom 4:
  44759. BB0
  44760. env e0.0 = LdFunctionEnv
  44761. cls %0.1 = LdFun nextRandom, e0.0
  44762. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  44763. t %0.3 = Identical %0.1, %0.2
  44764. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44765. BB2
  44766. void Assume %0.3, %0.4
  44767. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  44768. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  44769. real$' %2.3 = LdConst [1] 10
  44770. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  44771. BB1
  44772. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  44773. void Deopt %1.0
  44774. BB4
  44775. val %4.0 = Force %2.2, e0.0
  44776. val %4.1 = Mod %4.0, %2.3, e0.0
  44777. real$' %4.2 = LdConst [1] 1
  44778. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  44779. BB3
  44780. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  44781. void Deopt %3.0
  44782. BB6
  44783. val %6.0 = Add %4.1, %4.2, e0.0
  44784. void Return %6.0
  44785. BB5
  44786. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  44787. void Deopt %5.0
  44788. ├────── Cleanup redundant operations: == 148
  44789. test>buildTreeDepth@91[0x7f92445596d0]
  44790. BB0
  44791. val^ %0.0 = LdArg 0
  44792. val^ %0.1 = LdArg 1
  44793. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  44794. val %0.3 = Force! %0.0, e0.2
  44795. real$' %0.4 = LdConst [1] 1
  44796. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44797. BB2
  44798. lgl %2.0 = Eq %0.3, %0.4, e0.2
  44799. lgl %2.1 = AsLogical %2.0
  44800. t %2.2 = AsTest %2.1
  44801. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  44802. BB1
  44803. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  44804. void Deopt %1.0
  44805. BB17
  44806. cls %17.0 = LdFun c, e0.2
  44807. prom %17.1 = MkArg missing, Prom(4), e0.2
  44808. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  44809. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  44810. goto BB18
  44811. BB3
  44812. cls %3.0 = LdFun vector, e0.2
  44813. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  44814. BB18
  44815. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  44816. val %18.1 = Force %18.0, e0.2
  44817. void Return %18.1
  44818. BB5
  44819. real$' %5.0 = LdConst [1] 4
  44820. cls' %5.1 = LdConst function (mode = "logical", length = ...
  44821. t %5.2 = Identical %3.0, %5.1
  44822. void Assume %5.2, %3.1
  44823. str$' %5.4 = LdConst [1] "list"
  44824. val %5.5 = CallSafeBuiltin vector(%5.4, %5.0)
  44825. void StVar array, %5.5, e0.2
  44826. real$' %5.7 = LdConst [1] 1
  44827. real$' %5.8 = LdConst [1] 4
  44828. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  44829. BB4
  44830. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  44831. void Deopt %4.0
  44832. BB7
  44833. val' %7.0 = Colon %5.7, %5.8, elided
  44834. val' %7.1 = SetShared %7.0
  44835. int$' %7.2 = ForSeqSize %7.1
  44836. int$' %7.3 = LdConst [1] 0
  44837. goto BB8
  44838. BB6
  44839. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  44840. void Deopt %6.0
  44841. BB8
  44842. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  44843. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  44844. int$' %8.2 = Inc %8.1
  44845. int$' %8.3 = EnsureNamed %8.2
  44846. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  44847. BB10
  44848. lgl' %10.0 = Lt %7.2, %8.3, elided
  44849. t %10.1 = AsTest %10.0
  44850. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  44851. BB9
  44852. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  44853. void Deopt %9.0
  44854. BB16
  44855. goto BB18
  44856. BB11
  44857. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  44858. BB13
  44859. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  44860. void StVar i, %13.0, e0.2
  44861. cls %13.2 = LdFun buildTreeDepth, e0.2
  44862. prom %13.3 = MkArg missing, Prom(2), e0.2
  44863. prom %13.4 = MkArg missing, Prom(3), e0.2
  44864. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  44865. BB12
  44866. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  44867. void Deopt %12.0
  44868. BB15
  44869. cls' %15.0 = LdConst function (depth, random) { if (d...
  44870. t %15.1 = Identical %13.2, %15.0
  44871. void Assume %15.1, %13.5
  44872. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  44873. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  44874. val^? %15.5 = LdVar array, e0.2
  44875. val %15.6 = Force %15.5, e0.2
  44876. val^? %15.7 = LdVar i, e0.2
  44877. val %15.8 = Force %15.7, e0.2
  44878. val^ %15.9 = EnsureNamed %15.4
  44879. val %15.10 = Force %15.9, e0.2
  44880. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  44881. void StVar array, %15.11, e0.2
  44882. goto BB8
  44883. BB14
  44884. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  44885. void Deopt %14.0
  44886. Prom 2:
  44887. BB0
  44888. env e0.0 = LdFunctionEnv
  44889. val^? %0.1 = LdVar depth, e0.0
  44890. val %0.2 = Force %0.1, e0.0
  44891. real$' %0.3 = LdConst [1] 1
  44892. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44893. BB2
  44894. val %2.0 = Sub %0.2, %0.3, e0.0
  44895. void Return %2.0
  44896. BB1
  44897. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  44898. void Deopt %1.0
  44899. Prom 3:
  44900. BB0
  44901. env e0.0 = LdFunctionEnv
  44902. val^? %0.1 = LdVar random, e0.0
  44903. val %0.2 = Force %0.1, e0.0
  44904. void Return %0.2
  44905. Prom 4:
  44906. BB0
  44907. env e0.0 = LdFunctionEnv
  44908. cls %0.1 = LdFun nextRandom, e0.0
  44909. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  44910. t %0.3 = Identical %0.1, %0.2
  44911. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44912. BB2
  44913. void Assume %0.3, %0.4
  44914. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  44915. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  44916. real$' %2.3 = LdConst [1] 10
  44917. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  44918. BB1
  44919. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  44920. void Deopt %1.0
  44921. BB4
  44922. val %4.0 = Force %2.2, e0.0
  44923. val %4.1 = Mod %4.0, %2.3, e0.0
  44924. real$' %4.2 = LdConst [1] 1
  44925. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  44926. BB3
  44927. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  44928. void Deopt %3.0
  44929. BB6
  44930. val %6.0 = Add %4.1, %4.2, e0.0
  44931. void Return %6.0
  44932. BB5
  44933. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  44934. void Deopt %5.0
  44935. ├────── Delay instructions: == 155
  44936. test>buildTreeDepth@91[0x7f92445596d0]
  44937. BB0
  44938. val^ %0.0 = LdArg 0
  44939. val^ %0.1 = LdArg 1
  44940. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  44941. val %0.3 = Force! %0.0, e0.2
  44942. real$' %0.4 = LdConst [1] 1
  44943. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  44944. BB2
  44945. lgl %2.0 = Eq %0.3, %0.4, e0.2
  44946. lgl %2.1 = AsLogical %2.0
  44947. t %2.2 = AsTest %2.1
  44948. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  44949. BB1
  44950. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  44951. void Deopt %1.0
  44952. BB17
  44953. cls %17.0 = LdFun c, e0.2
  44954. prom %17.1 = MkArg missing, Prom(4), e0.2
  44955. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  44956. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  44957. goto BB18
  44958. BB3
  44959. cls %3.0 = LdFun vector, e0.2
  44960. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  44961. BB18
  44962. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  44963. val %18.1 = Force %18.0, e0.2
  44964. void Return %18.1
  44965. BB5
  44966. cls' %5.0 = LdConst function (mode = "logical", length = ...
  44967. t %5.1 = Identical %3.0, %5.0
  44968. void Assume %5.1, %3.1
  44969. real$' %5.3 = LdConst [1] 4
  44970. str$' %5.4 = LdConst [1] "list"
  44971. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  44972. void StVar array, %5.5, e0.2
  44973. real$' %5.7 = LdConst [1] 1
  44974. real$' %5.8 = LdConst [1] 4
  44975. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  44976. BB4
  44977. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  44978. void Deopt %4.0
  44979. BB7
  44980. val' %7.0 = Colon %5.7, %5.8, elided
  44981. val' %7.1 = SetShared %7.0
  44982. int$' %7.2 = ForSeqSize %7.1
  44983. int$' %7.3 = LdConst [1] 0
  44984. goto BB8
  44985. BB6
  44986. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  44987. void Deopt %6.0
  44988. BB8
  44989. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  44990. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  44991. int$' %8.2 = Inc %8.1
  44992. int$' %8.3 = EnsureNamed %8.2
  44993. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  44994. BB10
  44995. lgl' %10.0 = Lt %7.2, %8.3, elided
  44996. t %10.1 = AsTest %10.0
  44997. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  44998. BB9
  44999. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  45000. void Deopt %9.0
  45001. BB16
  45002. goto BB18
  45003. BB11
  45004. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  45005. BB13
  45006. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  45007. void StVar i, %13.0, e0.2
  45008. cls %13.2 = LdFun buildTreeDepth, e0.2
  45009. prom %13.3 = MkArg missing, Prom(2), e0.2
  45010. prom %13.4 = MkArg missing, Prom(3), e0.2
  45011. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  45012. BB12
  45013. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  45014. void Deopt %12.0
  45015. BB15
  45016. cls' %15.0 = LdConst function (depth, random) { if (d...
  45017. t %15.1 = Identical %13.2, %15.0
  45018. void Assume %15.1, %13.5
  45019. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  45020. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  45021. val^? %15.5 = LdVar array, e0.2
  45022. val %15.6 = Force %15.5, e0.2
  45023. val^? %15.7 = LdVar i, e0.2
  45024. val %15.8 = Force %15.7, e0.2
  45025. val^ %15.9 = EnsureNamed %15.4
  45026. val %15.10 = Force %15.9, e0.2
  45027. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  45028. void StVar array, %15.11, e0.2
  45029. goto BB8
  45030. BB14
  45031. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  45032. void Deopt %14.0
  45033. Prom 2:
  45034. BB0
  45035. env e0.0 = LdFunctionEnv
  45036. val^? %0.1 = LdVar depth, e0.0
  45037. val %0.2 = Force %0.1, e0.0
  45038. real$' %0.3 = LdConst [1] 1
  45039. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45040. BB2
  45041. val %2.0 = Sub %0.2, %0.3, e0.0
  45042. void Return %2.0
  45043. BB1
  45044. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  45045. void Deopt %1.0
  45046. Prom 3:
  45047. BB0
  45048. env e0.0 = LdFunctionEnv
  45049. val^? %0.1 = LdVar random, e0.0
  45050. val %0.2 = Force %0.1, e0.0
  45051. void Return %0.2
  45052. Prom 4:
  45053. BB0
  45054. env e0.0 = LdFunctionEnv
  45055. cls %0.1 = LdFun nextRandom, e0.0
  45056. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  45057. t %0.3 = Identical %0.1, %0.2
  45058. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45059. BB2
  45060. void Assume %0.3, %0.4
  45061. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  45062. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  45063. real$' %2.3 = LdConst [1] 10
  45064. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  45065. BB1
  45066. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  45067. void Deopt %1.0
  45068. BB4
  45069. val %4.0 = Force %2.2, e0.0
  45070. val %4.1 = Mod %4.0, %2.3, e0.0
  45071. real$' %4.2 = LdConst [1] 1
  45072. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  45073. BB3
  45074. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  45075. void Deopt %3.0
  45076. BB6
  45077. val %6.0 = Add %4.1, %4.2, e0.0
  45078. void Return %6.0
  45079. BB5
  45080. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  45081. void Deopt %5.0
  45082. ├────── Elide environments not needed: == 162
  45083. test>buildTreeDepth@91[0x7f92445596d0]
  45084. BB0
  45085. val^ %0.0 = LdArg 0
  45086. val^ %0.1 = LdArg 1
  45087. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  45088. val %0.3 = Force! %0.0, e0.2
  45089. real$' %0.4 = LdConst [1] 1
  45090. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45091. BB2
  45092. lgl %2.0 = Eq %0.3, %0.4, e0.2
  45093. lgl %2.1 = AsLogical %2.0
  45094. t %2.2 = AsTest %2.1
  45095. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  45096. BB1
  45097. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  45098. void Deopt %1.0
  45099. BB17
  45100. cls %17.0 = LdFun c, e0.2
  45101. prom %17.1 = MkArg missing, Prom(4), e0.2
  45102. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  45103. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  45104. goto BB18
  45105. BB3
  45106. cls %3.0 = LdFun vector, e0.2
  45107. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  45108. BB18
  45109. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  45110. val %18.1 = Force %18.0, e0.2
  45111. void Return %18.1
  45112. BB5
  45113. cls' %5.0 = LdConst function (mode = "logical", length = ...
  45114. t %5.1 = Identical %3.0, %5.0
  45115. void Assume %5.1, %3.1
  45116. real$' %5.3 = LdConst [1] 4
  45117. str$' %5.4 = LdConst [1] "list"
  45118. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  45119. void StVar array, %5.5, e0.2
  45120. real$' %5.7 = LdConst [1] 1
  45121. real$' %5.8 = LdConst [1] 4
  45122. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  45123. BB4
  45124. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  45125. void Deopt %4.0
  45126. BB7
  45127. val' %7.0 = Colon %5.7, %5.8, elided
  45128. val' %7.1 = SetShared %7.0
  45129. int$' %7.2 = ForSeqSize %7.1
  45130. int$' %7.3 = LdConst [1] 0
  45131. goto BB8
  45132. BB6
  45133. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  45134. void Deopt %6.0
  45135. BB8
  45136. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  45137. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  45138. int$' %8.2 = Inc %8.1
  45139. int$' %8.3 = EnsureNamed %8.2
  45140. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  45141. BB10
  45142. lgl' %10.0 = Lt %7.2, %8.3, elided
  45143. t %10.1 = AsTest %10.0
  45144. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  45145. BB9
  45146. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  45147. void Deopt %9.0
  45148. BB16
  45149. goto BB18
  45150. BB11
  45151. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  45152. BB13
  45153. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  45154. void StVar i, %13.0, e0.2
  45155. cls %13.2 = LdFun buildTreeDepth, e0.2
  45156. prom %13.3 = MkArg missing, Prom(2), e0.2
  45157. prom %13.4 = MkArg missing, Prom(3), e0.2
  45158. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  45159. BB12
  45160. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  45161. void Deopt %12.0
  45162. BB15
  45163. cls' %15.0 = LdConst function (depth, random) { if (d...
  45164. t %15.1 = Identical %13.2, %15.0
  45165. void Assume %15.1, %13.5
  45166. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  45167. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  45168. val^? %15.5 = LdVar array, e0.2
  45169. val %15.6 = Force %15.5, e0.2
  45170. val^? %15.7 = LdVar i, e0.2
  45171. val %15.8 = Force %15.7, e0.2
  45172. val^ %15.9 = EnsureNamed %15.4
  45173. val %15.10 = Force %15.9, e0.2
  45174. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  45175. void StVar array, %15.11, e0.2
  45176. goto BB8
  45177. BB14
  45178. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  45179. void Deopt %14.0
  45180. Prom 2:
  45181. BB0
  45182. env e0.0 = LdFunctionEnv
  45183. val^? %0.1 = LdVar depth, e0.0
  45184. val %0.2 = Force %0.1, e0.0
  45185. real$' %0.3 = LdConst [1] 1
  45186. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45187. BB2
  45188. val %2.0 = Sub %0.2, %0.3, e0.0
  45189. void Return %2.0
  45190. BB1
  45191. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  45192. void Deopt %1.0
  45193. Prom 3:
  45194. BB0
  45195. env e0.0 = LdFunctionEnv
  45196. val^? %0.1 = LdVar random, e0.0
  45197. val %0.2 = Force %0.1, e0.0
  45198. void Return %0.2
  45199. Prom 4:
  45200. BB0
  45201. env e0.0 = LdFunctionEnv
  45202. cls %0.1 = LdFun nextRandom, e0.0
  45203. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  45204. t %0.3 = Identical %0.1, %0.2
  45205. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45206. BB2
  45207. void Assume %0.3, %0.4
  45208. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  45209. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  45210. real$' %2.3 = LdConst [1] 10
  45211. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  45212. BB1
  45213. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  45214. void Deopt %1.0
  45215. BB4
  45216. val %4.0 = Force %2.2, e0.0
  45217. val %4.1 = Mod %4.0, %2.3, e0.0
  45218. real$' %4.2 = LdConst [1] 1
  45219. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  45220. BB3
  45221. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  45222. void Deopt %3.0
  45223. BB6
  45224. val %6.0 = Add %4.1, %4.2, e0.0
  45225. void Return %6.0
  45226. BB5
  45227. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  45228. void Deopt %5.0
  45229. ├────── Move environment creation as far as possible: == 169
  45230. test>buildTreeDepth@91[0x7f92445596d0]
  45231. BB0
  45232. val^ %0.0 = LdArg 0
  45233. val^ %0.1 = LdArg 1
  45234. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  45235. val %0.3 = Force! %0.0, e0.2
  45236. real$' %0.4 = LdConst [1] 1
  45237. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45238. BB2
  45239. lgl %2.0 = Eq %0.3, %0.4, e0.2
  45240. lgl %2.1 = AsLogical %2.0
  45241. t %2.2 = AsTest %2.1
  45242. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  45243. BB1
  45244. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  45245. void Deopt %1.0
  45246. BB17
  45247. cls %17.0 = LdFun c, e0.2
  45248. prom %17.1 = MkArg missing, Prom(4), e0.2
  45249. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  45250. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  45251. goto BB18
  45252. BB3
  45253. cls %3.0 = LdFun vector, e0.2
  45254. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  45255. BB18
  45256. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  45257. val %18.1 = Force %18.0, e0.2
  45258. void Return %18.1
  45259. BB5
  45260. cls' %5.0 = LdConst function (mode = "logical", length = ...
  45261. t %5.1 = Identical %3.0, %5.0
  45262. void Assume %5.1, %3.1
  45263. real$' %5.3 = LdConst [1] 4
  45264. str$' %5.4 = LdConst [1] "list"
  45265. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  45266. void StVar array, %5.5, e0.2
  45267. real$' %5.7 = LdConst [1] 1
  45268. real$' %5.8 = LdConst [1] 4
  45269. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  45270. BB4
  45271. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  45272. void Deopt %4.0
  45273. BB7
  45274. val' %7.0 = Colon %5.7, %5.8, elided
  45275. val' %7.1 = SetShared %7.0
  45276. int$' %7.2 = ForSeqSize %7.1
  45277. int$' %7.3 = LdConst [1] 0
  45278. goto BB8
  45279. BB6
  45280. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  45281. void Deopt %6.0
  45282. BB8
  45283. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  45284. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  45285. int$' %8.2 = Inc %8.1
  45286. int$' %8.3 = EnsureNamed %8.2
  45287. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  45288. BB10
  45289. lgl' %10.0 = Lt %7.2, %8.3, elided
  45290. t %10.1 = AsTest %10.0
  45291. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  45292. BB9
  45293. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  45294. void Deopt %9.0
  45295. BB16
  45296. goto BB18
  45297. BB11
  45298. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  45299. BB13
  45300. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  45301. void StVar i, %13.0, e0.2
  45302. cls %13.2 = LdFun buildTreeDepth, e0.2
  45303. prom %13.3 = MkArg missing, Prom(2), e0.2
  45304. prom %13.4 = MkArg missing, Prom(3), e0.2
  45305. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  45306. BB12
  45307. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  45308. void Deopt %12.0
  45309. BB15
  45310. cls' %15.0 = LdConst function (depth, random) { if (d...
  45311. t %15.1 = Identical %13.2, %15.0
  45312. void Assume %15.1, %13.5
  45313. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  45314. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  45315. val^? %15.5 = LdVar array, e0.2
  45316. val %15.6 = Force %15.5, e0.2
  45317. val^? %15.7 = LdVar i, e0.2
  45318. val %15.8 = Force %15.7, e0.2
  45319. val^ %15.9 = EnsureNamed %15.4
  45320. val %15.10 = Force %15.9, e0.2
  45321. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  45322. void StVar array, %15.11, e0.2
  45323. goto BB8
  45324. BB14
  45325. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  45326. void Deopt %14.0
  45327. Prom 2:
  45328. BB0
  45329. env e0.0 = LdFunctionEnv
  45330. val^? %0.1 = LdVar depth, e0.0
  45331. val %0.2 = Force %0.1, e0.0
  45332. real$' %0.3 = LdConst [1] 1
  45333. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45334. BB2
  45335. val %2.0 = Sub %0.2, %0.3, e0.0
  45336. void Return %2.0
  45337. BB1
  45338. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  45339. void Deopt %1.0
  45340. Prom 3:
  45341. BB0
  45342. env e0.0 = LdFunctionEnv
  45343. val^? %0.1 = LdVar random, e0.0
  45344. val %0.2 = Force %0.1, e0.0
  45345. void Return %0.2
  45346. Prom 4:
  45347. BB0
  45348. env e0.0 = LdFunctionEnv
  45349. cls %0.1 = LdFun nextRandom, e0.0
  45350. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  45351. t %0.3 = Identical %0.1, %0.2
  45352. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45353. BB2
  45354. void Assume %0.3, %0.4
  45355. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  45356. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  45357. real$' %2.3 = LdConst [1] 10
  45358. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  45359. BB1
  45360. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  45361. void Deopt %1.0
  45362. BB4
  45363. val %4.0 = Force %2.2, e0.0
  45364. val %4.1 = Mod %4.0, %2.3, e0.0
  45365. real$' %4.2 = LdConst [1] 1
  45366. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  45367. BB3
  45368. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  45369. void Deopt %3.0
  45370. BB6
  45371. val %6.0 = Add %4.1, %4.2, e0.0
  45372. void Return %6.0
  45373. BB5
  45374. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  45375. void Deopt %5.0
  45376. ├────── Cleanup redundant operations: == 176
  45377. test>buildTreeDepth@91[0x7f92445596d0]
  45378. BB0
  45379. val^ %0.0 = LdArg 0
  45380. val^ %0.1 = LdArg 1
  45381. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  45382. val %0.3 = Force! %0.0, e0.2
  45383. real$' %0.4 = LdConst [1] 1
  45384. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45385. BB2
  45386. lgl %2.0 = Eq %0.3, %0.4, e0.2
  45387. lgl %2.1 = AsLogical %2.0
  45388. t %2.2 = AsTest %2.1
  45389. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  45390. BB1
  45391. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  45392. void Deopt %1.0
  45393. BB17
  45394. cls %17.0 = LdFun c, e0.2
  45395. prom %17.1 = MkArg missing, Prom(4), e0.2
  45396. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  45397. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  45398. goto BB18
  45399. BB3
  45400. cls %3.0 = LdFun vector, e0.2
  45401. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  45402. BB18
  45403. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  45404. val %18.1 = Force %18.0, e0.2
  45405. void Return %18.1
  45406. BB5
  45407. cls' %5.0 = LdConst function (mode = "logical", length = ...
  45408. t %5.1 = Identical %3.0, %5.0
  45409. void Assume %5.1, %3.1
  45410. real$' %5.3 = LdConst [1] 4
  45411. str$' %5.4 = LdConst [1] "list"
  45412. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  45413. void StVar array, %5.5, e0.2
  45414. real$' %5.7 = LdConst [1] 1
  45415. real$' %5.8 = LdConst [1] 4
  45416. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  45417. BB4
  45418. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  45419. void Deopt %4.0
  45420. BB7
  45421. val' %7.0 = Colon %5.7, %5.8, elided
  45422. val' %7.1 = SetShared %7.0
  45423. int$' %7.2 = ForSeqSize %7.1
  45424. int$' %7.3 = LdConst [1] 0
  45425. goto BB8
  45426. BB6
  45427. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  45428. void Deopt %6.0
  45429. BB8
  45430. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  45431. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  45432. int$' %8.2 = Inc %8.1
  45433. int$' %8.3 = EnsureNamed %8.2
  45434. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  45435. BB10
  45436. lgl' %10.0 = Lt %7.2, %8.3, elided
  45437. t %10.1 = AsTest %10.0
  45438. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  45439. BB9
  45440. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  45441. void Deopt %9.0
  45442. BB16
  45443. goto BB18
  45444. BB11
  45445. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  45446. BB13
  45447. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  45448. void StVar i, %13.0, e0.2
  45449. cls %13.2 = LdFun buildTreeDepth, e0.2
  45450. prom %13.3 = MkArg missing, Prom(2), e0.2
  45451. prom %13.4 = MkArg missing, Prom(3), e0.2
  45452. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  45453. BB12
  45454. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  45455. void Deopt %12.0
  45456. BB15
  45457. cls' %15.0 = LdConst function (depth, random) { if (d...
  45458. t %15.1 = Identical %13.2, %15.0
  45459. void Assume %15.1, %13.5
  45460. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  45461. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  45462. val^? %15.5 = LdVar array, e0.2
  45463. val %15.6 = Force %15.5, e0.2
  45464. val^? %15.7 = LdVar i, e0.2
  45465. val %15.8 = Force %15.7, e0.2
  45466. val^ %15.9 = EnsureNamed %15.4
  45467. val %15.10 = Force %15.9, e0.2
  45468. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  45469. void StVar array, %15.11, e0.2
  45470. goto BB8
  45471. BB14
  45472. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  45473. void Deopt %14.0
  45474. Prom 2:
  45475. BB0
  45476. env e0.0 = LdFunctionEnv
  45477. val^? %0.1 = LdVar depth, e0.0
  45478. val %0.2 = Force %0.1, e0.0
  45479. real$' %0.3 = LdConst [1] 1
  45480. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45481. BB2
  45482. val %2.0 = Sub %0.2, %0.3, e0.0
  45483. void Return %2.0
  45484. BB1
  45485. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  45486. void Deopt %1.0
  45487. Prom 3:
  45488. BB0
  45489. env e0.0 = LdFunctionEnv
  45490. val^? %0.1 = LdVar random, e0.0
  45491. val %0.2 = Force %0.1, e0.0
  45492. void Return %0.2
  45493. Prom 4:
  45494. BB0
  45495. env e0.0 = LdFunctionEnv
  45496. cls %0.1 = LdFun nextRandom, e0.0
  45497. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  45498. t %0.3 = Identical %0.1, %0.2
  45499. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45500. BB2
  45501. void Assume %0.3, %0.4
  45502. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  45503. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  45504. real$' %2.3 = LdConst [1] 10
  45505. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  45506. BB1
  45507. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  45508. void Deopt %1.0
  45509. BB4
  45510. val %4.0 = Force %2.2, e0.0
  45511. val %4.1 = Mod %4.0, %2.3, e0.0
  45512. real$' %4.2 = LdConst [1] 1
  45513. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  45514. BB3
  45515. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  45516. void Deopt %3.0
  45517. BB6
  45518. val %6.0 = Add %4.1, %4.2, e0.0
  45519. void Return %6.0
  45520. BB5
  45521. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  45522. void Deopt %5.0
  45523. ├────── Inline closures: == 183
  45524. test>buildTreeDepth@91[0x7f92445596d0]
  45525. BB0
  45526. val^ %0.0 = LdArg 0
  45527. val^ %0.1 = LdArg 1
  45528. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  45529. val %0.3 = Force! %0.0, e0.2
  45530. real$' %0.4 = LdConst [1] 1
  45531. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45532. BB2
  45533. lgl %2.0 = Eq %0.3, %0.4, e0.2
  45534. lgl %2.1 = AsLogical %2.0
  45535. t %2.2 = AsTest %2.1
  45536. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  45537. BB1
  45538. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  45539. void Deopt %1.0
  45540. BB17
  45541. cls %17.0 = LdFun c, e0.2
  45542. prom %17.1 = MkArg missing, Prom(4), e0.2
  45543. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  45544. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  45545. goto BB18
  45546. BB3
  45547. cls %3.0 = LdFun vector, e0.2
  45548. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  45549. BB18
  45550. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  45551. val %18.1 = Force %18.0, e0.2
  45552. void Return %18.1
  45553. BB5
  45554. cls' %5.0 = LdConst function (mode = "logical", length = ...
  45555. t %5.1 = Identical %3.0, %5.0
  45556. void Assume %5.1, %3.1
  45557. real$' %5.3 = LdConst [1] 4
  45558. str$' %5.4 = LdConst [1] "list"
  45559. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  45560. void StVar array, %5.5, e0.2
  45561. real$' %5.7 = LdConst [1] 1
  45562. real$' %5.8 = LdConst [1] 4
  45563. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  45564. BB4
  45565. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  45566. void Deopt %4.0
  45567. BB7
  45568. val' %7.0 = Colon %5.7, %5.8, elided
  45569. val' %7.1 = SetShared %7.0
  45570. int$' %7.2 = ForSeqSize %7.1
  45571. int$' %7.3 = LdConst [1] 0
  45572. goto BB8
  45573. BB6
  45574. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  45575. void Deopt %6.0
  45576. BB8
  45577. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  45578. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  45579. int$' %8.2 = Inc %8.1
  45580. int$' %8.3 = EnsureNamed %8.2
  45581. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  45582. BB10
  45583. lgl' %10.0 = Lt %7.2, %8.3, elided
  45584. t %10.1 = AsTest %10.0
  45585. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  45586. BB9
  45587. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  45588. void Deopt %9.0
  45589. BB16
  45590. goto BB18
  45591. BB11
  45592. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  45593. BB13
  45594. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  45595. void StVar i, %13.0, e0.2
  45596. cls %13.2 = LdFun buildTreeDepth, e0.2
  45597. prom %13.3 = MkArg missing, Prom(2), e0.2
  45598. prom %13.4 = MkArg missing, Prom(3), e0.2
  45599. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  45600. BB12
  45601. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  45602. void Deopt %12.0
  45603. BB15
  45604. cls' %15.0 = LdConst function (depth, random) { if (d...
  45605. t %15.1 = Identical %13.2, %15.0
  45606. void Assume %15.1, %13.5
  45607. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  45608. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  45609. val^? %15.5 = LdVar array, e0.2
  45610. val %15.6 = Force %15.5, e0.2
  45611. val^? %15.7 = LdVar i, e0.2
  45612. val %15.8 = Force %15.7, e0.2
  45613. val^ %15.9 = EnsureNamed %15.4
  45614. val %15.10 = Force %15.9, e0.2
  45615. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  45616. void StVar array, %15.11, e0.2
  45617. goto BB8
  45618. BB14
  45619. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  45620. void Deopt %14.0
  45621. Prom 2:
  45622. BB0
  45623. env e0.0 = LdFunctionEnv
  45624. val^? %0.1 = LdVar depth, e0.0
  45625. val %0.2 = Force %0.1, e0.0
  45626. real$' %0.3 = LdConst [1] 1
  45627. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45628. BB2
  45629. val %2.0 = Sub %0.2, %0.3, e0.0
  45630. void Return %2.0
  45631. BB1
  45632. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  45633. void Deopt %1.0
  45634. Prom 3:
  45635. BB0
  45636. env e0.0 = LdFunctionEnv
  45637. val^? %0.1 = LdVar random, e0.0
  45638. val %0.2 = Force %0.1, e0.0
  45639. void Return %0.2
  45640. Prom 4:
  45641. BB0
  45642. env e0.0 = LdFunctionEnv
  45643. cls %0.1 = LdFun nextRandom, e0.0
  45644. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  45645. t %0.3 = Identical %0.1, %0.2
  45646. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45647. BB2
  45648. void Assume %0.3, %0.4
  45649. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  45650. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  45651. real$' %2.3 = LdConst [1] 10
  45652. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  45653. BB1
  45654. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  45655. void Deopt %1.0
  45656. BB4
  45657. val %4.0 = Force %2.2, e0.0
  45658. val %4.1 = Mod %4.0, %2.3, e0.0
  45659. real$' %4.2 = LdConst [1] 1
  45660. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  45661. BB3
  45662. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  45663. void Deopt %3.0
  45664. BB6
  45665. val %6.0 = Add %4.1, %4.2, e0.0
  45666. void Return %6.0
  45667. BB5
  45668. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  45669. void Deopt %5.0
  45670. ├────── Inline Promises: == 190
  45671. test>buildTreeDepth@91[0x7f92445596d0]
  45672. BB0
  45673. val^ %0.0 = LdArg 0
  45674. val^ %0.1 = LdArg 1
  45675. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  45676. val %0.3 = Force! %0.0, e0.2
  45677. real$' %0.4 = LdConst [1] 1
  45678. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45679. BB2
  45680. lgl %2.0 = Eq %0.3, %0.4, e0.2
  45681. lgl %2.1 = AsLogical %2.0
  45682. t %2.2 = AsTest %2.1
  45683. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  45684. BB1
  45685. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  45686. void Deopt %1.0
  45687. BB17
  45688. cls %17.0 = LdFun c, e0.2
  45689. prom %17.1 = MkArg missing, Prom(4), e0.2
  45690. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  45691. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  45692. goto BB18
  45693. BB3
  45694. cls %3.0 = LdFun vector, e0.2
  45695. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  45696. BB18
  45697. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  45698. val %18.1 = Force %18.0, e0.2
  45699. void Return %18.1
  45700. BB5
  45701. cls' %5.0 = LdConst function (mode = "logical", length = ...
  45702. t %5.1 = Identical %3.0, %5.0
  45703. void Assume %5.1, %3.1
  45704. real$' %5.3 = LdConst [1] 4
  45705. str$' %5.4 = LdConst [1] "list"
  45706. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  45707. void StVar array, %5.5, e0.2
  45708. real$' %5.7 = LdConst [1] 1
  45709. real$' %5.8 = LdConst [1] 4
  45710. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  45711. BB4
  45712. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  45713. void Deopt %4.0
  45714. BB7
  45715. val' %7.0 = Colon %5.7, %5.8, elided
  45716. val' %7.1 = SetShared %7.0
  45717. int$' %7.2 = ForSeqSize %7.1
  45718. int$' %7.3 = LdConst [1] 0
  45719. goto BB8
  45720. BB6
  45721. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  45722. void Deopt %6.0
  45723. BB8
  45724. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  45725. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  45726. int$' %8.2 = Inc %8.1
  45727. int$' %8.3 = EnsureNamed %8.2
  45728. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  45729. BB10
  45730. lgl' %10.0 = Lt %7.2, %8.3, elided
  45731. t %10.1 = AsTest %10.0
  45732. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  45733. BB9
  45734. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  45735. void Deopt %9.0
  45736. BB16
  45737. goto BB18
  45738. BB11
  45739. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  45740. BB13
  45741. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  45742. void StVar i, %13.0, e0.2
  45743. cls %13.2 = LdFun buildTreeDepth, e0.2
  45744. prom %13.3 = MkArg missing, Prom(2), e0.2
  45745. prom %13.4 = MkArg missing, Prom(3), e0.2
  45746. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  45747. BB12
  45748. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  45749. void Deopt %12.0
  45750. BB15
  45751. cls' %15.0 = LdConst function (depth, random) { if (d...
  45752. t %15.1 = Identical %13.2, %15.0
  45753. void Assume %15.1, %13.5
  45754. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  45755. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  45756. val^? %15.5 = LdVar array, e0.2
  45757. val %15.6 = Force %15.5, e0.2
  45758. val^? %15.7 = LdVar i, e0.2
  45759. val %15.8 = Force %15.7, e0.2
  45760. val^ %15.9 = EnsureNamed %15.4
  45761. val %15.10 = Force %15.9, e0.2
  45762. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  45763. void StVar array, %15.11, e0.2
  45764. goto BB8
  45765. BB14
  45766. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  45767. void Deopt %14.0
  45768. Prom 2:
  45769. BB0
  45770. env e0.0 = LdFunctionEnv
  45771. val^? %0.1 = LdVar depth, e0.0
  45772. val %0.2 = Force %0.1, e0.0
  45773. real$' %0.3 = LdConst [1] 1
  45774. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45775. BB2
  45776. val %2.0 = Sub %0.2, %0.3, e0.0
  45777. void Return %2.0
  45778. BB1
  45779. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  45780. void Deopt %1.0
  45781. Prom 3:
  45782. BB0
  45783. env e0.0 = LdFunctionEnv
  45784. val^? %0.1 = LdVar random, e0.0
  45785. val %0.2 = Force %0.1, e0.0
  45786. void Return %0.2
  45787. Prom 4:
  45788. BB0
  45789. env e0.0 = LdFunctionEnv
  45790. cls %0.1 = LdFun nextRandom, e0.0
  45791. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  45792. t %0.3 = Identical %0.1, %0.2
  45793. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45794. BB2
  45795. void Assume %0.3, %0.4
  45796. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  45797. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  45798. real$' %2.3 = LdConst [1] 10
  45799. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  45800. BB1
  45801. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  45802. void Deopt %1.0
  45803. BB4
  45804. val %4.0 = Force %2.2, e0.0
  45805. val %4.1 = Mod %4.0, %2.3, e0.0
  45806. real$' %4.2 = LdConst [1] 1
  45807. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  45808. BB3
  45809. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  45810. void Deopt %3.0
  45811. BB6
  45812. val %6.0 = Add %4.1, %4.2, e0.0
  45813. void Return %6.0
  45814. BB5
  45815. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  45816. void Deopt %5.0
  45817. ├────── Scope resolution: == 197
  45818. test>buildTreeDepth@91[0x7f92445596d0]
  45819. BB0
  45820. val^ %0.0 = LdArg 0
  45821. val^ %0.1 = LdArg 1
  45822. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  45823. val %0.3 = Force! %0.0, e0.2
  45824. real$' %0.4 = LdConst [1] 1
  45825. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45826. BB2
  45827. lgl %2.0 = Eq %0.3, %0.4, e0.2
  45828. lgl %2.1 = AsLogical %2.0
  45829. t %2.2 = AsTest %2.1
  45830. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  45831. BB1
  45832. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  45833. void Deopt %1.0
  45834. BB17
  45835. cls %17.0 = LdFun c, e0.2
  45836. prom %17.1 = MkArg missing, Prom(4), e0.2
  45837. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  45838. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  45839. goto BB18
  45840. BB3
  45841. cls %3.0 = LdFun vector, e0.2
  45842. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  45843. BB18
  45844. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  45845. val %18.1 = Force %18.0, e0.2
  45846. void Return %18.1
  45847. BB5
  45848. cls' %5.0 = LdConst function (mode = "logical", length = ...
  45849. t %5.1 = Identical %3.0, %5.0
  45850. void Assume %5.1, %3.1
  45851. real$' %5.3 = LdConst [1] 4
  45852. str$' %5.4 = LdConst [1] "list"
  45853. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  45854. void StVar array, %5.5, e0.2
  45855. real$' %5.7 = LdConst [1] 1
  45856. real$' %5.8 = LdConst [1] 4
  45857. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  45858. BB4
  45859. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  45860. void Deopt %4.0
  45861. BB7
  45862. val' %7.0 = Colon %5.7, %5.8, elided
  45863. val' %7.1 = SetShared %7.0
  45864. int$' %7.2 = ForSeqSize %7.1
  45865. int$' %7.3 = LdConst [1] 0
  45866. goto BB8
  45867. BB6
  45868. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  45869. void Deopt %6.0
  45870. BB8
  45871. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  45872. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  45873. int$' %8.2 = Inc %8.1
  45874. int$' %8.3 = EnsureNamed %8.2
  45875. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  45876. BB10
  45877. lgl' %10.0 = Lt %7.2, %8.3, elided
  45878. t %10.1 = AsTest %10.0
  45879. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  45880. BB9
  45881. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  45882. void Deopt %9.0
  45883. BB16
  45884. goto BB18
  45885. BB11
  45886. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  45887. BB13
  45888. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  45889. void StVar i, %13.0, e0.2
  45890. cls %13.2 = LdFun buildTreeDepth, e0.2
  45891. prom %13.3 = MkArg missing, Prom(2), e0.2
  45892. prom %13.4 = MkArg missing, Prom(3), e0.2
  45893. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  45894. BB12
  45895. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  45896. void Deopt %12.0
  45897. BB15
  45898. cls' %15.0 = LdConst function (depth, random) { if (d...
  45899. t %15.1 = Identical %13.2, %15.0
  45900. void Assume %15.1, %13.5
  45901. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  45902. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  45903. val^? %15.5 = LdVar array, e0.2
  45904. val %15.6 = Force %15.5, e0.2
  45905. val^? %15.7 = LdVar i, e0.2
  45906. val %15.8 = Force %15.7, e0.2
  45907. val^ %15.9 = EnsureNamed %15.4
  45908. val %15.10 = Force %15.9, e0.2
  45909. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  45910. void StVar array, %15.11, e0.2
  45911. goto BB8
  45912. BB14
  45913. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  45914. void Deopt %14.0
  45915. Prom 2:
  45916. BB0
  45917. env e0.0 = LdFunctionEnv
  45918. val^? %0.1 = LdVar depth, e0.0
  45919. val %0.2 = Force %0.1, e0.0
  45920. real$' %0.3 = LdConst [1] 1
  45921. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45922. BB2
  45923. val %2.0 = Sub %0.2, %0.3, e0.0
  45924. void Return %2.0
  45925. BB1
  45926. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  45927. void Deopt %1.0
  45928. Prom 3:
  45929. BB0
  45930. env e0.0 = LdFunctionEnv
  45931. val^? %0.1 = LdVar random, e0.0
  45932. val %0.2 = Force %0.1, e0.0
  45933. void Return %0.2
  45934. Prom 4:
  45935. BB0
  45936. env e0.0 = LdFunctionEnv
  45937. cls %0.1 = LdFun nextRandom, e0.0
  45938. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  45939. t %0.3 = Identical %0.1, %0.2
  45940. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45941. BB2
  45942. void Assume %0.3, %0.4
  45943. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  45944. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  45945. real$' %2.3 = LdConst [1] 10
  45946. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  45947. BB1
  45948. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  45949. void Deopt %1.0
  45950. BB4
  45951. val %4.0 = Force %2.2, e0.0
  45952. val %4.1 = Mod %4.0, %2.3, e0.0
  45953. real$' %4.2 = LdConst [1] 1
  45954. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  45955. BB3
  45956. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  45957. void Deopt %3.0
  45958. BB6
  45959. val %6.0 = Add %4.1, %4.2, e0.0
  45960. void Return %6.0
  45961. BB5
  45962. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  45963. void Deopt %5.0
  45964. ├────── Constant folding: == 204
  45965. test>buildTreeDepth@91[0x7f92445596d0]
  45966. BB0
  45967. val^ %0.0 = LdArg 0
  45968. val^ %0.1 = LdArg 1
  45969. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  45970. val %0.3 = Force! %0.0, e0.2
  45971. real$' %0.4 = LdConst [1] 1
  45972. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  45973. BB2
  45974. lgl %2.0 = Eq %0.3, %0.4, e0.2
  45975. lgl %2.1 = AsLogical %2.0
  45976. t %2.2 = AsTest %2.1
  45977. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  45978. BB1
  45979. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  45980. void Deopt %1.0
  45981. BB17
  45982. cls %17.0 = LdFun c, e0.2
  45983. prom %17.1 = MkArg missing, Prom(4), e0.2
  45984. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  45985. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  45986. goto BB18
  45987. BB3
  45988. cls %3.0 = LdFun vector, e0.2
  45989. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  45990. BB18
  45991. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  45992. val %18.1 = Force %18.0, e0.2
  45993. void Return %18.1
  45994. BB5
  45995. cls' %5.0 = LdConst function (mode = "logical", length = ...
  45996. t %5.1 = Identical %3.0, %5.0
  45997. void Assume %5.1, %3.1
  45998. real$' %5.3 = LdConst [1] 4
  45999. str$' %5.4 = LdConst [1] "list"
  46000. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  46001. void StVar array, %5.5, e0.2
  46002. real$' %5.7 = LdConst [1] 1
  46003. real$' %5.8 = LdConst [1] 4
  46004. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  46005. BB4
  46006. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  46007. void Deopt %4.0
  46008. BB7
  46009. val' %7.0 = Colon %5.7, %5.8, elided
  46010. val' %7.1 = SetShared %7.0
  46011. int$' %7.2 = ForSeqSize %7.1
  46012. int$' %7.3 = LdConst [1] 0
  46013. goto BB8
  46014. BB6
  46015. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  46016. void Deopt %6.0
  46017. BB8
  46018. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  46019. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  46020. int$' %8.2 = Inc %8.1
  46021. int$' %8.3 = EnsureNamed %8.2
  46022. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  46023. BB10
  46024. lgl' %10.0 = Lt %7.2, %8.3, elided
  46025. t %10.1 = AsTest %10.0
  46026. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  46027. BB9
  46028. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  46029. void Deopt %9.0
  46030. BB16
  46031. goto BB18
  46032. BB11
  46033. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  46034. BB13
  46035. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  46036. void StVar i, %13.0, e0.2
  46037. cls %13.2 = LdFun buildTreeDepth, e0.2
  46038. prom %13.3 = MkArg missing, Prom(2), e0.2
  46039. prom %13.4 = MkArg missing, Prom(3), e0.2
  46040. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  46041. BB12
  46042. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  46043. void Deopt %12.0
  46044. BB15
  46045. cls' %15.0 = LdConst function (depth, random) { if (d...
  46046. t %15.1 = Identical %13.2, %15.0
  46047. void Assume %15.1, %13.5
  46048. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  46049. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  46050. val^? %15.5 = LdVar array, e0.2
  46051. val %15.6 = Force %15.5, e0.2
  46052. val^? %15.7 = LdVar i, e0.2
  46053. val %15.8 = Force %15.7, e0.2
  46054. val^ %15.9 = EnsureNamed %15.4
  46055. val %15.10 = Force %15.9, e0.2
  46056. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  46057. void StVar array, %15.11, e0.2
  46058. goto BB8
  46059. BB14
  46060. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  46061. void Deopt %14.0
  46062. Prom 2:
  46063. BB0
  46064. env e0.0 = LdFunctionEnv
  46065. val^? %0.1 = LdVar depth, e0.0
  46066. val %0.2 = Force %0.1, e0.0
  46067. real$' %0.3 = LdConst [1] 1
  46068. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46069. BB2
  46070. val %2.0 = Sub %0.2, %0.3, e0.0
  46071. void Return %2.0
  46072. BB1
  46073. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  46074. void Deopt %1.0
  46075. Prom 3:
  46076. BB0
  46077. env e0.0 = LdFunctionEnv
  46078. val^? %0.1 = LdVar random, e0.0
  46079. val %0.2 = Force %0.1, e0.0
  46080. void Return %0.2
  46081. Prom 4:
  46082. BB0
  46083. env e0.0 = LdFunctionEnv
  46084. cls %0.1 = LdFun nextRandom, e0.0
  46085. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  46086. t %0.3 = Identical %0.1, %0.2
  46087. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46088. BB2
  46089. void Assume %0.3, %0.4
  46090. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  46091. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  46092. real$' %2.3 = LdConst [1] 10
  46093. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  46094. BB1
  46095. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  46096. void Deopt %1.0
  46097. BB4
  46098. val %4.0 = Force %2.2, e0.0
  46099. val %4.1 = Mod %4.0, %2.3, e0.0
  46100. real$' %4.2 = LdConst [1] 1
  46101. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  46102. BB3
  46103. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  46104. void Deopt %3.0
  46105. BB6
  46106. val %6.0 = Add %4.1, %4.2, e0.0
  46107. void Return %6.0
  46108. BB5
  46109. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  46110. void Deopt %5.0
  46111. ├────── Cleanup redundant operations: == 211
  46112. test>buildTreeDepth@91[0x7f92445596d0]
  46113. BB0
  46114. val^ %0.0 = LdArg 0
  46115. val^ %0.1 = LdArg 1
  46116. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  46117. val %0.3 = Force! %0.0, e0.2
  46118. real$' %0.4 = LdConst [1] 1
  46119. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46120. BB2
  46121. lgl %2.0 = Eq %0.3, %0.4, e0.2
  46122. lgl %2.1 = AsLogical %2.0
  46123. t %2.2 = AsTest %2.1
  46124. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  46125. BB1
  46126. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  46127. void Deopt %1.0
  46128. BB17
  46129. cls %17.0 = LdFun c, e0.2
  46130. prom %17.1 = MkArg missing, Prom(4), e0.2
  46131. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  46132. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  46133. goto BB18
  46134. BB3
  46135. cls %3.0 = LdFun vector, e0.2
  46136. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  46137. BB18
  46138. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  46139. val %18.1 = Force %18.0, e0.2
  46140. void Return %18.1
  46141. BB5
  46142. cls' %5.0 = LdConst function (mode = "logical", length = ...
  46143. t %5.1 = Identical %3.0, %5.0
  46144. void Assume %5.1, %3.1
  46145. real$' %5.3 = LdConst [1] 4
  46146. str$' %5.4 = LdConst [1] "list"
  46147. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  46148. void StVar array, %5.5, e0.2
  46149. real$' %5.7 = LdConst [1] 1
  46150. real$' %5.8 = LdConst [1] 4
  46151. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  46152. BB4
  46153. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  46154. void Deopt %4.0
  46155. BB7
  46156. val' %7.0 = Colon %5.7, %5.8, elided
  46157. val' %7.1 = SetShared %7.0
  46158. int$' %7.2 = ForSeqSize %7.1
  46159. int$' %7.3 = LdConst [1] 0
  46160. goto BB8
  46161. BB6
  46162. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  46163. void Deopt %6.0
  46164. BB8
  46165. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  46166. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  46167. int$' %8.2 = Inc %8.1
  46168. int$' %8.3 = EnsureNamed %8.2
  46169. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  46170. BB10
  46171. lgl' %10.0 = Lt %7.2, %8.3, elided
  46172. t %10.1 = AsTest %10.0
  46173. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  46174. BB9
  46175. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  46176. void Deopt %9.0
  46177. BB16
  46178. goto BB18
  46179. BB11
  46180. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  46181. BB13
  46182. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  46183. void StVar i, %13.0, e0.2
  46184. cls %13.2 = LdFun buildTreeDepth, e0.2
  46185. prom %13.3 = MkArg missing, Prom(2), e0.2
  46186. prom %13.4 = MkArg missing, Prom(3), e0.2
  46187. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  46188. BB12
  46189. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  46190. void Deopt %12.0
  46191. BB15
  46192. cls' %15.0 = LdConst function (depth, random) { if (d...
  46193. t %15.1 = Identical %13.2, %15.0
  46194. void Assume %15.1, %13.5
  46195. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  46196. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  46197. val^? %15.5 = LdVar array, e0.2
  46198. val %15.6 = Force %15.5, e0.2
  46199. val^? %15.7 = LdVar i, e0.2
  46200. val %15.8 = Force %15.7, e0.2
  46201. val^ %15.9 = EnsureNamed %15.4
  46202. val %15.10 = Force %15.9, e0.2
  46203. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  46204. void StVar array, %15.11, e0.2
  46205. goto BB8
  46206. BB14
  46207. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  46208. void Deopt %14.0
  46209. Prom 2:
  46210. BB0
  46211. env e0.0 = LdFunctionEnv
  46212. val^? %0.1 = LdVar depth, e0.0
  46213. val %0.2 = Force %0.1, e0.0
  46214. real$' %0.3 = LdConst [1] 1
  46215. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46216. BB2
  46217. val %2.0 = Sub %0.2, %0.3, e0.0
  46218. void Return %2.0
  46219. BB1
  46220. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  46221. void Deopt %1.0
  46222. Prom 3:
  46223. BB0
  46224. env e0.0 = LdFunctionEnv
  46225. val^? %0.1 = LdVar random, e0.0
  46226. val %0.2 = Force %0.1, e0.0
  46227. void Return %0.2
  46228. Prom 4:
  46229. BB0
  46230. env e0.0 = LdFunctionEnv
  46231. cls %0.1 = LdFun nextRandom, e0.0
  46232. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  46233. t %0.3 = Identical %0.1, %0.2
  46234. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46235. BB2
  46236. void Assume %0.3, %0.4
  46237. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  46238. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  46239. real$' %2.3 = LdConst [1] 10
  46240. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  46241. BB1
  46242. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  46243. void Deopt %1.0
  46244. BB4
  46245. val %4.0 = Force %2.2, e0.0
  46246. val %4.1 = Mod %4.0, %2.3, e0.0
  46247. real$' %4.2 = LdConst [1] 1
  46248. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  46249. BB3
  46250. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  46251. void Deopt %3.0
  46252. BB6
  46253. val %6.0 = Add %4.1, %4.2, e0.0
  46254. void Return %6.0
  46255. BB5
  46256. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  46257. void Deopt %5.0
  46258. ├────── Delay instructions: == 218
  46259. test>buildTreeDepth@91[0x7f92445596d0]
  46260. BB0
  46261. val^ %0.0 = LdArg 0
  46262. val^ %0.1 = LdArg 1
  46263. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  46264. val %0.3 = Force! %0.0, e0.2
  46265. real$' %0.4 = LdConst [1] 1
  46266. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46267. BB2
  46268. lgl %2.0 = Eq %0.3, %0.4, e0.2
  46269. lgl %2.1 = AsLogical %2.0
  46270. t %2.2 = AsTest %2.1
  46271. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  46272. BB1
  46273. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  46274. void Deopt %1.0
  46275. BB17
  46276. cls %17.0 = LdFun c, e0.2
  46277. prom %17.1 = MkArg missing, Prom(4), e0.2
  46278. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  46279. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  46280. goto BB18
  46281. BB3
  46282. cls %3.0 = LdFun vector, e0.2
  46283. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  46284. BB18
  46285. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  46286. val %18.1 = Force %18.0, e0.2
  46287. void Return %18.1
  46288. BB5
  46289. cls' %5.0 = LdConst function (mode = "logical", length = ...
  46290. t %5.1 = Identical %3.0, %5.0
  46291. void Assume %5.1, %3.1
  46292. str$' %5.3 = LdConst [1] "list"
  46293. real$' %5.4 = LdConst [1] 4
  46294. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  46295. void StVar array, %5.5, e0.2
  46296. real$' %5.7 = LdConst [1] 1
  46297. real$' %5.8 = LdConst [1] 4
  46298. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  46299. BB4
  46300. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  46301. void Deopt %4.0
  46302. BB7
  46303. val' %7.0 = Colon %5.7, %5.8, elided
  46304. val' %7.1 = SetShared %7.0
  46305. int$' %7.2 = ForSeqSize %7.1
  46306. int$' %7.3 = LdConst [1] 0
  46307. goto BB8
  46308. BB6
  46309. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  46310. void Deopt %6.0
  46311. BB8
  46312. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  46313. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  46314. int$' %8.2 = Inc %8.1
  46315. int$' %8.3 = EnsureNamed %8.2
  46316. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  46317. BB10
  46318. lgl' %10.0 = Lt %7.2, %8.3, elided
  46319. t %10.1 = AsTest %10.0
  46320. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  46321. BB9
  46322. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  46323. void Deopt %9.0
  46324. BB16
  46325. goto BB18
  46326. BB11
  46327. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  46328. BB13
  46329. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  46330. void StVar i, %13.0, e0.2
  46331. cls %13.2 = LdFun buildTreeDepth, e0.2
  46332. prom %13.3 = MkArg missing, Prom(2), e0.2
  46333. prom %13.4 = MkArg missing, Prom(3), e0.2
  46334. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  46335. BB12
  46336. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  46337. void Deopt %12.0
  46338. BB15
  46339. cls' %15.0 = LdConst function (depth, random) { if (d...
  46340. t %15.1 = Identical %13.2, %15.0
  46341. void Assume %15.1, %13.5
  46342. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  46343. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  46344. val^? %15.5 = LdVar array, e0.2
  46345. val %15.6 = Force %15.5, e0.2
  46346. val^? %15.7 = LdVar i, e0.2
  46347. val %15.8 = Force %15.7, e0.2
  46348. val^ %15.9 = EnsureNamed %15.4
  46349. val %15.10 = Force %15.9, e0.2
  46350. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  46351. void StVar array, %15.11, e0.2
  46352. goto BB8
  46353. BB14
  46354. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  46355. void Deopt %14.0
  46356. Prom 2:
  46357. BB0
  46358. env e0.0 = LdFunctionEnv
  46359. val^? %0.1 = LdVar depth, e0.0
  46360. val %0.2 = Force %0.1, e0.0
  46361. real$' %0.3 = LdConst [1] 1
  46362. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46363. BB2
  46364. val %2.0 = Sub %0.2, %0.3, e0.0
  46365. void Return %2.0
  46366. BB1
  46367. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  46368. void Deopt %1.0
  46369. Prom 3:
  46370. BB0
  46371. env e0.0 = LdFunctionEnv
  46372. val^? %0.1 = LdVar random, e0.0
  46373. val %0.2 = Force %0.1, e0.0
  46374. void Return %0.2
  46375. Prom 4:
  46376. BB0
  46377. env e0.0 = LdFunctionEnv
  46378. cls %0.1 = LdFun nextRandom, e0.0
  46379. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  46380. t %0.3 = Identical %0.1, %0.2
  46381. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46382. BB2
  46383. void Assume %0.3, %0.4
  46384. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  46385. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  46386. real$' %2.3 = LdConst [1] 10
  46387. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  46388. BB1
  46389. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  46390. void Deopt %1.0
  46391. BB4
  46392. val %4.0 = Force %2.2, e0.0
  46393. val %4.1 = Mod %4.0, %2.3, e0.0
  46394. real$' %4.2 = LdConst [1] 1
  46395. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  46396. BB3
  46397. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  46398. void Deopt %3.0
  46399. BB6
  46400. val %6.0 = Add %4.1, %4.2, e0.0
  46401. void Return %6.0
  46402. BB5
  46403. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  46404. void Deopt %5.0
  46405. ├────── Elide environments not needed: == 225
  46406. test>buildTreeDepth@91[0x7f92445596d0]
  46407. BB0
  46408. val^ %0.0 = LdArg 0
  46409. val^ %0.1 = LdArg 1
  46410. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  46411. val %0.3 = Force! %0.0, e0.2
  46412. real$' %0.4 = LdConst [1] 1
  46413. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46414. BB2
  46415. lgl %2.0 = Eq %0.3, %0.4, e0.2
  46416. lgl %2.1 = AsLogical %2.0
  46417. t %2.2 = AsTest %2.1
  46418. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  46419. BB1
  46420. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  46421. void Deopt %1.0
  46422. BB17
  46423. cls %17.0 = LdFun c, e0.2
  46424. prom %17.1 = MkArg missing, Prom(4), e0.2
  46425. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  46426. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  46427. goto BB18
  46428. BB3
  46429. cls %3.0 = LdFun vector, e0.2
  46430. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  46431. BB18
  46432. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  46433. val %18.1 = Force %18.0, e0.2
  46434. void Return %18.1
  46435. BB5
  46436. cls' %5.0 = LdConst function (mode = "logical", length = ...
  46437. t %5.1 = Identical %3.0, %5.0
  46438. void Assume %5.1, %3.1
  46439. str$' %5.3 = LdConst [1] "list"
  46440. real$' %5.4 = LdConst [1] 4
  46441. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  46442. void StVar array, %5.5, e0.2
  46443. real$' %5.7 = LdConst [1] 1
  46444. real$' %5.8 = LdConst [1] 4
  46445. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  46446. BB4
  46447. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  46448. void Deopt %4.0
  46449. BB7
  46450. val' %7.0 = Colon %5.7, %5.8, elided
  46451. val' %7.1 = SetShared %7.0
  46452. int$' %7.2 = ForSeqSize %7.1
  46453. int$' %7.3 = LdConst [1] 0
  46454. goto BB8
  46455. BB6
  46456. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  46457. void Deopt %6.0
  46458. BB8
  46459. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  46460. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  46461. int$' %8.2 = Inc %8.1
  46462. int$' %8.3 = EnsureNamed %8.2
  46463. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  46464. BB10
  46465. lgl' %10.0 = Lt %7.2, %8.3, elided
  46466. t %10.1 = AsTest %10.0
  46467. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  46468. BB9
  46469. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  46470. void Deopt %9.0
  46471. BB16
  46472. goto BB18
  46473. BB11
  46474. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  46475. BB13
  46476. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  46477. void StVar i, %13.0, e0.2
  46478. cls %13.2 = LdFun buildTreeDepth, e0.2
  46479. prom %13.3 = MkArg missing, Prom(2), e0.2
  46480. prom %13.4 = MkArg missing, Prom(3), e0.2
  46481. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  46482. BB12
  46483. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  46484. void Deopt %12.0
  46485. BB15
  46486. cls' %15.0 = LdConst function (depth, random) { if (d...
  46487. t %15.1 = Identical %13.2, %15.0
  46488. void Assume %15.1, %13.5
  46489. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  46490. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  46491. val^? %15.5 = LdVar array, e0.2
  46492. val %15.6 = Force %15.5, e0.2
  46493. val^? %15.7 = LdVar i, e0.2
  46494. val %15.8 = Force %15.7, e0.2
  46495. val^ %15.9 = EnsureNamed %15.4
  46496. val %15.10 = Force %15.9, e0.2
  46497. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  46498. void StVar array, %15.11, e0.2
  46499. goto BB8
  46500. BB14
  46501. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  46502. void Deopt %14.0
  46503. Prom 2:
  46504. BB0
  46505. env e0.0 = LdFunctionEnv
  46506. val^? %0.1 = LdVar depth, e0.0
  46507. val %0.2 = Force %0.1, e0.0
  46508. real$' %0.3 = LdConst [1] 1
  46509. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46510. BB2
  46511. val %2.0 = Sub %0.2, %0.3, e0.0
  46512. void Return %2.0
  46513. BB1
  46514. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  46515. void Deopt %1.0
  46516. Prom 3:
  46517. BB0
  46518. env e0.0 = LdFunctionEnv
  46519. val^? %0.1 = LdVar random, e0.0
  46520. val %0.2 = Force %0.1, e0.0
  46521. void Return %0.2
  46522. Prom 4:
  46523. BB0
  46524. env e0.0 = LdFunctionEnv
  46525. cls %0.1 = LdFun nextRandom, e0.0
  46526. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  46527. t %0.3 = Identical %0.1, %0.2
  46528. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46529. BB2
  46530. void Assume %0.3, %0.4
  46531. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  46532. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  46533. real$' %2.3 = LdConst [1] 10
  46534. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  46535. BB1
  46536. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  46537. void Deopt %1.0
  46538. BB4
  46539. val %4.0 = Force %2.2, e0.0
  46540. val %4.1 = Mod %4.0, %2.3, e0.0
  46541. real$' %4.2 = LdConst [1] 1
  46542. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  46543. BB3
  46544. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  46545. void Deopt %3.0
  46546. BB6
  46547. val %6.0 = Add %4.1, %4.2, e0.0
  46548. void Return %6.0
  46549. BB5
  46550. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  46551. void Deopt %5.0
  46552. ├────── Move environment creation as far as possible: == 232
  46553. test>buildTreeDepth@91[0x7f92445596d0]
  46554. BB0
  46555. val^ %0.0 = LdArg 0
  46556. val^ %0.1 = LdArg 1
  46557. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  46558. val %0.3 = Force! %0.0, e0.2
  46559. real$' %0.4 = LdConst [1] 1
  46560. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46561. BB2
  46562. lgl %2.0 = Eq %0.3, %0.4, e0.2
  46563. lgl %2.1 = AsLogical %2.0
  46564. t %2.2 = AsTest %2.1
  46565. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  46566. BB1
  46567. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  46568. void Deopt %1.0
  46569. BB17
  46570. cls %17.0 = LdFun c, e0.2
  46571. prom %17.1 = MkArg missing, Prom(4), e0.2
  46572. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  46573. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  46574. goto BB18
  46575. BB3
  46576. cls %3.0 = LdFun vector, e0.2
  46577. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  46578. BB18
  46579. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  46580. val %18.1 = Force %18.0, e0.2
  46581. void Return %18.1
  46582. BB5
  46583. cls' %5.0 = LdConst function (mode = "logical", length = ...
  46584. t %5.1 = Identical %3.0, %5.0
  46585. void Assume %5.1, %3.1
  46586. str$' %5.3 = LdConst [1] "list"
  46587. real$' %5.4 = LdConst [1] 4
  46588. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  46589. void StVar array, %5.5, e0.2
  46590. real$' %5.7 = LdConst [1] 1
  46591. real$' %5.8 = LdConst [1] 4
  46592. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  46593. BB4
  46594. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  46595. void Deopt %4.0
  46596. BB7
  46597. val' %7.0 = Colon %5.7, %5.8, elided
  46598. val' %7.1 = SetShared %7.0
  46599. int$' %7.2 = ForSeqSize %7.1
  46600. int$' %7.3 = LdConst [1] 0
  46601. goto BB8
  46602. BB6
  46603. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  46604. void Deopt %6.0
  46605. BB8
  46606. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  46607. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  46608. int$' %8.2 = Inc %8.1
  46609. int$' %8.3 = EnsureNamed %8.2
  46610. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  46611. BB10
  46612. lgl' %10.0 = Lt %7.2, %8.3, elided
  46613. t %10.1 = AsTest %10.0
  46614. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  46615. BB9
  46616. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  46617. void Deopt %9.0
  46618. BB16
  46619. goto BB18
  46620. BB11
  46621. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  46622. BB13
  46623. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  46624. void StVar i, %13.0, e0.2
  46625. cls %13.2 = LdFun buildTreeDepth, e0.2
  46626. prom %13.3 = MkArg missing, Prom(2), e0.2
  46627. prom %13.4 = MkArg missing, Prom(3), e0.2
  46628. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  46629. BB12
  46630. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  46631. void Deopt %12.0
  46632. BB15
  46633. cls' %15.0 = LdConst function (depth, random) { if (d...
  46634. t %15.1 = Identical %13.2, %15.0
  46635. void Assume %15.1, %13.5
  46636. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  46637. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  46638. val^? %15.5 = LdVar array, e0.2
  46639. val %15.6 = Force %15.5, e0.2
  46640. val^? %15.7 = LdVar i, e0.2
  46641. val %15.8 = Force %15.7, e0.2
  46642. val^ %15.9 = EnsureNamed %15.4
  46643. val %15.10 = Force %15.9, e0.2
  46644. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  46645. void StVar array, %15.11, e0.2
  46646. goto BB8
  46647. BB14
  46648. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  46649. void Deopt %14.0
  46650. Prom 2:
  46651. BB0
  46652. env e0.0 = LdFunctionEnv
  46653. val^? %0.1 = LdVar depth, e0.0
  46654. val %0.2 = Force %0.1, e0.0
  46655. real$' %0.3 = LdConst [1] 1
  46656. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46657. BB2
  46658. val %2.0 = Sub %0.2, %0.3, e0.0
  46659. void Return %2.0
  46660. BB1
  46661. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  46662. void Deopt %1.0
  46663. Prom 3:
  46664. BB0
  46665. env e0.0 = LdFunctionEnv
  46666. val^? %0.1 = LdVar random, e0.0
  46667. val %0.2 = Force %0.1, e0.0
  46668. void Return %0.2
  46669. Prom 4:
  46670. BB0
  46671. env e0.0 = LdFunctionEnv
  46672. cls %0.1 = LdFun nextRandom, e0.0
  46673. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  46674. t %0.3 = Identical %0.1, %0.2
  46675. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46676. BB2
  46677. void Assume %0.3, %0.4
  46678. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  46679. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  46680. real$' %2.3 = LdConst [1] 10
  46681. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  46682. BB1
  46683. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  46684. void Deopt %1.0
  46685. BB4
  46686. val %4.0 = Force %2.2, e0.0
  46687. val %4.1 = Mod %4.0, %2.3, e0.0
  46688. real$' %4.2 = LdConst [1] 1
  46689. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  46690. BB3
  46691. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  46692. void Deopt %3.0
  46693. BB6
  46694. val %6.0 = Add %4.1, %4.2, e0.0
  46695. void Return %6.0
  46696. BB5
  46697. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  46698. void Deopt %5.0
  46699. ├────── Cleanup redundant operations: == 239
  46700. test>buildTreeDepth@91[0x7f92445596d0]
  46701. BB0
  46702. val^ %0.0 = LdArg 0
  46703. val^ %0.1 = LdArg 1
  46704. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  46705. val %0.3 = Force! %0.0, e0.2
  46706. real$' %0.4 = LdConst [1] 1
  46707. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46708. BB2
  46709. lgl %2.0 = Eq %0.3, %0.4, e0.2
  46710. lgl %2.1 = AsLogical %2.0
  46711. t %2.2 = AsTest %2.1
  46712. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  46713. BB1
  46714. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  46715. void Deopt %1.0
  46716. BB17
  46717. cls %17.0 = LdFun c, e0.2
  46718. prom %17.1 = MkArg missing, Prom(4), e0.2
  46719. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  46720. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  46721. goto BB18
  46722. BB3
  46723. cls %3.0 = LdFun vector, e0.2
  46724. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  46725. BB18
  46726. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  46727. val %18.1 = Force %18.0, e0.2
  46728. void Return %18.1
  46729. BB5
  46730. cls' %5.0 = LdConst function (mode = "logical", length = ...
  46731. t %5.1 = Identical %3.0, %5.0
  46732. void Assume %5.1, %3.1
  46733. str$' %5.3 = LdConst [1] "list"
  46734. real$' %5.4 = LdConst [1] 4
  46735. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  46736. void StVar array, %5.5, e0.2
  46737. real$' %5.7 = LdConst [1] 1
  46738. real$' %5.8 = LdConst [1] 4
  46739. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  46740. BB4
  46741. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  46742. void Deopt %4.0
  46743. BB7
  46744. val' %7.0 = Colon %5.7, %5.8, elided
  46745. val' %7.1 = SetShared %7.0
  46746. int$' %7.2 = ForSeqSize %7.1
  46747. int$' %7.3 = LdConst [1] 0
  46748. goto BB8
  46749. BB6
  46750. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  46751. void Deopt %6.0
  46752. BB8
  46753. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  46754. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  46755. int$' %8.2 = Inc %8.1
  46756. int$' %8.3 = EnsureNamed %8.2
  46757. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  46758. BB10
  46759. lgl' %10.0 = Lt %7.2, %8.3, elided
  46760. t %10.1 = AsTest %10.0
  46761. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  46762. BB9
  46763. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  46764. void Deopt %9.0
  46765. BB16
  46766. goto BB18
  46767. BB11
  46768. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  46769. BB13
  46770. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  46771. void StVar i, %13.0, e0.2
  46772. cls %13.2 = LdFun buildTreeDepth, e0.2
  46773. prom %13.3 = MkArg missing, Prom(2), e0.2
  46774. prom %13.4 = MkArg missing, Prom(3), e0.2
  46775. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  46776. BB12
  46777. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  46778. void Deopt %12.0
  46779. BB15
  46780. cls' %15.0 = LdConst function (depth, random) { if (d...
  46781. t %15.1 = Identical %13.2, %15.0
  46782. void Assume %15.1, %13.5
  46783. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  46784. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  46785. val^? %15.5 = LdVar array, e0.2
  46786. val %15.6 = Force %15.5, e0.2
  46787. val^? %15.7 = LdVar i, e0.2
  46788. val %15.8 = Force %15.7, e0.2
  46789. val^ %15.9 = EnsureNamed %15.4
  46790. val %15.10 = Force %15.9, e0.2
  46791. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  46792. void StVar array, %15.11, e0.2
  46793. goto BB8
  46794. BB14
  46795. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  46796. void Deopt %14.0
  46797. Prom 2:
  46798. BB0
  46799. env e0.0 = LdFunctionEnv
  46800. val^? %0.1 = LdVar depth, e0.0
  46801. val %0.2 = Force %0.1, e0.0
  46802. real$' %0.3 = LdConst [1] 1
  46803. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46804. BB2
  46805. val %2.0 = Sub %0.2, %0.3, e0.0
  46806. void Return %2.0
  46807. BB1
  46808. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  46809. void Deopt %1.0
  46810. Prom 3:
  46811. BB0
  46812. env e0.0 = LdFunctionEnv
  46813. val^? %0.1 = LdVar random, e0.0
  46814. val %0.2 = Force %0.1, e0.0
  46815. void Return %0.2
  46816. Prom 4:
  46817. BB0
  46818. env e0.0 = LdFunctionEnv
  46819. cls %0.1 = LdFun nextRandom, e0.0
  46820. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  46821. t %0.3 = Identical %0.1, %0.2
  46822. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46823. BB2
  46824. void Assume %0.3, %0.4
  46825. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  46826. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  46827. real$' %2.3 = LdConst [1] 10
  46828. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  46829. BB1
  46830. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  46831. void Deopt %1.0
  46832. BB4
  46833. val %4.0 = Force %2.2, e0.0
  46834. val %4.1 = Mod %4.0, %2.3, e0.0
  46835. real$' %4.2 = LdConst [1] 1
  46836. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  46837. BB3
  46838. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  46839. void Deopt %3.0
  46840. BB6
  46841. val %6.0 = Add %4.1, %4.2, e0.0
  46842. void Return %6.0
  46843. BB5
  46844. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  46845. void Deopt %5.0
  46846. ├────── Inline closures: == 246
  46847. test>buildTreeDepth@91[0x7f92445596d0]
  46848. BB0
  46849. val^ %0.0 = LdArg 0
  46850. val^ %0.1 = LdArg 1
  46851. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  46852. val %0.3 = Force! %0.0, e0.2
  46853. real$' %0.4 = LdConst [1] 1
  46854. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46855. BB2
  46856. lgl %2.0 = Eq %0.3, %0.4, e0.2
  46857. lgl %2.1 = AsLogical %2.0
  46858. t %2.2 = AsTest %2.1
  46859. void Branch %2.2 -> BB17 (if true) | BB3 (if false)
  46860. BB1
  46861. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  46862. void Deopt %1.0
  46863. BB17
  46864. cls %17.0 = LdFun c, e0.2
  46865. prom %17.1 = MkArg missing, Prom(4), e0.2
  46866. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  46867. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  46868. goto BB18
  46869. BB3
  46870. cls %3.0 = LdFun vector, e0.2
  46871. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  46872. BB18
  46873. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  46874. val %18.1 = Force %18.0, e0.2
  46875. void Return %18.1
  46876. BB5
  46877. cls' %5.0 = LdConst function (mode = "logical", length = ...
  46878. t %5.1 = Identical %3.0, %5.0
  46879. void Assume %5.1, %3.1
  46880. str$' %5.3 = LdConst [1] "list"
  46881. real$' %5.4 = LdConst [1] 4
  46882. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  46883. void StVar array, %5.5, e0.2
  46884. real$' %5.7 = LdConst [1] 1
  46885. real$' %5.8 = LdConst [1] 4
  46886. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  46887. BB4
  46888. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  46889. void Deopt %4.0
  46890. BB7
  46891. val' %7.0 = Colon %5.7, %5.8, elided
  46892. val' %7.1 = SetShared %7.0
  46893. int$' %7.2 = ForSeqSize %7.1
  46894. int$' %7.3 = LdConst [1] 0
  46895. goto BB8
  46896. BB6
  46897. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  46898. void Deopt %6.0
  46899. BB8
  46900. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  46901. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  46902. int$' %8.2 = Inc %8.1
  46903. int$' %8.3 = EnsureNamed %8.2
  46904. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  46905. BB10
  46906. lgl' %10.0 = Lt %7.2, %8.3, elided
  46907. t %10.1 = AsTest %10.0
  46908. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  46909. BB9
  46910. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  46911. void Deopt %9.0
  46912. BB16
  46913. goto BB18
  46914. BB11
  46915. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  46916. BB13
  46917. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  46918. void StVar i, %13.0, e0.2
  46919. cls %13.2 = LdFun buildTreeDepth, e0.2
  46920. prom %13.3 = MkArg missing, Prom(2), e0.2
  46921. prom %13.4 = MkArg missing, Prom(3), e0.2
  46922. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  46923. BB12
  46924. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  46925. void Deopt %12.0
  46926. BB15
  46927. cls' %15.0 = LdConst function (depth, random) { if (d...
  46928. t %15.1 = Identical %13.2, %15.0
  46929. void Assume %15.1, %13.5
  46930. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  46931. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  46932. val^? %15.5 = LdVar array, e0.2
  46933. val %15.6 = Force %15.5, e0.2
  46934. val^? %15.7 = LdVar i, e0.2
  46935. val %15.8 = Force %15.7, e0.2
  46936. val^ %15.9 = EnsureNamed %15.4
  46937. val %15.10 = Force %15.9, e0.2
  46938. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  46939. void StVar array, %15.11, e0.2
  46940. goto BB8
  46941. BB14
  46942. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  46943. void Deopt %14.0
  46944. Prom 2:
  46945. BB0
  46946. env e0.0 = LdFunctionEnv
  46947. val^? %0.1 = LdVar depth, e0.0
  46948. val %0.2 = Force %0.1, e0.0
  46949. real$' %0.3 = LdConst [1] 1
  46950. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46951. BB2
  46952. val %2.0 = Sub %0.2, %0.3, e0.0
  46953. void Return %2.0
  46954. BB1
  46955. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  46956. void Deopt %1.0
  46957. Prom 3:
  46958. BB0
  46959. env e0.0 = LdFunctionEnv
  46960. val^? %0.1 = LdVar random, e0.0
  46961. val %0.2 = Force %0.1, e0.0
  46962. void Return %0.2
  46963. Prom 4:
  46964. BB0
  46965. env e0.0 = LdFunctionEnv
  46966. cls %0.1 = LdFun nextRandom, e0.0
  46967. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  46968. t %0.3 = Identical %0.1, %0.2
  46969. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  46970. BB2
  46971. void Assume %0.3, %0.4
  46972. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  46973. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  46974. real$' %2.3 = LdConst [1] 10
  46975. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  46976. BB1
  46977. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  46978. void Deopt %1.0
  46979. BB4
  46980. val %4.0 = Force %2.2, e0.0
  46981. val %4.1 = Mod %4.0, %2.3, e0.0
  46982. real$' %4.2 = LdConst [1] 1
  46983. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  46984. BB3
  46985. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  46986. void Deopt %3.0
  46987. BB6
  46988. val %6.0 = Add %4.1, %4.2, e0.0
  46989. void Return %6.0
  46990. BB5
  46991. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  46992. void Deopt %5.0
  46993. ├────── Speculate on values to elide environments: == 253
  46994. test>buildTreeDepth@91[0x7f92445596d0]
  46995. BB0
  46996. val^ %0.0 = LdArg 0
  46997. val^ %0.1 = LdArg 1
  46998. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  46999. val %0.3 = Force! %0.0, e0.2
  47000. real$' %0.4 = LdConst [1] 1
  47001. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47002. BB2
  47003. t %2.0 = IsObject %0.3
  47004. void AssumeNot %2.0, %0.5
  47005. lgl' %2.2 = Eq %0.3, %0.4, elided
  47006. lgl %2.3 = AsLogical %2.2
  47007. t %2.4 = AsTest %2.3
  47008. void Branch %2.4 -> BB17 (if true) | BB3 (if false)
  47009. BB1
  47010. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47011. void Deopt %1.0
  47012. BB17
  47013. cls %17.0 = LdFun c, e0.2
  47014. prom %17.1 = MkArg missing, Prom(4), e0.2
  47015. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47016. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  47017. goto BB18
  47018. BB3
  47019. cls %3.0 = LdFun vector, e0.2
  47020. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47021. BB18
  47022. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  47023. val %18.1 = Force %18.0, e0.2
  47024. void Return %18.1
  47025. BB5
  47026. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47027. t %5.1 = Identical %3.0, %5.0
  47028. void Assume %5.1, %3.1
  47029. str$' %5.3 = LdConst [1] "list"
  47030. real$' %5.4 = LdConst [1] 4
  47031. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  47032. void StVar array, %5.5, e0.2
  47033. real$' %5.7 = LdConst [1] 1
  47034. real$' %5.8 = LdConst [1] 4
  47035. cp %5.9 = Checkpoint -> BB7 (by default) | BB6 (if coming from expect)
  47036. BB4
  47037. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47038. void Deopt %4.0
  47039. BB7
  47040. val' %7.0 = Colon %5.7, %5.8, elided
  47041. val' %7.1 = SetShared %7.0
  47042. int$' %7.2 = ForSeqSize %7.1
  47043. int$' %7.3 = LdConst [1] 0
  47044. goto BB8
  47045. BB6
  47046. fs %6.0 = FrameState 0x7f924457f3d0+192: [%5.7, %5.8], env=e0.2
  47047. void Deopt %6.0
  47048. BB8
  47049. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  47050. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  47051. int$' %8.2 = Inc %8.1
  47052. int$' %8.3 = EnsureNamed %8.2
  47053. cp %8.4 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  47054. BB10
  47055. lgl' %10.0 = Lt %7.2, %8.3, elided
  47056. t %10.1 = AsTest %10.0
  47057. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  47058. BB9
  47059. fs %9.0 = FrameState 0x7f924457f3d0+203: [%7.1, %7.2, %8.3, %7.2, %8.3], env=e0.2
  47060. void Deopt %9.0
  47061. BB16
  47062. goto BB18
  47063. BB11
  47064. cp %11.0 = Checkpoint -> BB13 (by default) | BB12 (if coming from expect)
  47065. BB13
  47066. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  47067. void StVar i, %13.0, e0.2
  47068. cls %13.2 = LdFun buildTreeDepth, e0.2
  47069. prom %13.3 = MkArg missing, Prom(2), e0.2
  47070. prom %13.4 = MkArg missing, Prom(3), e0.2
  47071. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  47072. BB12
  47073. fs %12.0 = FrameState 0x7f924457f3d0+219: [%7.1, %7.2, %8.3, %7.1, %8.3], env=e0.2
  47074. void Deopt %12.0
  47075. BB15
  47076. cls' %15.0 = LdConst function (depth, random) { if (d...
  47077. t %15.1 = Identical %13.2, %15.0
  47078. void Assume %15.1, %13.5
  47079. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  47080. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  47081. val^? %15.5 = LdVar array, e0.2
  47082. val %15.6 = Force %15.5, e0.2
  47083. val^? %15.7 = LdVar i, e0.2
  47084. val %15.8 = Force %15.7, e0.2
  47085. val^ %15.9 = EnsureNamed %15.4
  47086. val %15.10 = Force %15.9, e0.2
  47087. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  47088. void StVar array, %15.11, e0.2
  47089. goto BB8
  47090. BB14
  47091. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  47092. void Deopt %14.0
  47093. Prom 2:
  47094. BB0
  47095. env e0.0 = LdFunctionEnv
  47096. val^? %0.1 = LdVar depth, e0.0
  47097. val %0.2 = Force %0.1, e0.0
  47098. real$' %0.3 = LdConst [1] 1
  47099. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47100. BB2
  47101. val %2.0 = Sub %0.2, %0.3, e0.0
  47102. void Return %2.0
  47103. BB1
  47104. fs %1.0 = FrameState 0x7f9247265858+32: [%0.2, %0.3], env=e0.0
  47105. void Deopt %1.0
  47106. Prom 3:
  47107. BB0
  47108. env e0.0 = LdFunctionEnv
  47109. val^? %0.1 = LdVar random, e0.0
  47110. val %0.2 = Force %0.1, e0.0
  47111. void Return %0.2
  47112. Prom 4:
  47113. BB0
  47114. env e0.0 = LdFunctionEnv
  47115. cls %0.1 = LdFun nextRandom, e0.0
  47116. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  47117. t %0.3 = Identical %0.1, %0.2
  47118. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47119. BB2
  47120. void Assume %0.3, %0.4
  47121. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  47122. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  47123. real$' %2.3 = LdConst [1] 10
  47124. cp %2.4 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  47125. BB1
  47126. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  47127. void Deopt %1.0
  47128. BB4
  47129. val %4.0 = Force %2.2, e0.0
  47130. val %4.1 = Mod %4.0, %2.3, e0.0
  47131. real$' %4.2 = LdConst [1] 1
  47132. cp %4.3 = Checkpoint -> BB6 (by default) | BB5 (if coming from expect)
  47133. BB3
  47134. fs %3.0 = FrameState 0x7f9244580470+71: [%2.2, %2.3], env=e0.0
  47135. void Deopt %3.0
  47136. BB6
  47137. val %6.0 = Add %4.1, %4.2, e0.0
  47138. void Return %6.0
  47139. BB5
  47140. fs %5.0 = FrameState 0x7f9244580470+86: [%4.1, %4.2], env=e0.0
  47141. void Deopt %5.0
  47142. ├────── Cleanup unused checkpoints: == 260
  47143. test>buildTreeDepth@91[0x7f92445596d0]
  47144. BB0
  47145. val^ %0.0 = LdArg 0
  47146. val^ %0.1 = LdArg 1
  47147. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  47148. val %0.3 = Force! %0.0, e0.2
  47149. real$' %0.4 = LdConst [1] 1
  47150. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47151. BB2
  47152. t %2.0 = IsObject %0.3
  47153. void AssumeNot %2.0, %0.5
  47154. lgl' %2.2 = Eq %0.3, %0.4, elided
  47155. lgl %2.3 = AsLogical %2.2
  47156. t %2.4 = AsTest %2.3
  47157. void Branch %2.4 -> BB17 (if true) | BB3 (if false)
  47158. BB1
  47159. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47160. void Deopt %1.0
  47161. BB17
  47162. cls %17.0 = LdFun c, e0.2
  47163. prom %17.1 = MkArg missing, Prom(4), e0.2
  47164. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47165. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  47166. goto BB18
  47167. BB3
  47168. cls %3.0 = LdFun vector, e0.2
  47169. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47170. BB18
  47171. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  47172. val %18.1 = Force %18.0, e0.2
  47173. void Return %18.1
  47174. BB5
  47175. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47176. t %5.1 = Identical %3.0, %5.0
  47177. void Assume %5.1, %3.1
  47178. str$' %5.3 = LdConst [1] "list"
  47179. real$' %5.4 = LdConst [1] 4
  47180. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  47181. void StVar array, %5.5, e0.2
  47182. real$' %5.7 = LdConst [1] 1
  47183. real$' %5.8 = LdConst [1] 4
  47184. goto BB7
  47185. BB4
  47186. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47187. void Deopt %4.0
  47188. BB7
  47189. val' %7.0 = Colon %5.7, %5.8, elided
  47190. val' %7.1 = SetShared %7.0
  47191. int$' %7.2 = ForSeqSize %7.1
  47192. int$' %7.3 = LdConst [1] 0
  47193. goto BB8
  47194. BB8
  47195. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  47196. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  47197. int$' %8.2 = Inc %8.1
  47198. int$' %8.3 = EnsureNamed %8.2
  47199. goto BB10
  47200. BB10
  47201. lgl' %10.0 = Lt %7.2, %8.3, elided
  47202. t %10.1 = AsTest %10.0
  47203. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  47204. BB16
  47205. goto BB18
  47206. BB11
  47207. goto BB13
  47208. BB13
  47209. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  47210. void StVar i, %13.0, e0.2
  47211. cls %13.2 = LdFun buildTreeDepth, e0.2
  47212. prom %13.3 = MkArg missing, Prom(2), e0.2
  47213. prom %13.4 = MkArg missing, Prom(3), e0.2
  47214. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  47215. BB15
  47216. cls' %15.0 = LdConst function (depth, random) { if (d...
  47217. t %15.1 = Identical %13.2, %15.0
  47218. void Assume %15.1, %13.5
  47219. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  47220. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  47221. val^? %15.5 = LdVar array, e0.2
  47222. val %15.6 = Force %15.5, e0.2
  47223. val^? %15.7 = LdVar i, e0.2
  47224. val %15.8 = Force %15.7, e0.2
  47225. val^ %15.9 = EnsureNamed %15.4
  47226. val %15.10 = Force %15.9, e0.2
  47227. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  47228. void StVar array, %15.11, e0.2
  47229. goto BB8
  47230. BB14
  47231. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  47232. void Deopt %14.0
  47233. Prom 2:
  47234. BB0
  47235. env e0.0 = LdFunctionEnv
  47236. val^? %0.1 = LdVar depth, e0.0
  47237. val %0.2 = Force %0.1, e0.0
  47238. real$' %0.3 = LdConst [1] 1
  47239. goto BB2
  47240. BB2
  47241. val %2.0 = Sub %0.2, %0.3, e0.0
  47242. void Return %2.0
  47243. Prom 3:
  47244. BB0
  47245. env e0.0 = LdFunctionEnv
  47246. val^? %0.1 = LdVar random, e0.0
  47247. val %0.2 = Force %0.1, e0.0
  47248. void Return %0.2
  47249. Prom 4:
  47250. BB0
  47251. env e0.0 = LdFunctionEnv
  47252. cls %0.1 = LdFun nextRandom, e0.0
  47253. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  47254. t %0.3 = Identical %0.1, %0.2
  47255. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47256. BB2
  47257. void Assume %0.3, %0.4
  47258. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  47259. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  47260. real$' %2.3 = LdConst [1] 10
  47261. goto BB4
  47262. BB1
  47263. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  47264. void Deopt %1.0
  47265. BB4
  47266. val %4.0 = Force %2.2, e0.0
  47267. val %4.1 = Mod %4.0, %2.3, e0.0
  47268. real$' %4.2 = LdConst [1] 1
  47269. goto BB6
  47270. BB6
  47271. val %6.0 = Add %4.1, %4.2, e0.0
  47272. void Return %6.0
  47273. ├────── Inline Promises: == 267
  47274. test>buildTreeDepth@91[0x7f92445596d0]
  47275. BB0
  47276. val^ %0.0 = LdArg 0
  47277. val^ %0.1 = LdArg 1
  47278. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  47279. val %0.3 = Force! %0.0, e0.2
  47280. real$' %0.4 = LdConst [1] 1
  47281. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47282. BB2
  47283. t %2.0 = IsObject %0.3
  47284. void AssumeNot %2.0, %0.5
  47285. lgl' %2.2 = Eq %0.3, %0.4, elided
  47286. lgl %2.3 = AsLogical %2.2
  47287. t %2.4 = AsTest %2.3
  47288. void Branch %2.4 -> BB17 (if true) | BB3 (if false)
  47289. BB1
  47290. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47291. void Deopt %1.0
  47292. BB17
  47293. cls %17.0 = LdFun c, e0.2
  47294. prom %17.1 = MkArg missing, Prom(4), e0.2
  47295. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47296. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  47297. goto BB18
  47298. BB3
  47299. cls %3.0 = LdFun vector, e0.2
  47300. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47301. BB18
  47302. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  47303. val %18.1 = Force %18.0, e0.2
  47304. void Return %18.1
  47305. BB5
  47306. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47307. t %5.1 = Identical %3.0, %5.0
  47308. void Assume %5.1, %3.1
  47309. str$' %5.3 = LdConst [1] "list"
  47310. real$' %5.4 = LdConst [1] 4
  47311. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  47312. void StVar array, %5.5, e0.2
  47313. real$' %5.7 = LdConst [1] 1
  47314. real$' %5.8 = LdConst [1] 4
  47315. goto BB7
  47316. BB4
  47317. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47318. void Deopt %4.0
  47319. BB7
  47320. val' %7.0 = Colon %5.7, %5.8, elided
  47321. val' %7.1 = SetShared %7.0
  47322. int$' %7.2 = ForSeqSize %7.1
  47323. int$' %7.3 = LdConst [1] 0
  47324. goto BB8
  47325. BB8
  47326. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  47327. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  47328. int$' %8.2 = Inc %8.1
  47329. int$' %8.3 = EnsureNamed %8.2
  47330. goto BB10
  47331. BB10
  47332. lgl' %10.0 = Lt %7.2, %8.3, elided
  47333. t %10.1 = AsTest %10.0
  47334. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  47335. BB16
  47336. goto BB18
  47337. BB11
  47338. goto BB13
  47339. BB13
  47340. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  47341. void StVar i, %13.0, e0.2
  47342. cls %13.2 = LdFun buildTreeDepth, e0.2
  47343. prom %13.3 = MkArg missing, Prom(2), e0.2
  47344. prom %13.4 = MkArg missing, Prom(3), e0.2
  47345. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  47346. BB15
  47347. cls' %15.0 = LdConst function (depth, random) { if (d...
  47348. t %15.1 = Identical %13.2, %15.0
  47349. void Assume %15.1, %13.5
  47350. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  47351. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  47352. val^? %15.5 = LdVar array, e0.2
  47353. val %15.6 = Force %15.5, e0.2
  47354. val^? %15.7 = LdVar i, e0.2
  47355. val %15.8 = Force %15.7, e0.2
  47356. val^ %15.9 = EnsureNamed %15.4
  47357. val %15.10 = Force %15.9, e0.2
  47358. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  47359. void StVar array, %15.11, e0.2
  47360. goto BB8
  47361. BB14
  47362. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  47363. void Deopt %14.0
  47364. Prom 2:
  47365. BB0
  47366. env e0.0 = LdFunctionEnv
  47367. val^? %0.1 = LdVar depth, e0.0
  47368. val %0.2 = Force %0.1, e0.0
  47369. real$' %0.3 = LdConst [1] 1
  47370. goto BB2
  47371. BB2
  47372. val %2.0 = Sub %0.2, %0.3, e0.0
  47373. void Return %2.0
  47374. Prom 3:
  47375. BB0
  47376. env e0.0 = LdFunctionEnv
  47377. val^? %0.1 = LdVar random, e0.0
  47378. val %0.2 = Force %0.1, e0.0
  47379. void Return %0.2
  47380. Prom 4:
  47381. BB0
  47382. env e0.0 = LdFunctionEnv
  47383. cls %0.1 = LdFun nextRandom, e0.0
  47384. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  47385. t %0.3 = Identical %0.1, %0.2
  47386. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47387. BB2
  47388. void Assume %0.3, %0.4
  47389. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  47390. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  47391. real$' %2.3 = LdConst [1] 10
  47392. goto BB4
  47393. BB1
  47394. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  47395. void Deopt %1.0
  47396. BB4
  47397. val %4.0 = Force %2.2, e0.0
  47398. val %4.1 = Mod %4.0, %2.3, e0.0
  47399. real$' %4.2 = LdConst [1] 1
  47400. goto BB6
  47401. BB6
  47402. val %6.0 = Add %4.1, %4.2, e0.0
  47403. void Return %6.0
  47404. ├────── Scope resolution: == 274
  47405. test>buildTreeDepth@91[0x7f92445596d0]
  47406. BB0
  47407. val^ %0.0 = LdArg 0
  47408. val^ %0.1 = LdArg 1
  47409. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  47410. val %0.3 = Force! %0.0, e0.2
  47411. real$' %0.4 = LdConst [1] 1
  47412. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47413. BB2
  47414. t %2.0 = IsObject %0.3
  47415. void AssumeNot %2.0, %0.5
  47416. lgl' %2.2 = Eq %0.3, %0.4, elided
  47417. lgl %2.3 = AsLogical %2.2
  47418. t %2.4 = AsTest %2.3
  47419. void Branch %2.4 -> BB17 (if true) | BB3 (if false)
  47420. BB1
  47421. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47422. void Deopt %1.0
  47423. BB17
  47424. cls %17.0 = LdFun c, e0.2
  47425. prom %17.1 = MkArg missing, Prom(4), e0.2
  47426. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47427. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  47428. goto BB18
  47429. BB3
  47430. cls %3.0 = LdFun vector, e0.2
  47431. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47432. BB18
  47433. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  47434. val %18.1 = Force %18.0, e0.2
  47435. void Return %18.1
  47436. BB5
  47437. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47438. t %5.1 = Identical %3.0, %5.0
  47439. void Assume %5.1, %3.1
  47440. str$' %5.3 = LdConst [1] "list"
  47441. real$' %5.4 = LdConst [1] 4
  47442. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  47443. void StVar array, %5.5, e0.2
  47444. real$' %5.7 = LdConst [1] 1
  47445. real$' %5.8 = LdConst [1] 4
  47446. goto BB7
  47447. BB4
  47448. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47449. void Deopt %4.0
  47450. BB7
  47451. val' %7.0 = Colon %5.7, %5.8, elided
  47452. val' %7.1 = SetShared %7.0
  47453. int$' %7.2 = ForSeqSize %7.1
  47454. int$' %7.3 = LdConst [1] 0
  47455. goto BB8
  47456. BB8
  47457. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  47458. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  47459. int$' %8.2 = Inc %8.1
  47460. int$' %8.3 = EnsureNamed %8.2
  47461. goto BB10
  47462. BB10
  47463. lgl' %10.0 = Lt %7.2, %8.3, elided
  47464. t %10.1 = AsTest %10.0
  47465. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  47466. BB16
  47467. goto BB18
  47468. BB11
  47469. goto BB13
  47470. BB13
  47471. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  47472. void StVar i, %13.0, e0.2
  47473. cls %13.2 = LdFun buildTreeDepth, e0.2
  47474. prom %13.3 = MkArg missing, Prom(2), e0.2
  47475. prom %13.4 = MkArg missing, Prom(3), e0.2
  47476. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  47477. BB15
  47478. cls' %15.0 = LdConst function (depth, random) { if (d...
  47479. t %15.1 = Identical %13.2, %15.0
  47480. void Assume %15.1, %13.5
  47481. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  47482. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  47483. val^? %15.5 = LdVar array, e0.2
  47484. val %15.6 = Force %15.5, e0.2
  47485. val^? %15.7 = LdVar i, e0.2
  47486. val %15.8 = Force %15.7, e0.2
  47487. val^ %15.9 = EnsureNamed %15.4
  47488. val %15.10 = Force %15.9, e0.2
  47489. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  47490. void StVar array, %15.11, e0.2
  47491. goto BB8
  47492. BB14
  47493. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  47494. void Deopt %14.0
  47495. Prom 2:
  47496. BB0
  47497. env e0.0 = LdFunctionEnv
  47498. val^? %0.1 = LdVar depth, e0.0
  47499. val %0.2 = Force %0.1, e0.0
  47500. real$' %0.3 = LdConst [1] 1
  47501. goto BB2
  47502. BB2
  47503. val %2.0 = Sub %0.2, %0.3, e0.0
  47504. void Return %2.0
  47505. Prom 3:
  47506. BB0
  47507. env e0.0 = LdFunctionEnv
  47508. val^? %0.1 = LdVar random, e0.0
  47509. val %0.2 = Force %0.1, e0.0
  47510. void Return %0.2
  47511. Prom 4:
  47512. BB0
  47513. env e0.0 = LdFunctionEnv
  47514. cls %0.1 = LdFun nextRandom, e0.0
  47515. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  47516. t %0.3 = Identical %0.1, %0.2
  47517. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47518. BB2
  47519. void Assume %0.3, %0.4
  47520. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  47521. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  47522. real$' %2.3 = LdConst [1] 10
  47523. goto BB4
  47524. BB1
  47525. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  47526. void Deopt %1.0
  47527. BB4
  47528. val %4.0 = Force %2.2, e0.0
  47529. val %4.1 = Mod %4.0, %2.3, e0.0
  47530. real$' %4.2 = LdConst [1] 1
  47531. goto BB6
  47532. BB6
  47533. val %6.0 = Add %4.1, %4.2, e0.0
  47534. void Return %6.0
  47535. ├────── Constant folding: == 281
  47536. test>buildTreeDepth@91[0x7f92445596d0]
  47537. BB0
  47538. val^ %0.0 = LdArg 0
  47539. val^ %0.1 = LdArg 1
  47540. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  47541. val %0.3 = Force! %0.0, e0.2
  47542. real$' %0.4 = LdConst [1] 1
  47543. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47544. BB2
  47545. t %2.0 = IsObject %0.3
  47546. void AssumeNot %2.0, %0.5
  47547. lgl' %2.2 = Eq %0.3, %0.4, elided
  47548. lgl %2.3 = AsLogical %2.2
  47549. t %2.4 = AsTest %2.3
  47550. void Branch %2.4 -> BB17 (if true) | BB3 (if false)
  47551. BB1
  47552. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47553. void Deopt %1.0
  47554. BB17
  47555. cls %17.0 = LdFun c, e0.2
  47556. prom %17.1 = MkArg missing, Prom(4), e0.2
  47557. fs %17.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47558. val^ %17.3 = Call %17.0(%17.1) %17.2, e0.2
  47559. goto BB18
  47560. BB3
  47561. cls %3.0 = LdFun vector, e0.2
  47562. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47563. BB18
  47564. val^ %18.0 = Phi %8.0:BB16, %17.3:BB17
  47565. val %18.1 = Force %18.0, e0.2
  47566. void Return %18.1
  47567. BB5
  47568. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47569. t %5.1 = Identical %3.0, %5.0
  47570. void Assume %5.1, %3.1
  47571. str$' %5.3 = LdConst [1] "list"
  47572. real$' %5.4 = LdConst [1] 4
  47573. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  47574. void StVar array, %5.5, e0.2
  47575. real$' %5.7 = LdConst [1] 1
  47576. real$' %5.8 = LdConst [1] 4
  47577. goto BB7
  47578. BB4
  47579. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47580. void Deopt %4.0
  47581. BB7
  47582. val' %7.0 = Colon %5.7, %5.8, elided
  47583. val' %7.1 = SetShared %7.0
  47584. int$' %7.2 = ForSeqSize %7.1
  47585. int$' %7.3 = LdConst [1] 0
  47586. goto BB8
  47587. BB8
  47588. val %8.0 = Phi %5.5:BB5, %15.11:BB15
  47589. int$' %8.1 = Phi %7.3:BB7, %8.3:BB15
  47590. int$' %8.2 = Inc %8.1
  47591. int$' %8.3 = EnsureNamed %8.2
  47592. goto BB10
  47593. BB10
  47594. lgl' %10.0 = Lt %7.2, %8.3, elided
  47595. t %10.1 = AsTest %10.0
  47596. void Branch %10.1 -> BB16 (if true) | BB11 (if false)
  47597. BB16
  47598. goto BB18
  47599. BB11
  47600. goto BB13
  47601. BB13
  47602. val$' %13.0 = Extract2_1D %7.1, %8.3, elided
  47603. void StVar i, %13.0, e0.2
  47604. cls %13.2 = LdFun buildTreeDepth, e0.2
  47605. prom %13.3 = MkArg missing, Prom(2), e0.2
  47606. prom %13.4 = MkArg missing, Prom(3), e0.2
  47607. cp %13.5 = Checkpoint -> BB15 (by default) | BB14 (if coming from expect)
  47608. BB15
  47609. cls' %15.0 = LdConst function (depth, random) { if (d...
  47610. t %15.1 = Identical %13.2, %15.0
  47611. void Assume %15.1, %13.5
  47612. fs %15.3 = FrameState 0x7f924457f3d0+290: [%7.1, %7.2, %8.3], env=e0.2
  47613. val^ %15.4 = StaticCall buildTreeDepth[0x7f92446010b0](%13.3, %13.4) %15.3, e0.2
  47614. val^? %15.5 = LdVar array, e0.2
  47615. val %15.6 = Force %15.5, e0.2
  47616. val^? %15.7 = LdVar i, e0.2
  47617. val %15.8 = Force %15.7, e0.2
  47618. val^ %15.9 = EnsureNamed %15.4
  47619. val %15.10 = Force %15.9, e0.2
  47620. val %15.11 = Subassign2_1D %15.10, %15.6, %15.8, e0.2
  47621. void StVar array, %15.11, e0.2
  47622. goto BB8
  47623. BB14
  47624. fs %14.0 = FrameState 0x7f924457f3d0+273: [%7.1, %7.2, %8.3, %13.2], env=e0.2
  47625. void Deopt %14.0
  47626. Prom 2:
  47627. BB0
  47628. env e0.0 = LdFunctionEnv
  47629. val^? %0.1 = LdVar depth, e0.0
  47630. val %0.2 = Force %0.1, e0.0
  47631. real$' %0.3 = LdConst [1] 1
  47632. goto BB2
  47633. BB2
  47634. val %2.0 = Sub %0.2, %0.3, e0.0
  47635. void Return %2.0
  47636. Prom 3:
  47637. BB0
  47638. env e0.0 = LdFunctionEnv
  47639. val^? %0.1 = LdVar random, e0.0
  47640. val %0.2 = Force %0.1, e0.0
  47641. void Return %0.2
  47642. Prom 4:
  47643. BB0
  47644. env e0.0 = LdFunctionEnv
  47645. cls %0.1 = LdFun nextRandom, e0.0
  47646. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  47647. t %0.3 = Identical %0.1, %0.2
  47648. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47649. BB2
  47650. void Assume %0.3, %0.4
  47651. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  47652. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  47653. real$' %2.3 = LdConst [1] 10
  47654. goto BB4
  47655. BB1
  47656. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  47657. void Deopt %1.0
  47658. BB4
  47659. val %4.0 = Force %2.2, e0.0
  47660. val %4.1 = Mod %4.0, %2.3, e0.0
  47661. real$' %4.2 = LdConst [1] 1
  47662. goto BB6
  47663. BB6
  47664. val %6.0 = Add %4.1, %4.2, e0.0
  47665. void Return %6.0
  47666. ├────── Cleanup redundant operations: == 288
  47667. test>buildTreeDepth@91[0x7f92445596d0]
  47668. BB0
  47669. val^ %0.0 = LdArg 0
  47670. val^ %0.1 = LdArg 1
  47671. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  47672. val %0.3 = Force! %0.0, e0.2
  47673. real$' %0.4 = LdConst [1] 1
  47674. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47675. BB2
  47676. t %2.0 = IsObject %0.3
  47677. void AssumeNot %2.0, %0.5
  47678. lgl' %2.2 = Eq %0.3, %0.4, elided
  47679. lgl %2.3 = AsLogical %2.2
  47680. t %2.4 = AsTest %2.3
  47681. void Branch %2.4 -> BB13 (if true) | BB3 (if false)
  47682. BB1
  47683. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47684. void Deopt %1.0
  47685. BB13
  47686. cls %13.0 = LdFun c, e0.2
  47687. prom %13.1 = MkArg missing, Prom(4), e0.2
  47688. fs %13.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47689. val^ %13.3 = Call %13.0(%13.1) %13.2, e0.2
  47690. goto BB14
  47691. BB3
  47692. cls %3.0 = LdFun vector, e0.2
  47693. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47694. BB14
  47695. val^ %14.0 = Phi %6.0:BB12, %13.3:BB13
  47696. val %14.1 = Force %14.0, e0.2
  47697. void Return %14.1
  47698. BB5
  47699. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47700. t %5.1 = Identical %3.0, %5.0
  47701. void Assume %5.1, %3.1
  47702. str$' %5.3 = LdConst [1] "list"
  47703. real$' %5.4 = LdConst [1] 4
  47704. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  47705. void StVar array, %5.5, e0.2
  47706. real$' %5.7 = LdConst [1] 1
  47707. real$' %5.8 = LdConst [1] 4
  47708. val' %5.9 = Colon %5.7, %5.8, elided
  47709. val' %5.10 = SetShared %5.9
  47710. int$' %5.11 = ForSeqSize %5.10
  47711. int$' %5.12 = LdConst [1] 0
  47712. goto BB6
  47713. BB4
  47714. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47715. void Deopt %4.0
  47716. BB6
  47717. val %6.0 = Phi %5.5:BB5, %11.11:BB11
  47718. int$' %6.1 = Phi %5.12:BB5, %6.3:BB11
  47719. int$' %6.2 = Inc %6.1
  47720. int$' %6.3 = EnsureNamed %6.2
  47721. goto BB7
  47722. BB7
  47723. lgl' %7.0 = Lt %5.11, %6.3, elided
  47724. t %7.1 = AsTest %7.0
  47725. void Branch %7.1 -> BB12 (if true) | BB8 (if false)
  47726. BB12
  47727. goto BB14
  47728. BB8
  47729. goto BB9
  47730. BB9
  47731. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  47732. void StVar i, %9.0, e0.2
  47733. cls %9.2 = LdFun buildTreeDepth, e0.2
  47734. prom %9.3 = MkArg missing, Prom(2), e0.2
  47735. prom %9.4 = MkArg missing, Prom(3), e0.2
  47736. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  47737. BB11
  47738. cls' %11.0 = LdConst function (depth, random) { if (d...
  47739. t %11.1 = Identical %9.2, %11.0
  47740. void Assume %11.1, %9.5
  47741. fs %11.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  47742. val^ %11.4 = StaticCall buildTreeDepth[0x7f92446010b0](%9.3, %9.4) %11.3, e0.2
  47743. val^? %11.5 = LdVar array, e0.2
  47744. val %11.6 = Force %11.5, e0.2
  47745. val^? %11.7 = LdVar i, e0.2
  47746. val %11.8 = Force %11.7, e0.2
  47747. val^ %11.9 = EnsureNamed %11.4
  47748. val %11.10 = Force %11.9, e0.2
  47749. val %11.11 = Subassign2_1D %11.10, %11.6, %11.8, e0.2
  47750. void StVar array, %11.11, e0.2
  47751. goto BB6
  47752. BB10
  47753. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  47754. void Deopt %10.0
  47755. Prom 2:
  47756. BB0
  47757. env e0.0 = LdFunctionEnv
  47758. val^? %0.1 = LdVar depth, e0.0
  47759. val %0.2 = Force %0.1, e0.0
  47760. real$' %0.3 = LdConst [1] 1
  47761. goto BB1
  47762. BB1
  47763. val %1.0 = Sub %0.2, %0.3, e0.0
  47764. void Return %1.0
  47765. Prom 3:
  47766. BB0
  47767. env e0.0 = LdFunctionEnv
  47768. val^? %0.1 = LdVar random, e0.0
  47769. val %0.2 = Force %0.1, e0.0
  47770. void Return %0.2
  47771. Prom 4:
  47772. BB0
  47773. env e0.0 = LdFunctionEnv
  47774. cls %0.1 = LdFun nextRandom, e0.0
  47775. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  47776. t %0.3 = Identical %0.1, %0.2
  47777. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47778. BB2
  47779. void Assume %0.3, %0.4
  47780. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  47781. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  47782. real$' %2.3 = LdConst [1] 10
  47783. goto BB3
  47784. BB1
  47785. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  47786. void Deopt %1.0
  47787. BB3
  47788. val %3.0 = Force %2.2, e0.0
  47789. val %3.1 = Mod %3.0, %2.3, e0.0
  47790. real$' %3.2 = LdConst [1] 1
  47791. goto BB4
  47792. BB4
  47793. val %4.0 = Add %3.1, %3.2, e0.0
  47794. void Return %4.0
  47795. ├────── Delay instructions: == 295
  47796. test>buildTreeDepth@91[0x7f92445596d0]
  47797. BB0
  47798. val^ %0.0 = LdArg 0
  47799. val^ %0.1 = LdArg 1
  47800. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  47801. val %0.3 = Force! %0.0, e0.2
  47802. real$' %0.4 = LdConst [1] 1
  47803. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47804. BB2
  47805. t %2.0 = IsObject %0.3
  47806. void AssumeNot %2.0, %0.5
  47807. lgl' %2.2 = Eq %0.3, %0.4, elided
  47808. lgl %2.3 = AsLogical %2.2
  47809. t %2.4 = AsTest %2.3
  47810. void Branch %2.4 -> BB13 (if true) | BB3 (if false)
  47811. BB1
  47812. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47813. void Deopt %1.0
  47814. BB13
  47815. cls %13.0 = LdFun c, e0.2
  47816. prom %13.1 = MkArg missing, Prom(4), e0.2
  47817. fs %13.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47818. val^ %13.3 = Call %13.0(%13.1) %13.2, e0.2
  47819. goto BB14
  47820. BB3
  47821. cls %3.0 = LdFun vector, e0.2
  47822. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47823. BB14
  47824. val^ %14.0 = Phi %6.0:BB12, %13.3:BB13
  47825. val %14.1 = Force %14.0, e0.2
  47826. void Return %14.1
  47827. BB5
  47828. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47829. t %5.1 = Identical %3.0, %5.0
  47830. void Assume %5.1, %3.1
  47831. real$' %5.3 = LdConst [1] 4
  47832. str$' %5.4 = LdConst [1] "list"
  47833. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  47834. void StVar array, %5.5, e0.2
  47835. real$' %5.7 = LdConst [1] 4
  47836. real$' %5.8 = LdConst [1] 1
  47837. val' %5.9 = Colon %5.8, %5.7, elided
  47838. val' %5.10 = SetShared %5.9
  47839. int$' %5.11 = ForSeqSize %5.10
  47840. int$' %5.12 = LdConst [1] 0
  47841. goto BB6
  47842. BB4
  47843. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47844. void Deopt %4.0
  47845. BB6
  47846. val %6.0 = Phi %5.5:BB5, %11.11:BB11
  47847. int$' %6.1 = Phi %5.12:BB5, %6.3:BB11
  47848. int$' %6.2 = Inc %6.1
  47849. int$' %6.3 = EnsureNamed %6.2
  47850. goto BB7
  47851. BB7
  47852. lgl' %7.0 = Lt %5.11, %6.3, elided
  47853. t %7.1 = AsTest %7.0
  47854. void Branch %7.1 -> BB12 (if true) | BB8 (if false)
  47855. BB12
  47856. goto BB14
  47857. BB8
  47858. goto BB9
  47859. BB9
  47860. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  47861. void StVar i, %9.0, e0.2
  47862. cls %9.2 = LdFun buildTreeDepth, e0.2
  47863. prom %9.3 = MkArg missing, Prom(2), e0.2
  47864. prom %9.4 = MkArg missing, Prom(3), e0.2
  47865. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  47866. BB11
  47867. cls' %11.0 = LdConst function (depth, random) { if (d...
  47868. t %11.1 = Identical %9.2, %11.0
  47869. void Assume %11.1, %9.5
  47870. fs %11.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  47871. val^ %11.4 = StaticCall buildTreeDepth[0x7f92446010b0](%9.3, %9.4) %11.3, e0.2
  47872. val^? %11.5 = LdVar array, e0.2
  47873. val %11.6 = Force %11.5, e0.2
  47874. val^? %11.7 = LdVar i, e0.2
  47875. val %11.8 = Force %11.7, e0.2
  47876. val^ %11.9 = EnsureNamed %11.4
  47877. val %11.10 = Force %11.9, e0.2
  47878. val %11.11 = Subassign2_1D %11.10, %11.6, %11.8, e0.2
  47879. void StVar array, %11.11, e0.2
  47880. goto BB6
  47881. BB10
  47882. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  47883. void Deopt %10.0
  47884. Prom 2:
  47885. BB0
  47886. env e0.0 = LdFunctionEnv
  47887. val^? %0.1 = LdVar depth, e0.0
  47888. val %0.2 = Force %0.1, e0.0
  47889. real$' %0.3 = LdConst [1] 1
  47890. goto BB1
  47891. BB1
  47892. val %1.0 = Sub %0.2, %0.3, e0.0
  47893. void Return %1.0
  47894. Prom 3:
  47895. BB0
  47896. env e0.0 = LdFunctionEnv
  47897. val^? %0.1 = LdVar random, e0.0
  47898. val %0.2 = Force %0.1, e0.0
  47899. void Return %0.2
  47900. Prom 4:
  47901. BB0
  47902. env e0.0 = LdFunctionEnv
  47903. cls %0.1 = LdFun nextRandom, e0.0
  47904. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  47905. t %0.3 = Identical %0.1, %0.2
  47906. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47907. BB2
  47908. void Assume %0.3, %0.4
  47909. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  47910. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  47911. real$' %2.3 = LdConst [1] 10
  47912. goto BB3
  47913. BB1
  47914. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  47915. void Deopt %1.0
  47916. BB3
  47917. val %3.0 = Force %2.2, e0.0
  47918. val %3.1 = Mod %3.0, %2.3, e0.0
  47919. real$' %3.2 = LdConst [1] 1
  47920. goto BB4
  47921. BB4
  47922. val %4.0 = Add %3.1, %3.2, e0.0
  47923. void Return %4.0
  47924. ├────── Elide environments not needed: == 302
  47925. test>buildTreeDepth@91[0x7f92445596d0]
  47926. BB0
  47927. val^ %0.0 = LdArg 0
  47928. val^ %0.1 = LdArg 1
  47929. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  47930. val %0.3 = Force! %0.0, e0.2
  47931. real$' %0.4 = LdConst [1] 1
  47932. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  47933. BB2
  47934. t %2.0 = IsObject %0.3
  47935. void AssumeNot %2.0, %0.5
  47936. lgl' %2.2 = Eq %0.3, %0.4, elided
  47937. lgl %2.3 = AsLogical %2.2
  47938. t %2.4 = AsTest %2.3
  47939. void Branch %2.4 -> BB13 (if true) | BB3 (if false)
  47940. BB1
  47941. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  47942. void Deopt %1.0
  47943. BB13
  47944. cls %13.0 = LdFun c, e0.2
  47945. prom %13.1 = MkArg missing, Prom(4), e0.2
  47946. fs %13.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  47947. val^ %13.3 = Call %13.0(%13.1) %13.2, e0.2
  47948. goto BB14
  47949. BB3
  47950. cls %3.0 = LdFun vector, e0.2
  47951. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  47952. BB14
  47953. val^ %14.0 = Phi %6.0:BB12, %13.3:BB13
  47954. val %14.1 = Force %14.0, e0.2
  47955. void Return %14.1
  47956. BB5
  47957. cls' %5.0 = LdConst function (mode = "logical", length = ...
  47958. t %5.1 = Identical %3.0, %5.0
  47959. void Assume %5.1, %3.1
  47960. real$' %5.3 = LdConst [1] 4
  47961. str$' %5.4 = LdConst [1] "list"
  47962. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  47963. void StVar array, %5.5, e0.2
  47964. real$' %5.7 = LdConst [1] 4
  47965. real$' %5.8 = LdConst [1] 1
  47966. val' %5.9 = Colon %5.8, %5.7, elided
  47967. val' %5.10 = SetShared %5.9
  47968. int$' %5.11 = ForSeqSize %5.10
  47969. int$' %5.12 = LdConst [1] 0
  47970. goto BB6
  47971. BB4
  47972. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  47973. void Deopt %4.0
  47974. BB6
  47975. val %6.0 = Phi %5.5:BB5, %11.11:BB11
  47976. int$' %6.1 = Phi %5.12:BB5, %6.3:BB11
  47977. int$' %6.2 = Inc %6.1
  47978. int$' %6.3 = EnsureNamed %6.2
  47979. goto BB7
  47980. BB7
  47981. lgl' %7.0 = Lt %5.11, %6.3, elided
  47982. t %7.1 = AsTest %7.0
  47983. void Branch %7.1 -> BB12 (if true) | BB8 (if false)
  47984. BB12
  47985. goto BB14
  47986. BB8
  47987. goto BB9
  47988. BB9
  47989. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  47990. void StVar i, %9.0, e0.2
  47991. cls %9.2 = LdFun buildTreeDepth, e0.2
  47992. prom %9.3 = MkArg missing, Prom(2), e0.2
  47993. prom %9.4 = MkArg missing, Prom(3), e0.2
  47994. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  47995. BB11
  47996. cls' %11.0 = LdConst function (depth, random) { if (d...
  47997. t %11.1 = Identical %9.2, %11.0
  47998. void Assume %11.1, %9.5
  47999. fs %11.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48000. val^ %11.4 = StaticCall buildTreeDepth[0x7f92446010b0](%9.3, %9.4) %11.3, e0.2
  48001. val^? %11.5 = LdVar array, e0.2
  48002. val %11.6 = Force %11.5, e0.2
  48003. val^? %11.7 = LdVar i, e0.2
  48004. val %11.8 = Force %11.7, e0.2
  48005. val^ %11.9 = EnsureNamed %11.4
  48006. val %11.10 = Force %11.9, e0.2
  48007. val %11.11 = Subassign2_1D %11.10, %11.6, %11.8, e0.2
  48008. void StVar array, %11.11, e0.2
  48009. goto BB6
  48010. BB10
  48011. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  48012. void Deopt %10.0
  48013. Prom 2:
  48014. BB0
  48015. env e0.0 = LdFunctionEnv
  48016. val^? %0.1 = LdVar depth, e0.0
  48017. val %0.2 = Force %0.1, e0.0
  48018. real$' %0.3 = LdConst [1] 1
  48019. goto BB1
  48020. BB1
  48021. val %1.0 = Sub %0.2, %0.3, e0.0
  48022. void Return %1.0
  48023. Prom 3:
  48024. BB0
  48025. env e0.0 = LdFunctionEnv
  48026. val^? %0.1 = LdVar random, e0.0
  48027. val %0.2 = Force %0.1, e0.0
  48028. void Return %0.2
  48029. Prom 4:
  48030. BB0
  48031. env e0.0 = LdFunctionEnv
  48032. cls %0.1 = LdFun nextRandom, e0.0
  48033. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48034. t %0.3 = Identical %0.1, %0.2
  48035. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48036. BB2
  48037. void Assume %0.3, %0.4
  48038. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48039. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48040. real$' %2.3 = LdConst [1] 10
  48041. goto BB3
  48042. BB1
  48043. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48044. void Deopt %1.0
  48045. BB3
  48046. val %3.0 = Force %2.2, e0.0
  48047. val %3.1 = Mod %3.0, %2.3, e0.0
  48048. real$' %3.2 = LdConst [1] 1
  48049. goto BB4
  48050. BB4
  48051. val %4.0 = Add %3.1, %3.2, e0.0
  48052. void Return %4.0
  48053. ├────── Move environment creation as far as possible: == 309
  48054. test>buildTreeDepth@91[0x7f92445596d0]
  48055. BB0
  48056. val^ %0.0 = LdArg 0
  48057. val^ %0.1 = LdArg 1
  48058. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48059. val %0.3 = Force! %0.0, e0.2
  48060. real$' %0.4 = LdConst [1] 1
  48061. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48062. BB2
  48063. t %2.0 = IsObject %0.3
  48064. void AssumeNot %2.0, %0.5
  48065. lgl' %2.2 = Eq %0.3, %0.4, elided
  48066. lgl %2.3 = AsLogical %2.2
  48067. t %2.4 = AsTest %2.3
  48068. void Branch %2.4 -> BB13 (if true) | BB3 (if false)
  48069. BB1
  48070. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48071. void Deopt %1.0
  48072. BB13
  48073. cls %13.0 = LdFun c, e0.2
  48074. prom %13.1 = MkArg missing, Prom(4), e0.2
  48075. fs %13.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48076. val^ %13.3 = Call %13.0(%13.1) %13.2, e0.2
  48077. goto BB14
  48078. BB3
  48079. cls %3.0 = LdFun vector, e0.2
  48080. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48081. BB14
  48082. val^ %14.0 = Phi %6.0:BB12, %13.3:BB13
  48083. val %14.1 = Force %14.0, e0.2
  48084. void Return %14.1
  48085. BB5
  48086. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48087. t %5.1 = Identical %3.0, %5.0
  48088. void Assume %5.1, %3.1
  48089. real$' %5.3 = LdConst [1] 4
  48090. str$' %5.4 = LdConst [1] "list"
  48091. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  48092. void StVar array, %5.5, e0.2
  48093. real$' %5.7 = LdConst [1] 4
  48094. real$' %5.8 = LdConst [1] 1
  48095. val' %5.9 = Colon %5.8, %5.7, elided
  48096. val' %5.10 = SetShared %5.9
  48097. int$' %5.11 = ForSeqSize %5.10
  48098. int$' %5.12 = LdConst [1] 0
  48099. goto BB6
  48100. BB4
  48101. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48102. void Deopt %4.0
  48103. BB6
  48104. val %6.0 = Phi %5.5:BB5, %11.11:BB11
  48105. int$' %6.1 = Phi %5.12:BB5, %6.3:BB11
  48106. int$' %6.2 = Inc %6.1
  48107. int$' %6.3 = EnsureNamed %6.2
  48108. goto BB7
  48109. BB7
  48110. lgl' %7.0 = Lt %5.11, %6.3, elided
  48111. t %7.1 = AsTest %7.0
  48112. void Branch %7.1 -> BB12 (if true) | BB8 (if false)
  48113. BB12
  48114. goto BB14
  48115. BB8
  48116. goto BB9
  48117. BB9
  48118. val$' %9.0 = Extract2_1D %5.10, %6.3, elided
  48119. void StVar i, %9.0, e0.2
  48120. cls %9.2 = LdFun buildTreeDepth, e0.2
  48121. prom %9.3 = MkArg missing, Prom(2), e0.2
  48122. prom %9.4 = MkArg missing, Prom(3), e0.2
  48123. cp %9.5 = Checkpoint -> BB11 (by default) | BB10 (if coming from expect)
  48124. BB11
  48125. cls' %11.0 = LdConst function (depth, random) { if (d...
  48126. t %11.1 = Identical %9.2, %11.0
  48127. void Assume %11.1, %9.5
  48128. fs %11.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48129. val^ %11.4 = StaticCall buildTreeDepth[0x7f92446010b0](%9.3, %9.4) %11.3, e0.2
  48130. val^? %11.5 = LdVar array, e0.2
  48131. val %11.6 = Force %11.5, e0.2
  48132. val^? %11.7 = LdVar i, e0.2
  48133. val %11.8 = Force %11.7, e0.2
  48134. val^ %11.9 = EnsureNamed %11.4
  48135. val %11.10 = Force %11.9, e0.2
  48136. val %11.11 = Subassign2_1D %11.10, %11.6, %11.8, e0.2
  48137. void StVar array, %11.11, e0.2
  48138. goto BB6
  48139. BB10
  48140. fs %10.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %9.2], env=e0.2
  48141. void Deopt %10.0
  48142. Prom 2:
  48143. BB0
  48144. env e0.0 = LdFunctionEnv
  48145. val^? %0.1 = LdVar depth, e0.0
  48146. val %0.2 = Force %0.1, e0.0
  48147. real$' %0.3 = LdConst [1] 1
  48148. goto BB1
  48149. BB1
  48150. val %1.0 = Sub %0.2, %0.3, e0.0
  48151. void Return %1.0
  48152. Prom 3:
  48153. BB0
  48154. env e0.0 = LdFunctionEnv
  48155. val^? %0.1 = LdVar random, e0.0
  48156. val %0.2 = Force %0.1, e0.0
  48157. void Return %0.2
  48158. Prom 4:
  48159. BB0
  48160. env e0.0 = LdFunctionEnv
  48161. cls %0.1 = LdFun nextRandom, e0.0
  48162. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48163. t %0.3 = Identical %0.1, %0.2
  48164. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48165. BB2
  48166. void Assume %0.3, %0.4
  48167. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48168. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48169. real$' %2.3 = LdConst [1] 10
  48170. goto BB3
  48171. BB1
  48172. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48173. void Deopt %1.0
  48174. BB3
  48175. val %3.0 = Force %2.2, e0.0
  48176. val %3.1 = Mod %3.0, %2.3, e0.0
  48177. real$' %3.2 = LdConst [1] 1
  48178. goto BB4
  48179. BB4
  48180. val %4.0 = Add %3.1, %3.2, e0.0
  48181. void Return %4.0
  48182. ├────── Cleanup redundant operations: == 316
  48183. test>buildTreeDepth@91[0x7f92445596d0]
  48184. BB0
  48185. val^ %0.0 = LdArg 0
  48186. val^ %0.1 = LdArg 1
  48187. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48188. val %0.3 = Force! %0.0, e0.2
  48189. real$' %0.4 = LdConst [1] 1
  48190. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48191. BB2
  48192. t %2.0 = IsObject %0.3
  48193. void AssumeNot %2.0, %0.5
  48194. lgl' %2.2 = Eq %0.3, %0.4, elided
  48195. lgl %2.3 = AsLogical %2.2
  48196. t %2.4 = AsTest %2.3
  48197. void Branch %2.4 -> BB12 (if true) | BB3 (if false)
  48198. BB1
  48199. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48200. void Deopt %1.0
  48201. BB12
  48202. cls %12.0 = LdFun c, e0.2
  48203. prom %12.1 = MkArg missing, Prom(4), e0.2
  48204. fs %12.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48205. val^ %12.3 = Call %12.0(%12.1) %12.2, e0.2
  48206. goto BB13
  48207. BB3
  48208. cls %3.0 = LdFun vector, e0.2
  48209. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48210. BB13
  48211. val^ %13.0 = Phi %6.0:BB11, %12.3:BB12
  48212. val %13.1 = Force %13.0, e0.2
  48213. void Return %13.1
  48214. BB5
  48215. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48216. t %5.1 = Identical %3.0, %5.0
  48217. void Assume %5.1, %3.1
  48218. real$' %5.3 = LdConst [1] 4
  48219. str$' %5.4 = LdConst [1] "list"
  48220. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  48221. void StVar array, %5.5, e0.2
  48222. real$' %5.7 = LdConst [1] 4
  48223. real$' %5.8 = LdConst [1] 1
  48224. val' %5.9 = Colon %5.8, %5.7, elided
  48225. val' %5.10 = SetShared %5.9
  48226. int$' %5.11 = ForSeqSize %5.10
  48227. int$' %5.12 = LdConst [1] 0
  48228. goto BB6
  48229. BB4
  48230. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48231. void Deopt %4.0
  48232. BB6
  48233. val %6.0 = Phi %5.5:BB5, %10.11:BB10
  48234. int$' %6.1 = Phi %5.12:BB5, %6.3:BB10
  48235. int$' %6.2 = Inc %6.1
  48236. int$' %6.3 = EnsureNamed %6.2
  48237. lgl' %6.4 = Lt %5.11, %6.3, elided
  48238. t %6.5 = AsTest %6.4
  48239. void Branch %6.5 -> BB11 (if true) | BB7 (if false)
  48240. BB11
  48241. goto BB13
  48242. BB7
  48243. goto BB8
  48244. BB8
  48245. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  48246. void StVar i, %8.0, e0.2
  48247. cls %8.2 = LdFun buildTreeDepth, e0.2
  48248. prom %8.3 = MkArg missing, Prom(2), e0.2
  48249. prom %8.4 = MkArg missing, Prom(3), e0.2
  48250. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  48251. BB10
  48252. cls' %10.0 = LdConst function (depth, random) { if (d...
  48253. t %10.1 = Identical %8.2, %10.0
  48254. void Assume %10.1, %8.5
  48255. fs %10.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48256. val^ %10.4 = StaticCall buildTreeDepth[0x7f92446010b0](%8.3, %8.4) %10.3, e0.2
  48257. val^? %10.5 = LdVar array, e0.2
  48258. val %10.6 = Force %10.5, e0.2
  48259. val^? %10.7 = LdVar i, e0.2
  48260. val %10.8 = Force %10.7, e0.2
  48261. val^ %10.9 = EnsureNamed %10.4
  48262. val %10.10 = Force %10.9, e0.2
  48263. val %10.11 = Subassign2_1D %10.10, %10.6, %10.8, e0.2
  48264. void StVar array, %10.11, e0.2
  48265. goto BB6
  48266. BB9
  48267. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  48268. void Deopt %9.0
  48269. Prom 2:
  48270. BB0
  48271. env e0.0 = LdFunctionEnv
  48272. val^? %0.1 = LdVar depth, e0.0
  48273. val %0.2 = Force %0.1, e0.0
  48274. real$' %0.3 = LdConst [1] 1
  48275. goto BB1
  48276. BB1
  48277. val %1.0 = Sub %0.2, %0.3, e0.0
  48278. void Return %1.0
  48279. Prom 3:
  48280. BB0
  48281. env e0.0 = LdFunctionEnv
  48282. val^? %0.1 = LdVar random, e0.0
  48283. val %0.2 = Force %0.1, e0.0
  48284. void Return %0.2
  48285. Prom 4:
  48286. BB0
  48287. env e0.0 = LdFunctionEnv
  48288. cls %0.1 = LdFun nextRandom, e0.0
  48289. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48290. t %0.3 = Identical %0.1, %0.2
  48291. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48292. BB2
  48293. void Assume %0.3, %0.4
  48294. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48295. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48296. real$' %2.3 = LdConst [1] 10
  48297. goto BB3
  48298. BB1
  48299. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48300. void Deopt %1.0
  48301. BB3
  48302. val %3.0 = Force %2.2, e0.0
  48303. val %3.1 = Mod %3.0, %2.3, e0.0
  48304. real$' %3.2 = LdConst [1] 1
  48305. goto BB4
  48306. BB4
  48307. val %4.0 = Add %3.1, %3.2, e0.0
  48308. void Return %4.0
  48309. ├────── Inline closures: == 323
  48310. test>buildTreeDepth@91[0x7f92445596d0]
  48311. BB0
  48312. val^ %0.0 = LdArg 0
  48313. val^ %0.1 = LdArg 1
  48314. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48315. val %0.3 = Force! %0.0, e0.2
  48316. real$' %0.4 = LdConst [1] 1
  48317. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48318. BB2
  48319. t %2.0 = IsObject %0.3
  48320. void AssumeNot %2.0, %0.5
  48321. lgl' %2.2 = Eq %0.3, %0.4, elided
  48322. lgl %2.3 = AsLogical %2.2
  48323. t %2.4 = AsTest %2.3
  48324. void Branch %2.4 -> BB12 (if true) | BB3 (if false)
  48325. BB1
  48326. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48327. void Deopt %1.0
  48328. BB12
  48329. cls %12.0 = LdFun c, e0.2
  48330. prom %12.1 = MkArg missing, Prom(4), e0.2
  48331. fs %12.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48332. val^ %12.3 = Call %12.0(%12.1) %12.2, e0.2
  48333. goto BB13
  48334. BB3
  48335. cls %3.0 = LdFun vector, e0.2
  48336. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48337. BB13
  48338. val^ %13.0 = Phi %6.0:BB11, %12.3:BB12
  48339. val %13.1 = Force %13.0, e0.2
  48340. void Return %13.1
  48341. BB5
  48342. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48343. t %5.1 = Identical %3.0, %5.0
  48344. void Assume %5.1, %3.1
  48345. real$' %5.3 = LdConst [1] 4
  48346. str$' %5.4 = LdConst [1] "list"
  48347. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  48348. void StVar array, %5.5, e0.2
  48349. real$' %5.7 = LdConst [1] 4
  48350. real$' %5.8 = LdConst [1] 1
  48351. val' %5.9 = Colon %5.8, %5.7, elided
  48352. val' %5.10 = SetShared %5.9
  48353. int$' %5.11 = ForSeqSize %5.10
  48354. int$' %5.12 = LdConst [1] 0
  48355. goto BB6
  48356. BB4
  48357. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48358. void Deopt %4.0
  48359. BB6
  48360. val %6.0 = Phi %5.5:BB5, %10.11:BB10
  48361. int$' %6.1 = Phi %5.12:BB5, %6.3:BB10
  48362. int$' %6.2 = Inc %6.1
  48363. int$' %6.3 = EnsureNamed %6.2
  48364. lgl' %6.4 = Lt %5.11, %6.3, elided
  48365. t %6.5 = AsTest %6.4
  48366. void Branch %6.5 -> BB11 (if true) | BB7 (if false)
  48367. BB11
  48368. goto BB13
  48369. BB7
  48370. goto BB8
  48371. BB8
  48372. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  48373. void StVar i, %8.0, e0.2
  48374. cls %8.2 = LdFun buildTreeDepth, e0.2
  48375. prom %8.3 = MkArg missing, Prom(2), e0.2
  48376. prom %8.4 = MkArg missing, Prom(3), e0.2
  48377. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  48378. BB10
  48379. cls' %10.0 = LdConst function (depth, random) { if (d...
  48380. t %10.1 = Identical %8.2, %10.0
  48381. void Assume %10.1, %8.5
  48382. fs %10.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48383. val^ %10.4 = StaticCall buildTreeDepth[0x7f92446010b0](%8.3, %8.4) %10.3, e0.2
  48384. val^? %10.5 = LdVar array, e0.2
  48385. val %10.6 = Force %10.5, e0.2
  48386. val^? %10.7 = LdVar i, e0.2
  48387. val %10.8 = Force %10.7, e0.2
  48388. val^ %10.9 = EnsureNamed %10.4
  48389. val %10.10 = Force %10.9, e0.2
  48390. val %10.11 = Subassign2_1D %10.10, %10.6, %10.8, e0.2
  48391. void StVar array, %10.11, e0.2
  48392. goto BB6
  48393. BB9
  48394. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  48395. void Deopt %9.0
  48396. Prom 2:
  48397. BB0
  48398. env e0.0 = LdFunctionEnv
  48399. val^? %0.1 = LdVar depth, e0.0
  48400. val %0.2 = Force %0.1, e0.0
  48401. real$' %0.3 = LdConst [1] 1
  48402. goto BB1
  48403. BB1
  48404. val %1.0 = Sub %0.2, %0.3, e0.0
  48405. void Return %1.0
  48406. Prom 3:
  48407. BB0
  48408. env e0.0 = LdFunctionEnv
  48409. val^? %0.1 = LdVar random, e0.0
  48410. val %0.2 = Force %0.1, e0.0
  48411. void Return %0.2
  48412. Prom 4:
  48413. BB0
  48414. env e0.0 = LdFunctionEnv
  48415. cls %0.1 = LdFun nextRandom, e0.0
  48416. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48417. t %0.3 = Identical %0.1, %0.2
  48418. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48419. BB2
  48420. void Assume %0.3, %0.4
  48421. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48422. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48423. real$' %2.3 = LdConst [1] 10
  48424. goto BB3
  48425. BB1
  48426. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48427. void Deopt %1.0
  48428. BB3
  48429. val %3.0 = Force %2.2, e0.0
  48430. val %3.1 = Mod %3.0, %2.3, e0.0
  48431. real$' %3.2 = LdConst [1] 1
  48432. goto BB4
  48433. BB4
  48434. val %4.0 = Add %3.1, %3.2, e0.0
  48435. void Return %4.0
  48436. ├────── Inline Promises: == 330
  48437. test>buildTreeDepth@91[0x7f92445596d0]
  48438. BB0
  48439. val^ %0.0 = LdArg 0
  48440. val^ %0.1 = LdArg 1
  48441. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48442. val %0.3 = Force! %0.0, e0.2
  48443. real$' %0.4 = LdConst [1] 1
  48444. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48445. BB2
  48446. t %2.0 = IsObject %0.3
  48447. void AssumeNot %2.0, %0.5
  48448. lgl' %2.2 = Eq %0.3, %0.4, elided
  48449. lgl %2.3 = AsLogical %2.2
  48450. t %2.4 = AsTest %2.3
  48451. void Branch %2.4 -> BB12 (if true) | BB3 (if false)
  48452. BB1
  48453. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48454. void Deopt %1.0
  48455. BB12
  48456. cls %12.0 = LdFun c, e0.2
  48457. prom %12.1 = MkArg missing, Prom(4), e0.2
  48458. fs %12.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48459. val^ %12.3 = Call %12.0(%12.1) %12.2, e0.2
  48460. goto BB13
  48461. BB3
  48462. cls %3.0 = LdFun vector, e0.2
  48463. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48464. BB13
  48465. val^ %13.0 = Phi %6.0:BB11, %12.3:BB12
  48466. val %13.1 = Force %13.0, e0.2
  48467. void Return %13.1
  48468. BB5
  48469. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48470. t %5.1 = Identical %3.0, %5.0
  48471. void Assume %5.1, %3.1
  48472. real$' %5.3 = LdConst [1] 4
  48473. str$' %5.4 = LdConst [1] "list"
  48474. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  48475. void StVar array, %5.5, e0.2
  48476. real$' %5.7 = LdConst [1] 4
  48477. real$' %5.8 = LdConst [1] 1
  48478. val' %5.9 = Colon %5.8, %5.7, elided
  48479. val' %5.10 = SetShared %5.9
  48480. int$' %5.11 = ForSeqSize %5.10
  48481. int$' %5.12 = LdConst [1] 0
  48482. goto BB6
  48483. BB4
  48484. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48485. void Deopt %4.0
  48486. BB6
  48487. val %6.0 = Phi %5.5:BB5, %10.11:BB10
  48488. int$' %6.1 = Phi %5.12:BB5, %6.3:BB10
  48489. int$' %6.2 = Inc %6.1
  48490. int$' %6.3 = EnsureNamed %6.2
  48491. lgl' %6.4 = Lt %5.11, %6.3, elided
  48492. t %6.5 = AsTest %6.4
  48493. void Branch %6.5 -> BB11 (if true) | BB7 (if false)
  48494. BB11
  48495. goto BB13
  48496. BB7
  48497. goto BB8
  48498. BB8
  48499. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  48500. void StVar i, %8.0, e0.2
  48501. cls %8.2 = LdFun buildTreeDepth, e0.2
  48502. prom %8.3 = MkArg missing, Prom(2), e0.2
  48503. prom %8.4 = MkArg missing, Prom(3), e0.2
  48504. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  48505. BB10
  48506. cls' %10.0 = LdConst function (depth, random) { if (d...
  48507. t %10.1 = Identical %8.2, %10.0
  48508. void Assume %10.1, %8.5
  48509. fs %10.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48510. val^ %10.4 = StaticCall buildTreeDepth[0x7f92446010b0](%8.3, %8.4) %10.3, e0.2
  48511. val^? %10.5 = LdVar array, e0.2
  48512. val %10.6 = Force %10.5, e0.2
  48513. val^? %10.7 = LdVar i, e0.2
  48514. val %10.8 = Force %10.7, e0.2
  48515. val^ %10.9 = EnsureNamed %10.4
  48516. val %10.10 = Force %10.9, e0.2
  48517. val %10.11 = Subassign2_1D %10.10, %10.6, %10.8, e0.2
  48518. void StVar array, %10.11, e0.2
  48519. goto BB6
  48520. BB9
  48521. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  48522. void Deopt %9.0
  48523. Prom 2:
  48524. BB0
  48525. env e0.0 = LdFunctionEnv
  48526. val^? %0.1 = LdVar depth, e0.0
  48527. val %0.2 = Force %0.1, e0.0
  48528. real$' %0.3 = LdConst [1] 1
  48529. goto BB1
  48530. BB1
  48531. val %1.0 = Sub %0.2, %0.3, e0.0
  48532. void Return %1.0
  48533. Prom 3:
  48534. BB0
  48535. env e0.0 = LdFunctionEnv
  48536. val^? %0.1 = LdVar random, e0.0
  48537. val %0.2 = Force %0.1, e0.0
  48538. void Return %0.2
  48539. Prom 4:
  48540. BB0
  48541. env e0.0 = LdFunctionEnv
  48542. cls %0.1 = LdFun nextRandom, e0.0
  48543. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48544. t %0.3 = Identical %0.1, %0.2
  48545. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48546. BB2
  48547. void Assume %0.3, %0.4
  48548. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48549. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48550. real$' %2.3 = LdConst [1] 10
  48551. goto BB3
  48552. BB1
  48553. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48554. void Deopt %1.0
  48555. BB3
  48556. val %3.0 = Force %2.2, e0.0
  48557. val %3.1 = Mod %3.0, %2.3, e0.0
  48558. real$' %3.2 = LdConst [1] 1
  48559. goto BB4
  48560. BB4
  48561. val %4.0 = Add %3.1, %3.2, e0.0
  48562. void Return %4.0
  48563. ├────── Scope resolution: == 337
  48564. test>buildTreeDepth@91[0x7f92445596d0]
  48565. BB0
  48566. val^ %0.0 = LdArg 0
  48567. val^ %0.1 = LdArg 1
  48568. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48569. val %0.3 = Force! %0.0, e0.2
  48570. real$' %0.4 = LdConst [1] 1
  48571. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48572. BB2
  48573. t %2.0 = IsObject %0.3
  48574. void AssumeNot %2.0, %0.5
  48575. lgl' %2.2 = Eq %0.3, %0.4, elided
  48576. lgl %2.3 = AsLogical %2.2
  48577. t %2.4 = AsTest %2.3
  48578. void Branch %2.4 -> BB12 (if true) | BB3 (if false)
  48579. BB1
  48580. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48581. void Deopt %1.0
  48582. BB12
  48583. cls %12.0 = LdFun c, e0.2
  48584. prom %12.1 = MkArg missing, Prom(4), e0.2
  48585. fs %12.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48586. val^ %12.3 = Call %12.0(%12.1) %12.2, e0.2
  48587. goto BB13
  48588. BB3
  48589. cls %3.0 = LdFun vector, e0.2
  48590. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48591. BB13
  48592. val^ %13.0 = Phi %6.0:BB11, %12.3:BB12
  48593. val %13.1 = Force %13.0, e0.2
  48594. void Return %13.1
  48595. BB5
  48596. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48597. t %5.1 = Identical %3.0, %5.0
  48598. void Assume %5.1, %3.1
  48599. real$' %5.3 = LdConst [1] 4
  48600. str$' %5.4 = LdConst [1] "list"
  48601. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  48602. void StVar array, %5.5, e0.2
  48603. real$' %5.7 = LdConst [1] 4
  48604. real$' %5.8 = LdConst [1] 1
  48605. val' %5.9 = Colon %5.8, %5.7, elided
  48606. val' %5.10 = SetShared %5.9
  48607. int$' %5.11 = ForSeqSize %5.10
  48608. int$' %5.12 = LdConst [1] 0
  48609. goto BB6
  48610. BB4
  48611. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48612. void Deopt %4.0
  48613. BB6
  48614. val %6.0 = Phi %5.5:BB5, %10.11:BB10
  48615. int$' %6.1 = Phi %5.12:BB5, %6.3:BB10
  48616. int$' %6.2 = Inc %6.1
  48617. int$' %6.3 = EnsureNamed %6.2
  48618. lgl' %6.4 = Lt %5.11, %6.3, elided
  48619. t %6.5 = AsTest %6.4
  48620. void Branch %6.5 -> BB11 (if true) | BB7 (if false)
  48621. BB11
  48622. goto BB13
  48623. BB7
  48624. goto BB8
  48625. BB8
  48626. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  48627. void StVar i, %8.0, e0.2
  48628. cls %8.2 = LdFun buildTreeDepth, e0.2
  48629. prom %8.3 = MkArg missing, Prom(2), e0.2
  48630. prom %8.4 = MkArg missing, Prom(3), e0.2
  48631. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  48632. BB10
  48633. cls' %10.0 = LdConst function (depth, random) { if (d...
  48634. t %10.1 = Identical %8.2, %10.0
  48635. void Assume %10.1, %8.5
  48636. fs %10.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48637. val^ %10.4 = StaticCall buildTreeDepth[0x7f92446010b0](%8.3, %8.4) %10.3, e0.2
  48638. val^? %10.5 = LdVar array, e0.2
  48639. val %10.6 = Force %10.5, e0.2
  48640. val^? %10.7 = LdVar i, e0.2
  48641. val %10.8 = Force %10.7, e0.2
  48642. val^ %10.9 = EnsureNamed %10.4
  48643. val %10.10 = Force %10.9, e0.2
  48644. val %10.11 = Subassign2_1D %10.10, %10.6, %10.8, e0.2
  48645. void StVar array, %10.11, e0.2
  48646. goto BB6
  48647. BB9
  48648. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  48649. void Deopt %9.0
  48650. Prom 2:
  48651. BB0
  48652. env e0.0 = LdFunctionEnv
  48653. val^? %0.1 = LdVar depth, e0.0
  48654. val %0.2 = Force %0.1, e0.0
  48655. real$' %0.3 = LdConst [1] 1
  48656. goto BB1
  48657. BB1
  48658. val %1.0 = Sub %0.2, %0.3, e0.0
  48659. void Return %1.0
  48660. Prom 3:
  48661. BB0
  48662. env e0.0 = LdFunctionEnv
  48663. val^? %0.1 = LdVar random, e0.0
  48664. val %0.2 = Force %0.1, e0.0
  48665. void Return %0.2
  48666. Prom 4:
  48667. BB0
  48668. env e0.0 = LdFunctionEnv
  48669. cls %0.1 = LdFun nextRandom, e0.0
  48670. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48671. t %0.3 = Identical %0.1, %0.2
  48672. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48673. BB2
  48674. void Assume %0.3, %0.4
  48675. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48676. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48677. real$' %2.3 = LdConst [1] 10
  48678. goto BB3
  48679. BB1
  48680. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48681. void Deopt %1.0
  48682. BB3
  48683. val %3.0 = Force %2.2, e0.0
  48684. val %3.1 = Mod %3.0, %2.3, e0.0
  48685. real$' %3.2 = LdConst [1] 1
  48686. goto BB4
  48687. BB4
  48688. val %4.0 = Add %3.1, %3.2, e0.0
  48689. void Return %4.0
  48690. ├────── Constant folding: == 344
  48691. test>buildTreeDepth@91[0x7f92445596d0]
  48692. BB0
  48693. val^ %0.0 = LdArg 0
  48694. val^ %0.1 = LdArg 1
  48695. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48696. val %0.3 = Force! %0.0, e0.2
  48697. real$' %0.4 = LdConst [1] 1
  48698. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48699. BB2
  48700. t %2.0 = IsObject %0.3
  48701. void AssumeNot %2.0, %0.5
  48702. lgl' %2.2 = Eq %0.3, %0.4, elided
  48703. lgl %2.3 = AsLogical %2.2
  48704. t %2.4 = AsTest %2.3
  48705. void Branch %2.4 -> BB12 (if true) | BB3 (if false)
  48706. BB1
  48707. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48708. void Deopt %1.0
  48709. BB12
  48710. cls %12.0 = LdFun c, e0.2
  48711. prom %12.1 = MkArg missing, Prom(4), e0.2
  48712. fs %12.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48713. val^ %12.3 = Call %12.0(%12.1) %12.2, e0.2
  48714. goto BB13
  48715. BB3
  48716. cls %3.0 = LdFun vector, e0.2
  48717. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48718. BB13
  48719. val^ %13.0 = Phi %6.0:BB11, %12.3:BB12
  48720. val %13.1 = Force %13.0, e0.2
  48721. void Return %13.1
  48722. BB5
  48723. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48724. t %5.1 = Identical %3.0, %5.0
  48725. void Assume %5.1, %3.1
  48726. real$' %5.3 = LdConst [1] 4
  48727. str$' %5.4 = LdConst [1] "list"
  48728. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  48729. void StVar array, %5.5, e0.2
  48730. real$' %5.7 = LdConst [1] 4
  48731. real$' %5.8 = LdConst [1] 1
  48732. val' %5.9 = Colon %5.8, %5.7, elided
  48733. val' %5.10 = SetShared %5.9
  48734. int$' %5.11 = ForSeqSize %5.10
  48735. int$' %5.12 = LdConst [1] 0
  48736. goto BB6
  48737. BB4
  48738. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48739. void Deopt %4.0
  48740. BB6
  48741. val %6.0 = Phi %5.5:BB5, %10.11:BB10
  48742. int$' %6.1 = Phi %5.12:BB5, %6.3:BB10
  48743. int$' %6.2 = Inc %6.1
  48744. int$' %6.3 = EnsureNamed %6.2
  48745. lgl' %6.4 = Lt %5.11, %6.3, elided
  48746. t %6.5 = AsTest %6.4
  48747. void Branch %6.5 -> BB11 (if true) | BB7 (if false)
  48748. BB11
  48749. goto BB13
  48750. BB7
  48751. goto BB8
  48752. BB8
  48753. val$' %8.0 = Extract2_1D %5.10, %6.3, elided
  48754. void StVar i, %8.0, e0.2
  48755. cls %8.2 = LdFun buildTreeDepth, e0.2
  48756. prom %8.3 = MkArg missing, Prom(2), e0.2
  48757. prom %8.4 = MkArg missing, Prom(3), e0.2
  48758. cp %8.5 = Checkpoint -> BB10 (by default) | BB9 (if coming from expect)
  48759. BB10
  48760. cls' %10.0 = LdConst function (depth, random) { if (d...
  48761. t %10.1 = Identical %8.2, %10.0
  48762. void Assume %10.1, %8.5
  48763. fs %10.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48764. val^ %10.4 = StaticCall buildTreeDepth[0x7f92446010b0](%8.3, %8.4) %10.3, e0.2
  48765. val^? %10.5 = LdVar array, e0.2
  48766. val %10.6 = Force %10.5, e0.2
  48767. val^? %10.7 = LdVar i, e0.2
  48768. val %10.8 = Force %10.7, e0.2
  48769. val^ %10.9 = EnsureNamed %10.4
  48770. val %10.10 = Force %10.9, e0.2
  48771. val %10.11 = Subassign2_1D %10.10, %10.6, %10.8, e0.2
  48772. void StVar array, %10.11, e0.2
  48773. goto BB6
  48774. BB9
  48775. fs %9.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %8.2], env=e0.2
  48776. void Deopt %9.0
  48777. Prom 2:
  48778. BB0
  48779. env e0.0 = LdFunctionEnv
  48780. val^? %0.1 = LdVar depth, e0.0
  48781. val %0.2 = Force %0.1, e0.0
  48782. real$' %0.3 = LdConst [1] 1
  48783. goto BB1
  48784. BB1
  48785. val %1.0 = Sub %0.2, %0.3, e0.0
  48786. void Return %1.0
  48787. Prom 3:
  48788. BB0
  48789. env e0.0 = LdFunctionEnv
  48790. val^? %0.1 = LdVar random, e0.0
  48791. val %0.2 = Force %0.1, e0.0
  48792. void Return %0.2
  48793. Prom 4:
  48794. BB0
  48795. env e0.0 = LdFunctionEnv
  48796. cls %0.1 = LdFun nextRandom, e0.0
  48797. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48798. t %0.3 = Identical %0.1, %0.2
  48799. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48800. BB2
  48801. void Assume %0.3, %0.4
  48802. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48803. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48804. real$' %2.3 = LdConst [1] 10
  48805. goto BB3
  48806. BB1
  48807. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48808. void Deopt %1.0
  48809. BB3
  48810. val %3.0 = Force %2.2, e0.0
  48811. val %3.1 = Mod %3.0, %2.3, e0.0
  48812. real$' %3.2 = LdConst [1] 1
  48813. goto BB4
  48814. BB4
  48815. val %4.0 = Add %3.1, %3.2, e0.0
  48816. void Return %4.0
  48817. ├────── Cleanup redundant operations: == 351
  48818. test>buildTreeDepth@91[0x7f92445596d0]
  48819. BB0
  48820. val^ %0.0 = LdArg 0
  48821. val^ %0.1 = LdArg 1
  48822. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48823. val %0.3 = Force! %0.0, e0.2
  48824. real$' %0.4 = LdConst [1] 1
  48825. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48826. BB2
  48827. t %2.0 = IsObject %0.3
  48828. void AssumeNot %2.0, %0.5
  48829. lgl' %2.2 = Eq %0.3, %0.4, elided
  48830. lgl %2.3 = AsLogical %2.2
  48831. t %2.4 = AsTest %2.3
  48832. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  48833. BB1
  48834. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48835. void Deopt %1.0
  48836. BB11
  48837. cls %11.0 = LdFun c, e0.2
  48838. prom %11.1 = MkArg missing, Prom(4), e0.2
  48839. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48840. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  48841. goto BB12
  48842. BB3
  48843. cls %3.0 = LdFun vector, e0.2
  48844. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48845. BB12
  48846. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  48847. val %12.1 = Force %12.0, e0.2
  48848. void Return %12.1
  48849. BB5
  48850. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48851. t %5.1 = Identical %3.0, %5.0
  48852. void Assume %5.1, %3.1
  48853. real$' %5.3 = LdConst [1] 4
  48854. str$' %5.4 = LdConst [1] "list"
  48855. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  48856. void StVar array, %5.5, e0.2
  48857. real$' %5.7 = LdConst [1] 4
  48858. real$' %5.8 = LdConst [1] 1
  48859. val' %5.9 = Colon %5.8, %5.7, elided
  48860. val' %5.10 = SetShared %5.9
  48861. int$' %5.11 = ForSeqSize %5.10
  48862. int$' %5.12 = LdConst [1] 0
  48863. goto BB6
  48864. BB4
  48865. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48866. void Deopt %4.0
  48867. BB6
  48868. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  48869. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  48870. int$' %6.2 = Inc %6.1
  48871. int$' %6.3 = EnsureNamed %6.2
  48872. lgl' %6.4 = Lt %5.11, %6.3, elided
  48873. t %6.5 = AsTest %6.4
  48874. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  48875. BB10
  48876. goto BB12
  48877. BB7
  48878. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  48879. void StVar i, %7.0, e0.2
  48880. cls %7.2 = LdFun buildTreeDepth, e0.2
  48881. prom %7.3 = MkArg missing, Prom(2), e0.2
  48882. prom %7.4 = MkArg missing, Prom(3), e0.2
  48883. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  48884. BB9
  48885. cls' %9.0 = LdConst function (depth, random) { if (d...
  48886. t %9.1 = Identical %7.2, %9.0
  48887. void Assume %9.1, %7.5
  48888. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  48889. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  48890. val^? %9.5 = LdVar array, e0.2
  48891. val %9.6 = Force %9.5, e0.2
  48892. val^? %9.7 = LdVar i, e0.2
  48893. val %9.8 = Force %9.7, e0.2
  48894. val^ %9.9 = EnsureNamed %9.4
  48895. val %9.10 = Force %9.9, e0.2
  48896. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  48897. void StVar array, %9.11, e0.2
  48898. goto BB6
  48899. BB8
  48900. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  48901. void Deopt %8.0
  48902. Prom 2:
  48903. BB0
  48904. env e0.0 = LdFunctionEnv
  48905. val^? %0.1 = LdVar depth, e0.0
  48906. val %0.2 = Force %0.1, e0.0
  48907. real$' %0.3 = LdConst [1] 1
  48908. goto BB1
  48909. BB1
  48910. val %1.0 = Sub %0.2, %0.3, e0.0
  48911. void Return %1.0
  48912. Prom 3:
  48913. BB0
  48914. env e0.0 = LdFunctionEnv
  48915. val^? %0.1 = LdVar random, e0.0
  48916. val %0.2 = Force %0.1, e0.0
  48917. void Return %0.2
  48918. Prom 4:
  48919. BB0
  48920. env e0.0 = LdFunctionEnv
  48921. cls %0.1 = LdFun nextRandom, e0.0
  48922. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  48923. t %0.3 = Identical %0.1, %0.2
  48924. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48925. BB2
  48926. void Assume %0.3, %0.4
  48927. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  48928. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  48929. real$' %2.3 = LdConst [1] 10
  48930. goto BB3
  48931. BB1
  48932. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  48933. void Deopt %1.0
  48934. BB3
  48935. val %3.0 = Force %2.2, e0.0
  48936. val %3.1 = Mod %3.0, %2.3, e0.0
  48937. real$' %3.2 = LdConst [1] 1
  48938. goto BB4
  48939. BB4
  48940. val %4.0 = Add %3.1, %3.2, e0.0
  48941. void Return %4.0
  48942. ├────── Delay instructions: == 358
  48943. test>buildTreeDepth@91[0x7f92445596d0]
  48944. BB0
  48945. val^ %0.0 = LdArg 0
  48946. val^ %0.1 = LdArg 1
  48947. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  48948. val %0.3 = Force! %0.0, e0.2
  48949. real$' %0.4 = LdConst [1] 1
  48950. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  48951. BB2
  48952. t %2.0 = IsObject %0.3
  48953. void AssumeNot %2.0, %0.5
  48954. lgl' %2.2 = Eq %0.3, %0.4, elided
  48955. lgl %2.3 = AsLogical %2.2
  48956. t %2.4 = AsTest %2.3
  48957. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  48958. BB1
  48959. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  48960. void Deopt %1.0
  48961. BB11
  48962. cls %11.0 = LdFun c, e0.2
  48963. prom %11.1 = MkArg missing, Prom(4), e0.2
  48964. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  48965. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  48966. goto BB12
  48967. BB3
  48968. cls %3.0 = LdFun vector, e0.2
  48969. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  48970. BB12
  48971. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  48972. val %12.1 = Force %12.0, e0.2
  48973. void Return %12.1
  48974. BB5
  48975. cls' %5.0 = LdConst function (mode = "logical", length = ...
  48976. t %5.1 = Identical %3.0, %5.0
  48977. void Assume %5.1, %3.1
  48978. str$' %5.3 = LdConst [1] "list"
  48979. real$' %5.4 = LdConst [1] 4
  48980. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  48981. void StVar array, %5.5, e0.2
  48982. real$' %5.7 = LdConst [1] 1
  48983. real$' %5.8 = LdConst [1] 4
  48984. val' %5.9 = Colon %5.7, %5.8, elided
  48985. val' %5.10 = SetShared %5.9
  48986. int$' %5.11 = ForSeqSize %5.10
  48987. int$' %5.12 = LdConst [1] 0
  48988. goto BB6
  48989. BB4
  48990. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  48991. void Deopt %4.0
  48992. BB6
  48993. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  48994. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  48995. int$' %6.2 = Inc %6.1
  48996. int$' %6.3 = EnsureNamed %6.2
  48997. lgl' %6.4 = Lt %5.11, %6.3, elided
  48998. t %6.5 = AsTest %6.4
  48999. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49000. BB10
  49001. goto BB12
  49002. BB7
  49003. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49004. void StVar i, %7.0, e0.2
  49005. cls %7.2 = LdFun buildTreeDepth, e0.2
  49006. prom %7.3 = MkArg missing, Prom(2), e0.2
  49007. prom %7.4 = MkArg missing, Prom(3), e0.2
  49008. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49009. BB9
  49010. cls' %9.0 = LdConst function (depth, random) { if (d...
  49011. t %9.1 = Identical %7.2, %9.0
  49012. void Assume %9.1, %7.5
  49013. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49014. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49015. val^? %9.5 = LdVar array, e0.2
  49016. val %9.6 = Force %9.5, e0.2
  49017. val^? %9.7 = LdVar i, e0.2
  49018. val %9.8 = Force %9.7, e0.2
  49019. val^ %9.9 = EnsureNamed %9.4
  49020. val %9.10 = Force %9.9, e0.2
  49021. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49022. void StVar array, %9.11, e0.2
  49023. goto BB6
  49024. BB8
  49025. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49026. void Deopt %8.0
  49027. Prom 2:
  49028. BB0
  49029. env e0.0 = LdFunctionEnv
  49030. val^? %0.1 = LdVar depth, e0.0
  49031. val %0.2 = Force %0.1, e0.0
  49032. real$' %0.3 = LdConst [1] 1
  49033. goto BB1
  49034. BB1
  49035. val %1.0 = Sub %0.2, %0.3, e0.0
  49036. void Return %1.0
  49037. Prom 3:
  49038. BB0
  49039. env e0.0 = LdFunctionEnv
  49040. val^? %0.1 = LdVar random, e0.0
  49041. val %0.2 = Force %0.1, e0.0
  49042. void Return %0.2
  49043. Prom 4:
  49044. BB0
  49045. env e0.0 = LdFunctionEnv
  49046. cls %0.1 = LdFun nextRandom, e0.0
  49047. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49048. t %0.3 = Identical %0.1, %0.2
  49049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49050. BB2
  49051. void Assume %0.3, %0.4
  49052. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49053. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49054. real$' %2.3 = LdConst [1] 10
  49055. goto BB3
  49056. BB1
  49057. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49058. void Deopt %1.0
  49059. BB3
  49060. val %3.0 = Force %2.2, e0.0
  49061. val %3.1 = Mod %3.0, %2.3, e0.0
  49062. real$' %3.2 = LdConst [1] 1
  49063. goto BB4
  49064. BB4
  49065. val %4.0 = Add %3.1, %3.2, e0.0
  49066. void Return %4.0
  49067. ├────── Elide environments not needed: == 365
  49068. test>buildTreeDepth@91[0x7f92445596d0]
  49069. BB0
  49070. val^ %0.0 = LdArg 0
  49071. val^ %0.1 = LdArg 1
  49072. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49073. val %0.3 = Force! %0.0, e0.2
  49074. real$' %0.4 = LdConst [1] 1
  49075. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49076. BB2
  49077. t %2.0 = IsObject %0.3
  49078. void AssumeNot %2.0, %0.5
  49079. lgl' %2.2 = Eq %0.3, %0.4, elided
  49080. lgl %2.3 = AsLogical %2.2
  49081. t %2.4 = AsTest %2.3
  49082. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49083. BB1
  49084. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49085. void Deopt %1.0
  49086. BB11
  49087. cls %11.0 = LdFun c, e0.2
  49088. prom %11.1 = MkArg missing, Prom(4), e0.2
  49089. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49090. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49091. goto BB12
  49092. BB3
  49093. cls %3.0 = LdFun vector, e0.2
  49094. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49095. BB12
  49096. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49097. val %12.1 = Force %12.0, e0.2
  49098. void Return %12.1
  49099. BB5
  49100. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49101. t %5.1 = Identical %3.0, %5.0
  49102. void Assume %5.1, %3.1
  49103. str$' %5.3 = LdConst [1] "list"
  49104. real$' %5.4 = LdConst [1] 4
  49105. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49106. void StVar array, %5.5, e0.2
  49107. real$' %5.7 = LdConst [1] 1
  49108. real$' %5.8 = LdConst [1] 4
  49109. val' %5.9 = Colon %5.7, %5.8, elided
  49110. val' %5.10 = SetShared %5.9
  49111. int$' %5.11 = ForSeqSize %5.10
  49112. int$' %5.12 = LdConst [1] 0
  49113. goto BB6
  49114. BB4
  49115. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49116. void Deopt %4.0
  49117. BB6
  49118. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49119. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49120. int$' %6.2 = Inc %6.1
  49121. int$' %6.3 = EnsureNamed %6.2
  49122. lgl' %6.4 = Lt %5.11, %6.3, elided
  49123. t %6.5 = AsTest %6.4
  49124. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49125. BB10
  49126. goto BB12
  49127. BB7
  49128. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49129. void StVar i, %7.0, e0.2
  49130. cls %7.2 = LdFun buildTreeDepth, e0.2
  49131. prom %7.3 = MkArg missing, Prom(2), e0.2
  49132. prom %7.4 = MkArg missing, Prom(3), e0.2
  49133. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49134. BB9
  49135. cls' %9.0 = LdConst function (depth, random) { if (d...
  49136. t %9.1 = Identical %7.2, %9.0
  49137. void Assume %9.1, %7.5
  49138. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49139. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49140. val^? %9.5 = LdVar array, e0.2
  49141. val %9.6 = Force %9.5, e0.2
  49142. val^? %9.7 = LdVar i, e0.2
  49143. val %9.8 = Force %9.7, e0.2
  49144. val^ %9.9 = EnsureNamed %9.4
  49145. val %9.10 = Force %9.9, e0.2
  49146. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49147. void StVar array, %9.11, e0.2
  49148. goto BB6
  49149. BB8
  49150. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49151. void Deopt %8.0
  49152. Prom 2:
  49153. BB0
  49154. env e0.0 = LdFunctionEnv
  49155. val^? %0.1 = LdVar depth, e0.0
  49156. val %0.2 = Force %0.1, e0.0
  49157. real$' %0.3 = LdConst [1] 1
  49158. goto BB1
  49159. BB1
  49160. val %1.0 = Sub %0.2, %0.3, e0.0
  49161. void Return %1.0
  49162. Prom 3:
  49163. BB0
  49164. env e0.0 = LdFunctionEnv
  49165. val^? %0.1 = LdVar random, e0.0
  49166. val %0.2 = Force %0.1, e0.0
  49167. void Return %0.2
  49168. Prom 4:
  49169. BB0
  49170. env e0.0 = LdFunctionEnv
  49171. cls %0.1 = LdFun nextRandom, e0.0
  49172. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49173. t %0.3 = Identical %0.1, %0.2
  49174. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49175. BB2
  49176. void Assume %0.3, %0.4
  49177. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49178. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49179. real$' %2.3 = LdConst [1] 10
  49180. goto BB3
  49181. BB1
  49182. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49183. void Deopt %1.0
  49184. BB3
  49185. val %3.0 = Force %2.2, e0.0
  49186. val %3.1 = Mod %3.0, %2.3, e0.0
  49187. real$' %3.2 = LdConst [1] 1
  49188. goto BB4
  49189. BB4
  49190. val %4.0 = Add %3.1, %3.2, e0.0
  49191. void Return %4.0
  49192. ├────── Move environment creation as far as possible: == 372
  49193. test>buildTreeDepth@91[0x7f92445596d0]
  49194. BB0
  49195. val^ %0.0 = LdArg 0
  49196. val^ %0.1 = LdArg 1
  49197. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49198. val %0.3 = Force! %0.0, e0.2
  49199. real$' %0.4 = LdConst [1] 1
  49200. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49201. BB2
  49202. t %2.0 = IsObject %0.3
  49203. void AssumeNot %2.0, %0.5
  49204. lgl' %2.2 = Eq %0.3, %0.4, elided
  49205. lgl %2.3 = AsLogical %2.2
  49206. t %2.4 = AsTest %2.3
  49207. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49208. BB1
  49209. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49210. void Deopt %1.0
  49211. BB11
  49212. cls %11.0 = LdFun c, e0.2
  49213. prom %11.1 = MkArg missing, Prom(4), e0.2
  49214. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49215. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49216. goto BB12
  49217. BB3
  49218. cls %3.0 = LdFun vector, e0.2
  49219. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49220. BB12
  49221. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49222. val %12.1 = Force %12.0, e0.2
  49223. void Return %12.1
  49224. BB5
  49225. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49226. t %5.1 = Identical %3.0, %5.0
  49227. void Assume %5.1, %3.1
  49228. str$' %5.3 = LdConst [1] "list"
  49229. real$' %5.4 = LdConst [1] 4
  49230. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49231. void StVar array, %5.5, e0.2
  49232. real$' %5.7 = LdConst [1] 1
  49233. real$' %5.8 = LdConst [1] 4
  49234. val' %5.9 = Colon %5.7, %5.8, elided
  49235. val' %5.10 = SetShared %5.9
  49236. int$' %5.11 = ForSeqSize %5.10
  49237. int$' %5.12 = LdConst [1] 0
  49238. goto BB6
  49239. BB4
  49240. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49241. void Deopt %4.0
  49242. BB6
  49243. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49244. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49245. int$' %6.2 = Inc %6.1
  49246. int$' %6.3 = EnsureNamed %6.2
  49247. lgl' %6.4 = Lt %5.11, %6.3, elided
  49248. t %6.5 = AsTest %6.4
  49249. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49250. BB10
  49251. goto BB12
  49252. BB7
  49253. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49254. void StVar i, %7.0, e0.2
  49255. cls %7.2 = LdFun buildTreeDepth, e0.2
  49256. prom %7.3 = MkArg missing, Prom(2), e0.2
  49257. prom %7.4 = MkArg missing, Prom(3), e0.2
  49258. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49259. BB9
  49260. cls' %9.0 = LdConst function (depth, random) { if (d...
  49261. t %9.1 = Identical %7.2, %9.0
  49262. void Assume %9.1, %7.5
  49263. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49264. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49265. val^? %9.5 = LdVar array, e0.2
  49266. val %9.6 = Force %9.5, e0.2
  49267. val^? %9.7 = LdVar i, e0.2
  49268. val %9.8 = Force %9.7, e0.2
  49269. val^ %9.9 = EnsureNamed %9.4
  49270. val %9.10 = Force %9.9, e0.2
  49271. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49272. void StVar array, %9.11, e0.2
  49273. goto BB6
  49274. BB8
  49275. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49276. void Deopt %8.0
  49277. Prom 2:
  49278. BB0
  49279. env e0.0 = LdFunctionEnv
  49280. val^? %0.1 = LdVar depth, e0.0
  49281. val %0.2 = Force %0.1, e0.0
  49282. real$' %0.3 = LdConst [1] 1
  49283. goto BB1
  49284. BB1
  49285. val %1.0 = Sub %0.2, %0.3, e0.0
  49286. void Return %1.0
  49287. Prom 3:
  49288. BB0
  49289. env e0.0 = LdFunctionEnv
  49290. val^? %0.1 = LdVar random, e0.0
  49291. val %0.2 = Force %0.1, e0.0
  49292. void Return %0.2
  49293. Prom 4:
  49294. BB0
  49295. env e0.0 = LdFunctionEnv
  49296. cls %0.1 = LdFun nextRandom, e0.0
  49297. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49298. t %0.3 = Identical %0.1, %0.2
  49299. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49300. BB2
  49301. void Assume %0.3, %0.4
  49302. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49303. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49304. real$' %2.3 = LdConst [1] 10
  49305. goto BB3
  49306. BB1
  49307. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49308. void Deopt %1.0
  49309. BB3
  49310. val %3.0 = Force %2.2, e0.0
  49311. val %3.1 = Mod %3.0, %2.3, e0.0
  49312. real$' %3.2 = LdConst [1] 1
  49313. goto BB4
  49314. BB4
  49315. val %4.0 = Add %3.1, %3.2, e0.0
  49316. void Return %4.0
  49317. ├────── Cleanup redundant operations: == 379
  49318. test>buildTreeDepth@91[0x7f92445596d0]
  49319. BB0
  49320. val^ %0.0 = LdArg 0
  49321. val^ %0.1 = LdArg 1
  49322. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49323. val %0.3 = Force! %0.0, e0.2
  49324. real$' %0.4 = LdConst [1] 1
  49325. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49326. BB2
  49327. t %2.0 = IsObject %0.3
  49328. void AssumeNot %2.0, %0.5
  49329. lgl' %2.2 = Eq %0.3, %0.4, elided
  49330. lgl %2.3 = AsLogical %2.2
  49331. t %2.4 = AsTest %2.3
  49332. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49333. BB1
  49334. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49335. void Deopt %1.0
  49336. BB11
  49337. cls %11.0 = LdFun c, e0.2
  49338. prom %11.1 = MkArg missing, Prom(4), e0.2
  49339. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49340. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49341. goto BB12
  49342. BB3
  49343. cls %3.0 = LdFun vector, e0.2
  49344. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49345. BB12
  49346. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49347. val %12.1 = Force %12.0, e0.2
  49348. void Return %12.1
  49349. BB5
  49350. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49351. t %5.1 = Identical %3.0, %5.0
  49352. void Assume %5.1, %3.1
  49353. str$' %5.3 = LdConst [1] "list"
  49354. real$' %5.4 = LdConst [1] 4
  49355. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49356. void StVar array, %5.5, e0.2
  49357. real$' %5.7 = LdConst [1] 1
  49358. real$' %5.8 = LdConst [1] 4
  49359. val' %5.9 = Colon %5.7, %5.8, elided
  49360. val' %5.10 = SetShared %5.9
  49361. int$' %5.11 = ForSeqSize %5.10
  49362. int$' %5.12 = LdConst [1] 0
  49363. goto BB6
  49364. BB4
  49365. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49366. void Deopt %4.0
  49367. BB6
  49368. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49369. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49370. int$' %6.2 = Inc %6.1
  49371. int$' %6.3 = EnsureNamed %6.2
  49372. lgl' %6.4 = Lt %5.11, %6.3, elided
  49373. t %6.5 = AsTest %6.4
  49374. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49375. BB10
  49376. goto BB12
  49377. BB7
  49378. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49379. void StVar i, %7.0, e0.2
  49380. cls %7.2 = LdFun buildTreeDepth, e0.2
  49381. prom %7.3 = MkArg missing, Prom(2), e0.2
  49382. prom %7.4 = MkArg missing, Prom(3), e0.2
  49383. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49384. BB9
  49385. cls' %9.0 = LdConst function (depth, random) { if (d...
  49386. t %9.1 = Identical %7.2, %9.0
  49387. void Assume %9.1, %7.5
  49388. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49389. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49390. val^? %9.5 = LdVar array, e0.2
  49391. val %9.6 = Force %9.5, e0.2
  49392. val^? %9.7 = LdVar i, e0.2
  49393. val %9.8 = Force %9.7, e0.2
  49394. val^ %9.9 = EnsureNamed %9.4
  49395. val %9.10 = Force %9.9, e0.2
  49396. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49397. void StVar array, %9.11, e0.2
  49398. goto BB6
  49399. BB8
  49400. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49401. void Deopt %8.0
  49402. Prom 2:
  49403. BB0
  49404. env e0.0 = LdFunctionEnv
  49405. val^? %0.1 = LdVar depth, e0.0
  49406. val %0.2 = Force %0.1, e0.0
  49407. real$' %0.3 = LdConst [1] 1
  49408. goto BB1
  49409. BB1
  49410. val %1.0 = Sub %0.2, %0.3, e0.0
  49411. void Return %1.0
  49412. Prom 3:
  49413. BB0
  49414. env e0.0 = LdFunctionEnv
  49415. val^? %0.1 = LdVar random, e0.0
  49416. val %0.2 = Force %0.1, e0.0
  49417. void Return %0.2
  49418. Prom 4:
  49419. BB0
  49420. env e0.0 = LdFunctionEnv
  49421. cls %0.1 = LdFun nextRandom, e0.0
  49422. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49423. t %0.3 = Identical %0.1, %0.2
  49424. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49425. BB2
  49426. void Assume %0.3, %0.4
  49427. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49428. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49429. real$' %2.3 = LdConst [1] 10
  49430. goto BB3
  49431. BB1
  49432. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49433. void Deopt %1.0
  49434. BB3
  49435. val %3.0 = Force %2.2, e0.0
  49436. val %3.1 = Mod %3.0, %2.3, e0.0
  49437. real$' %3.2 = LdConst [1] 1
  49438. goto BB4
  49439. BB4
  49440. val %4.0 = Add %3.1, %3.2, e0.0
  49441. void Return %4.0
  49442. ├────── Inline closures: == 386
  49443. test>buildTreeDepth@91[0x7f92445596d0]
  49444. BB0
  49445. val^ %0.0 = LdArg 0
  49446. val^ %0.1 = LdArg 1
  49447. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49448. val %0.3 = Force! %0.0, e0.2
  49449. real$' %0.4 = LdConst [1] 1
  49450. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49451. BB2
  49452. t %2.0 = IsObject %0.3
  49453. void AssumeNot %2.0, %0.5
  49454. lgl' %2.2 = Eq %0.3, %0.4, elided
  49455. lgl %2.3 = AsLogical %2.2
  49456. t %2.4 = AsTest %2.3
  49457. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49458. BB1
  49459. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49460. void Deopt %1.0
  49461. BB11
  49462. cls %11.0 = LdFun c, e0.2
  49463. prom %11.1 = MkArg missing, Prom(4), e0.2
  49464. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49465. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49466. goto BB12
  49467. BB3
  49468. cls %3.0 = LdFun vector, e0.2
  49469. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49470. BB12
  49471. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49472. val %12.1 = Force %12.0, e0.2
  49473. void Return %12.1
  49474. BB5
  49475. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49476. t %5.1 = Identical %3.0, %5.0
  49477. void Assume %5.1, %3.1
  49478. str$' %5.3 = LdConst [1] "list"
  49479. real$' %5.4 = LdConst [1] 4
  49480. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49481. void StVar array, %5.5, e0.2
  49482. real$' %5.7 = LdConst [1] 1
  49483. real$' %5.8 = LdConst [1] 4
  49484. val' %5.9 = Colon %5.7, %5.8, elided
  49485. val' %5.10 = SetShared %5.9
  49486. int$' %5.11 = ForSeqSize %5.10
  49487. int$' %5.12 = LdConst [1] 0
  49488. goto BB6
  49489. BB4
  49490. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49491. void Deopt %4.0
  49492. BB6
  49493. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49494. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49495. int$' %6.2 = Inc %6.1
  49496. int$' %6.3 = EnsureNamed %6.2
  49497. lgl' %6.4 = Lt %5.11, %6.3, elided
  49498. t %6.5 = AsTest %6.4
  49499. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49500. BB10
  49501. goto BB12
  49502. BB7
  49503. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49504. void StVar i, %7.0, e0.2
  49505. cls %7.2 = LdFun buildTreeDepth, e0.2
  49506. prom %7.3 = MkArg missing, Prom(2), e0.2
  49507. prom %7.4 = MkArg missing, Prom(3), e0.2
  49508. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49509. BB9
  49510. cls' %9.0 = LdConst function (depth, random) { if (d...
  49511. t %9.1 = Identical %7.2, %9.0
  49512. void Assume %9.1, %7.5
  49513. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49514. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49515. val^? %9.5 = LdVar array, e0.2
  49516. val %9.6 = Force %9.5, e0.2
  49517. val^? %9.7 = LdVar i, e0.2
  49518. val %9.8 = Force %9.7, e0.2
  49519. val^ %9.9 = EnsureNamed %9.4
  49520. val %9.10 = Force %9.9, e0.2
  49521. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49522. void StVar array, %9.11, e0.2
  49523. goto BB6
  49524. BB8
  49525. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49526. void Deopt %8.0
  49527. Prom 2:
  49528. BB0
  49529. env e0.0 = LdFunctionEnv
  49530. val^? %0.1 = LdVar depth, e0.0
  49531. val %0.2 = Force %0.1, e0.0
  49532. real$' %0.3 = LdConst [1] 1
  49533. goto BB1
  49534. BB1
  49535. val %1.0 = Sub %0.2, %0.3, e0.0
  49536. void Return %1.0
  49537. Prom 3:
  49538. BB0
  49539. env e0.0 = LdFunctionEnv
  49540. val^? %0.1 = LdVar random, e0.0
  49541. val %0.2 = Force %0.1, e0.0
  49542. void Return %0.2
  49543. Prom 4:
  49544. BB0
  49545. env e0.0 = LdFunctionEnv
  49546. cls %0.1 = LdFun nextRandom, e0.0
  49547. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49548. t %0.3 = Identical %0.1, %0.2
  49549. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49550. BB2
  49551. void Assume %0.3, %0.4
  49552. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49553. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49554. real$' %2.3 = LdConst [1] 10
  49555. goto BB3
  49556. BB1
  49557. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49558. void Deopt %1.0
  49559. BB3
  49560. val %3.0 = Force %2.2, e0.0
  49561. val %3.1 = Mod %3.0, %2.3, e0.0
  49562. real$' %3.2 = LdConst [1] 1
  49563. goto BB4
  49564. BB4
  49565. val %4.0 = Add %3.1, %3.2, e0.0
  49566. void Return %4.0
  49567. ├────── Inline Promises: == 393
  49568. test>buildTreeDepth@91[0x7f92445596d0]
  49569. BB0
  49570. val^ %0.0 = LdArg 0
  49571. val^ %0.1 = LdArg 1
  49572. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49573. val %0.3 = Force! %0.0, e0.2
  49574. real$' %0.4 = LdConst [1] 1
  49575. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49576. BB2
  49577. t %2.0 = IsObject %0.3
  49578. void AssumeNot %2.0, %0.5
  49579. lgl' %2.2 = Eq %0.3, %0.4, elided
  49580. lgl %2.3 = AsLogical %2.2
  49581. t %2.4 = AsTest %2.3
  49582. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49583. BB1
  49584. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49585. void Deopt %1.0
  49586. BB11
  49587. cls %11.0 = LdFun c, e0.2
  49588. prom %11.1 = MkArg missing, Prom(4), e0.2
  49589. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49590. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49591. goto BB12
  49592. BB3
  49593. cls %3.0 = LdFun vector, e0.2
  49594. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49595. BB12
  49596. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49597. val %12.1 = Force %12.0, e0.2
  49598. void Return %12.1
  49599. BB5
  49600. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49601. t %5.1 = Identical %3.0, %5.0
  49602. void Assume %5.1, %3.1
  49603. str$' %5.3 = LdConst [1] "list"
  49604. real$' %5.4 = LdConst [1] 4
  49605. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49606. void StVar array, %5.5, e0.2
  49607. real$' %5.7 = LdConst [1] 1
  49608. real$' %5.8 = LdConst [1] 4
  49609. val' %5.9 = Colon %5.7, %5.8, elided
  49610. val' %5.10 = SetShared %5.9
  49611. int$' %5.11 = ForSeqSize %5.10
  49612. int$' %5.12 = LdConst [1] 0
  49613. goto BB6
  49614. BB4
  49615. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49616. void Deopt %4.0
  49617. BB6
  49618. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49619. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49620. int$' %6.2 = Inc %6.1
  49621. int$' %6.3 = EnsureNamed %6.2
  49622. lgl' %6.4 = Lt %5.11, %6.3, elided
  49623. t %6.5 = AsTest %6.4
  49624. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49625. BB10
  49626. goto BB12
  49627. BB7
  49628. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49629. void StVar i, %7.0, e0.2
  49630. cls %7.2 = LdFun buildTreeDepth, e0.2
  49631. prom %7.3 = MkArg missing, Prom(2), e0.2
  49632. prom %7.4 = MkArg missing, Prom(3), e0.2
  49633. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49634. BB9
  49635. cls' %9.0 = LdConst function (depth, random) { if (d...
  49636. t %9.1 = Identical %7.2, %9.0
  49637. void Assume %9.1, %7.5
  49638. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49639. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49640. val^? %9.5 = LdVar array, e0.2
  49641. val %9.6 = Force %9.5, e0.2
  49642. val^? %9.7 = LdVar i, e0.2
  49643. val %9.8 = Force %9.7, e0.2
  49644. val^ %9.9 = EnsureNamed %9.4
  49645. val %9.10 = Force %9.9, e0.2
  49646. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49647. void StVar array, %9.11, e0.2
  49648. goto BB6
  49649. BB8
  49650. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49651. void Deopt %8.0
  49652. Prom 2:
  49653. BB0
  49654. env e0.0 = LdFunctionEnv
  49655. val^? %0.1 = LdVar depth, e0.0
  49656. val %0.2 = Force %0.1, e0.0
  49657. real$' %0.3 = LdConst [1] 1
  49658. goto BB1
  49659. BB1
  49660. val %1.0 = Sub %0.2, %0.3, e0.0
  49661. void Return %1.0
  49662. Prom 3:
  49663. BB0
  49664. env e0.0 = LdFunctionEnv
  49665. val^? %0.1 = LdVar random, e0.0
  49666. val %0.2 = Force %0.1, e0.0
  49667. void Return %0.2
  49668. Prom 4:
  49669. BB0
  49670. env e0.0 = LdFunctionEnv
  49671. cls %0.1 = LdFun nextRandom, e0.0
  49672. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49673. t %0.3 = Identical %0.1, %0.2
  49674. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49675. BB2
  49676. void Assume %0.3, %0.4
  49677. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49678. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49679. real$' %2.3 = LdConst [1] 10
  49680. goto BB3
  49681. BB1
  49682. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49683. void Deopt %1.0
  49684. BB3
  49685. val %3.0 = Force %2.2, e0.0
  49686. val %3.1 = Mod %3.0, %2.3, e0.0
  49687. real$' %3.2 = LdConst [1] 1
  49688. goto BB4
  49689. BB4
  49690. val %4.0 = Add %3.1, %3.2, e0.0
  49691. void Return %4.0
  49692. ├────── Scope resolution: == 400
  49693. test>buildTreeDepth@91[0x7f92445596d0]
  49694. BB0
  49695. val^ %0.0 = LdArg 0
  49696. val^ %0.1 = LdArg 1
  49697. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49698. val %0.3 = Force! %0.0, e0.2
  49699. real$' %0.4 = LdConst [1] 1
  49700. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49701. BB2
  49702. t %2.0 = IsObject %0.3
  49703. void AssumeNot %2.0, %0.5
  49704. lgl' %2.2 = Eq %0.3, %0.4, elided
  49705. lgl %2.3 = AsLogical %2.2
  49706. t %2.4 = AsTest %2.3
  49707. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49708. BB1
  49709. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49710. void Deopt %1.0
  49711. BB11
  49712. cls %11.0 = LdFun c, e0.2
  49713. prom %11.1 = MkArg missing, Prom(4), e0.2
  49714. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49715. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49716. goto BB12
  49717. BB3
  49718. cls %3.0 = LdFun vector, e0.2
  49719. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49720. BB12
  49721. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49722. val %12.1 = Force %12.0, e0.2
  49723. void Return %12.1
  49724. BB5
  49725. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49726. t %5.1 = Identical %3.0, %5.0
  49727. void Assume %5.1, %3.1
  49728. str$' %5.3 = LdConst [1] "list"
  49729. real$' %5.4 = LdConst [1] 4
  49730. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49731. void StVar array, %5.5, e0.2
  49732. real$' %5.7 = LdConst [1] 1
  49733. real$' %5.8 = LdConst [1] 4
  49734. val' %5.9 = Colon %5.7, %5.8, elided
  49735. val' %5.10 = SetShared %5.9
  49736. int$' %5.11 = ForSeqSize %5.10
  49737. int$' %5.12 = LdConst [1] 0
  49738. goto BB6
  49739. BB4
  49740. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49741. void Deopt %4.0
  49742. BB6
  49743. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49744. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49745. int$' %6.2 = Inc %6.1
  49746. int$' %6.3 = EnsureNamed %6.2
  49747. lgl' %6.4 = Lt %5.11, %6.3, elided
  49748. t %6.5 = AsTest %6.4
  49749. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49750. BB10
  49751. goto BB12
  49752. BB7
  49753. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49754. void StVar i, %7.0, e0.2
  49755. cls %7.2 = LdFun buildTreeDepth, e0.2
  49756. prom %7.3 = MkArg missing, Prom(2), e0.2
  49757. prom %7.4 = MkArg missing, Prom(3), e0.2
  49758. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49759. BB9
  49760. cls' %9.0 = LdConst function (depth, random) { if (d...
  49761. t %9.1 = Identical %7.2, %9.0
  49762. void Assume %9.1, %7.5
  49763. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49764. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49765. val^? %9.5 = LdVar array, e0.2
  49766. val %9.6 = Force %9.5, e0.2
  49767. val^? %9.7 = LdVar i, e0.2
  49768. val %9.8 = Force %9.7, e0.2
  49769. val^ %9.9 = EnsureNamed %9.4
  49770. val %9.10 = Force %9.9, e0.2
  49771. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49772. void StVar array, %9.11, e0.2
  49773. goto BB6
  49774. BB8
  49775. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49776. void Deopt %8.0
  49777. Prom 2:
  49778. BB0
  49779. env e0.0 = LdFunctionEnv
  49780. val^? %0.1 = LdVar depth, e0.0
  49781. val %0.2 = Force %0.1, e0.0
  49782. real$' %0.3 = LdConst [1] 1
  49783. goto BB1
  49784. BB1
  49785. val %1.0 = Sub %0.2, %0.3, e0.0
  49786. void Return %1.0
  49787. Prom 3:
  49788. BB0
  49789. env e0.0 = LdFunctionEnv
  49790. val^? %0.1 = LdVar random, e0.0
  49791. val %0.2 = Force %0.1, e0.0
  49792. void Return %0.2
  49793. Prom 4:
  49794. BB0
  49795. env e0.0 = LdFunctionEnv
  49796. cls %0.1 = LdFun nextRandom, e0.0
  49797. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49798. t %0.3 = Identical %0.1, %0.2
  49799. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49800. BB2
  49801. void Assume %0.3, %0.4
  49802. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49803. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49804. real$' %2.3 = LdConst [1] 10
  49805. goto BB3
  49806. BB1
  49807. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49808. void Deopt %1.0
  49809. BB3
  49810. val %3.0 = Force %2.2, e0.0
  49811. val %3.1 = Mod %3.0, %2.3, e0.0
  49812. real$' %3.2 = LdConst [1] 1
  49813. goto BB4
  49814. BB4
  49815. val %4.0 = Add %3.1, %3.2, e0.0
  49816. void Return %4.0
  49817. ├────── Constant folding: == 407
  49818. test>buildTreeDepth@91[0x7f92445596d0]
  49819. BB0
  49820. val^ %0.0 = LdArg 0
  49821. val^ %0.1 = LdArg 1
  49822. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49823. val %0.3 = Force! %0.0, e0.2
  49824. real$' %0.4 = LdConst [1] 1
  49825. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49826. BB2
  49827. t %2.0 = IsObject %0.3
  49828. void AssumeNot %2.0, %0.5
  49829. lgl' %2.2 = Eq %0.3, %0.4, elided
  49830. lgl %2.3 = AsLogical %2.2
  49831. t %2.4 = AsTest %2.3
  49832. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49833. BB1
  49834. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49835. void Deopt %1.0
  49836. BB11
  49837. cls %11.0 = LdFun c, e0.2
  49838. prom %11.1 = MkArg missing, Prom(4), e0.2
  49839. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49840. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49841. goto BB12
  49842. BB3
  49843. cls %3.0 = LdFun vector, e0.2
  49844. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49845. BB12
  49846. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49847. val %12.1 = Force %12.0, e0.2
  49848. void Return %12.1
  49849. BB5
  49850. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49851. t %5.1 = Identical %3.0, %5.0
  49852. void Assume %5.1, %3.1
  49853. str$' %5.3 = LdConst [1] "list"
  49854. real$' %5.4 = LdConst [1] 4
  49855. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49856. void StVar array, %5.5, e0.2
  49857. real$' %5.7 = LdConst [1] 1
  49858. real$' %5.8 = LdConst [1] 4
  49859. val' %5.9 = Colon %5.7, %5.8, elided
  49860. val' %5.10 = SetShared %5.9
  49861. int$' %5.11 = ForSeqSize %5.10
  49862. int$' %5.12 = LdConst [1] 0
  49863. goto BB6
  49864. BB4
  49865. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49866. void Deopt %4.0
  49867. BB6
  49868. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49869. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49870. int$' %6.2 = Inc %6.1
  49871. int$' %6.3 = EnsureNamed %6.2
  49872. lgl' %6.4 = Lt %5.11, %6.3, elided
  49873. t %6.5 = AsTest %6.4
  49874. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  49875. BB10
  49876. goto BB12
  49877. BB7
  49878. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  49879. void StVar i, %7.0, e0.2
  49880. cls %7.2 = LdFun buildTreeDepth, e0.2
  49881. prom %7.3 = MkArg missing, Prom(2), e0.2
  49882. prom %7.4 = MkArg missing, Prom(3), e0.2
  49883. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  49884. BB9
  49885. cls' %9.0 = LdConst function (depth, random) { if (d...
  49886. t %9.1 = Identical %7.2, %9.0
  49887. void Assume %9.1, %7.5
  49888. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  49889. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  49890. val^? %9.5 = LdVar array, e0.2
  49891. val %9.6 = Force %9.5, e0.2
  49892. val^? %9.7 = LdVar i, e0.2
  49893. val %9.8 = Force %9.7, e0.2
  49894. val^ %9.9 = EnsureNamed %9.4
  49895. val %9.10 = Force %9.9, e0.2
  49896. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  49897. void StVar array, %9.11, e0.2
  49898. goto BB6
  49899. BB8
  49900. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  49901. void Deopt %8.0
  49902. Prom 2:
  49903. BB0
  49904. env e0.0 = LdFunctionEnv
  49905. val^? %0.1 = LdVar depth, e0.0
  49906. val %0.2 = Force %0.1, e0.0
  49907. real$' %0.3 = LdConst [1] 1
  49908. goto BB1
  49909. BB1
  49910. val %1.0 = Sub %0.2, %0.3, e0.0
  49911. void Return %1.0
  49912. Prom 3:
  49913. BB0
  49914. env e0.0 = LdFunctionEnv
  49915. val^? %0.1 = LdVar random, e0.0
  49916. val %0.2 = Force %0.1, e0.0
  49917. void Return %0.2
  49918. Prom 4:
  49919. BB0
  49920. env e0.0 = LdFunctionEnv
  49921. cls %0.1 = LdFun nextRandom, e0.0
  49922. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  49923. t %0.3 = Identical %0.1, %0.2
  49924. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49925. BB2
  49926. void Assume %0.3, %0.4
  49927. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  49928. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  49929. real$' %2.3 = LdConst [1] 10
  49930. goto BB3
  49931. BB1
  49932. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  49933. void Deopt %1.0
  49934. BB3
  49935. val %3.0 = Force %2.2, e0.0
  49936. val %3.1 = Mod %3.0, %2.3, e0.0
  49937. real$' %3.2 = LdConst [1] 1
  49938. goto BB4
  49939. BB4
  49940. val %4.0 = Add %3.1, %3.2, e0.0
  49941. void Return %4.0
  49942. ├────── Cleanup redundant operations: == 414
  49943. test>buildTreeDepth@91[0x7f92445596d0]
  49944. BB0
  49945. val^ %0.0 = LdArg 0
  49946. val^ %0.1 = LdArg 1
  49947. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  49948. val %0.3 = Force! %0.0, e0.2
  49949. real$' %0.4 = LdConst [1] 1
  49950. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  49951. BB2
  49952. t %2.0 = IsObject %0.3
  49953. void AssumeNot %2.0, %0.5
  49954. lgl' %2.2 = Eq %0.3, %0.4, elided
  49955. lgl %2.3 = AsLogical %2.2
  49956. t %2.4 = AsTest %2.3
  49957. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  49958. BB1
  49959. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  49960. void Deopt %1.0
  49961. BB11
  49962. cls %11.0 = LdFun c, e0.2
  49963. prom %11.1 = MkArg missing, Prom(4), e0.2
  49964. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  49965. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  49966. goto BB12
  49967. BB3
  49968. cls %3.0 = LdFun vector, e0.2
  49969. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  49970. BB12
  49971. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  49972. val %12.1 = Force %12.0, e0.2
  49973. void Return %12.1
  49974. BB5
  49975. cls' %5.0 = LdConst function (mode = "logical", length = ...
  49976. t %5.1 = Identical %3.0, %5.0
  49977. void Assume %5.1, %3.1
  49978. str$' %5.3 = LdConst [1] "list"
  49979. real$' %5.4 = LdConst [1] 4
  49980. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  49981. void StVar array, %5.5, e0.2
  49982. real$' %5.7 = LdConst [1] 1
  49983. real$' %5.8 = LdConst [1] 4
  49984. val' %5.9 = Colon %5.7, %5.8, elided
  49985. val' %5.10 = SetShared %5.9
  49986. int$' %5.11 = ForSeqSize %5.10
  49987. int$' %5.12 = LdConst [1] 0
  49988. goto BB6
  49989. BB4
  49990. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  49991. void Deopt %4.0
  49992. BB6
  49993. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  49994. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  49995. int$' %6.2 = Inc %6.1
  49996. int$' %6.3 = EnsureNamed %6.2
  49997. lgl' %6.4 = Lt %5.11, %6.3, elided
  49998. t %6.5 = AsTest %6.4
  49999. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50000. BB10
  50001. goto BB12
  50002. BB7
  50003. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50004. void StVar i, %7.0, e0.2
  50005. cls %7.2 = LdFun buildTreeDepth, e0.2
  50006. prom %7.3 = MkArg missing, Prom(2), e0.2
  50007. prom %7.4 = MkArg missing, Prom(3), e0.2
  50008. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50009. BB9
  50010. cls' %9.0 = LdConst function (depth, random) { if (d...
  50011. t %9.1 = Identical %7.2, %9.0
  50012. void Assume %9.1, %7.5
  50013. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50014. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50015. val^? %9.5 = LdVar array, e0.2
  50016. val %9.6 = Force %9.5, e0.2
  50017. val^? %9.7 = LdVar i, e0.2
  50018. val %9.8 = Force %9.7, e0.2
  50019. val^ %9.9 = EnsureNamed %9.4
  50020. val %9.10 = Force %9.9, e0.2
  50021. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50022. void StVar array, %9.11, e0.2
  50023. goto BB6
  50024. BB8
  50025. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50026. void Deopt %8.0
  50027. Prom 2:
  50028. BB0
  50029. env e0.0 = LdFunctionEnv
  50030. val^? %0.1 = LdVar depth, e0.0
  50031. val %0.2 = Force %0.1, e0.0
  50032. real$' %0.3 = LdConst [1] 1
  50033. goto BB1
  50034. BB1
  50035. val %1.0 = Sub %0.2, %0.3, e0.0
  50036. void Return %1.0
  50037. Prom 3:
  50038. BB0
  50039. env e0.0 = LdFunctionEnv
  50040. val^? %0.1 = LdVar random, e0.0
  50041. val %0.2 = Force %0.1, e0.0
  50042. void Return %0.2
  50043. Prom 4:
  50044. BB0
  50045. env e0.0 = LdFunctionEnv
  50046. cls %0.1 = LdFun nextRandom, e0.0
  50047. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50048. t %0.3 = Identical %0.1, %0.2
  50049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50050. BB2
  50051. void Assume %0.3, %0.4
  50052. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50053. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50054. real$' %2.3 = LdConst [1] 10
  50055. goto BB3
  50056. BB1
  50057. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50058. void Deopt %1.0
  50059. BB3
  50060. val %3.0 = Force %2.2, e0.0
  50061. val %3.1 = Mod %3.0, %2.3, e0.0
  50062. real$' %3.2 = LdConst [1] 1
  50063. goto BB4
  50064. BB4
  50065. val %4.0 = Add %3.1, %3.2, e0.0
  50066. void Return %4.0
  50067. ├────── Delay instructions: == 421
  50068. test>buildTreeDepth@91[0x7f92445596d0]
  50069. BB0
  50070. val^ %0.0 = LdArg 0
  50071. val^ %0.1 = LdArg 1
  50072. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50073. val %0.3 = Force! %0.0, e0.2
  50074. real$' %0.4 = LdConst [1] 1
  50075. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50076. BB2
  50077. t %2.0 = IsObject %0.3
  50078. void AssumeNot %2.0, %0.5
  50079. lgl' %2.2 = Eq %0.3, %0.4, elided
  50080. lgl %2.3 = AsLogical %2.2
  50081. t %2.4 = AsTest %2.3
  50082. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50083. BB1
  50084. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50085. void Deopt %1.0
  50086. BB11
  50087. cls %11.0 = LdFun c, e0.2
  50088. prom %11.1 = MkArg missing, Prom(4), e0.2
  50089. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50090. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50091. goto BB12
  50092. BB3
  50093. cls %3.0 = LdFun vector, e0.2
  50094. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50095. BB12
  50096. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50097. val %12.1 = Force %12.0, e0.2
  50098. void Return %12.1
  50099. BB5
  50100. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50101. t %5.1 = Identical %3.0, %5.0
  50102. void Assume %5.1, %3.1
  50103. real$' %5.3 = LdConst [1] 4
  50104. str$' %5.4 = LdConst [1] "list"
  50105. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50106. void StVar array, %5.5, e0.2
  50107. real$' %5.7 = LdConst [1] 4
  50108. real$' %5.8 = LdConst [1] 1
  50109. val' %5.9 = Colon %5.8, %5.7, elided
  50110. val' %5.10 = SetShared %5.9
  50111. int$' %5.11 = ForSeqSize %5.10
  50112. int$' %5.12 = LdConst [1] 0
  50113. goto BB6
  50114. BB4
  50115. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50116. void Deopt %4.0
  50117. BB6
  50118. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50119. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50120. int$' %6.2 = Inc %6.1
  50121. int$' %6.3 = EnsureNamed %6.2
  50122. lgl' %6.4 = Lt %5.11, %6.3, elided
  50123. t %6.5 = AsTest %6.4
  50124. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50125. BB10
  50126. goto BB12
  50127. BB7
  50128. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50129. void StVar i, %7.0, e0.2
  50130. cls %7.2 = LdFun buildTreeDepth, e0.2
  50131. prom %7.3 = MkArg missing, Prom(2), e0.2
  50132. prom %7.4 = MkArg missing, Prom(3), e0.2
  50133. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50134. BB9
  50135. cls' %9.0 = LdConst function (depth, random) { if (d...
  50136. t %9.1 = Identical %7.2, %9.0
  50137. void Assume %9.1, %7.5
  50138. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50139. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50140. val^? %9.5 = LdVar array, e0.2
  50141. val %9.6 = Force %9.5, e0.2
  50142. val^? %9.7 = LdVar i, e0.2
  50143. val %9.8 = Force %9.7, e0.2
  50144. val^ %9.9 = EnsureNamed %9.4
  50145. val %9.10 = Force %9.9, e0.2
  50146. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50147. void StVar array, %9.11, e0.2
  50148. goto BB6
  50149. BB8
  50150. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50151. void Deopt %8.0
  50152. Prom 2:
  50153. BB0
  50154. env e0.0 = LdFunctionEnv
  50155. val^? %0.1 = LdVar depth, e0.0
  50156. val %0.2 = Force %0.1, e0.0
  50157. real$' %0.3 = LdConst [1] 1
  50158. goto BB1
  50159. BB1
  50160. val %1.0 = Sub %0.2, %0.3, e0.0
  50161. void Return %1.0
  50162. Prom 3:
  50163. BB0
  50164. env e0.0 = LdFunctionEnv
  50165. val^? %0.1 = LdVar random, e0.0
  50166. val %0.2 = Force %0.1, e0.0
  50167. void Return %0.2
  50168. Prom 4:
  50169. BB0
  50170. env e0.0 = LdFunctionEnv
  50171. cls %0.1 = LdFun nextRandom, e0.0
  50172. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50173. t %0.3 = Identical %0.1, %0.2
  50174. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50175. BB2
  50176. void Assume %0.3, %0.4
  50177. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50178. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50179. real$' %2.3 = LdConst [1] 10
  50180. goto BB3
  50181. BB1
  50182. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50183. void Deopt %1.0
  50184. BB3
  50185. val %3.0 = Force %2.2, e0.0
  50186. val %3.1 = Mod %3.0, %2.3, e0.0
  50187. real$' %3.2 = LdConst [1] 1
  50188. goto BB4
  50189. BB4
  50190. val %4.0 = Add %3.1, %3.2, e0.0
  50191. void Return %4.0
  50192. ├────── Elide environments not needed: == 428
  50193. test>buildTreeDepth@91[0x7f92445596d0]
  50194. BB0
  50195. val^ %0.0 = LdArg 0
  50196. val^ %0.1 = LdArg 1
  50197. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50198. val %0.3 = Force! %0.0, e0.2
  50199. real$' %0.4 = LdConst [1] 1
  50200. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50201. BB2
  50202. t %2.0 = IsObject %0.3
  50203. void AssumeNot %2.0, %0.5
  50204. lgl' %2.2 = Eq %0.3, %0.4, elided
  50205. lgl %2.3 = AsLogical %2.2
  50206. t %2.4 = AsTest %2.3
  50207. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50208. BB1
  50209. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50210. void Deopt %1.0
  50211. BB11
  50212. cls %11.0 = LdFun c, e0.2
  50213. prom %11.1 = MkArg missing, Prom(4), e0.2
  50214. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50215. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50216. goto BB12
  50217. BB3
  50218. cls %3.0 = LdFun vector, e0.2
  50219. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50220. BB12
  50221. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50222. val %12.1 = Force %12.0, e0.2
  50223. void Return %12.1
  50224. BB5
  50225. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50226. t %5.1 = Identical %3.0, %5.0
  50227. void Assume %5.1, %3.1
  50228. real$' %5.3 = LdConst [1] 4
  50229. str$' %5.4 = LdConst [1] "list"
  50230. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50231. void StVar array, %5.5, e0.2
  50232. real$' %5.7 = LdConst [1] 4
  50233. real$' %5.8 = LdConst [1] 1
  50234. val' %5.9 = Colon %5.8, %5.7, elided
  50235. val' %5.10 = SetShared %5.9
  50236. int$' %5.11 = ForSeqSize %5.10
  50237. int$' %5.12 = LdConst [1] 0
  50238. goto BB6
  50239. BB4
  50240. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50241. void Deopt %4.0
  50242. BB6
  50243. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50244. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50245. int$' %6.2 = Inc %6.1
  50246. int$' %6.3 = EnsureNamed %6.2
  50247. lgl' %6.4 = Lt %5.11, %6.3, elided
  50248. t %6.5 = AsTest %6.4
  50249. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50250. BB10
  50251. goto BB12
  50252. BB7
  50253. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50254. void StVar i, %7.0, e0.2
  50255. cls %7.2 = LdFun buildTreeDepth, e0.2
  50256. prom %7.3 = MkArg missing, Prom(2), e0.2
  50257. prom %7.4 = MkArg missing, Prom(3), e0.2
  50258. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50259. BB9
  50260. cls' %9.0 = LdConst function (depth, random) { if (d...
  50261. t %9.1 = Identical %7.2, %9.0
  50262. void Assume %9.1, %7.5
  50263. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50264. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50265. val^? %9.5 = LdVar array, e0.2
  50266. val %9.6 = Force %9.5, e0.2
  50267. val^? %9.7 = LdVar i, e0.2
  50268. val %9.8 = Force %9.7, e0.2
  50269. val^ %9.9 = EnsureNamed %9.4
  50270. val %9.10 = Force %9.9, e0.2
  50271. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50272. void StVar array, %9.11, e0.2
  50273. goto BB6
  50274. BB8
  50275. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50276. void Deopt %8.0
  50277. Prom 2:
  50278. BB0
  50279. env e0.0 = LdFunctionEnv
  50280. val^? %0.1 = LdVar depth, e0.0
  50281. val %0.2 = Force %0.1, e0.0
  50282. real$' %0.3 = LdConst [1] 1
  50283. goto BB1
  50284. BB1
  50285. val %1.0 = Sub %0.2, %0.3, e0.0
  50286. void Return %1.0
  50287. Prom 3:
  50288. BB0
  50289. env e0.0 = LdFunctionEnv
  50290. val^? %0.1 = LdVar random, e0.0
  50291. val %0.2 = Force %0.1, e0.0
  50292. void Return %0.2
  50293. Prom 4:
  50294. BB0
  50295. env e0.0 = LdFunctionEnv
  50296. cls %0.1 = LdFun nextRandom, e0.0
  50297. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50298. t %0.3 = Identical %0.1, %0.2
  50299. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50300. BB2
  50301. void Assume %0.3, %0.4
  50302. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50303. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50304. real$' %2.3 = LdConst [1] 10
  50305. goto BB3
  50306. BB1
  50307. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50308. void Deopt %1.0
  50309. BB3
  50310. val %3.0 = Force %2.2, e0.0
  50311. val %3.1 = Mod %3.0, %2.3, e0.0
  50312. real$' %3.2 = LdConst [1] 1
  50313. goto BB4
  50314. BB4
  50315. val %4.0 = Add %3.1, %3.2, e0.0
  50316. void Return %4.0
  50317. ├────── Move environment creation as far as possible: == 435
  50318. test>buildTreeDepth@91[0x7f92445596d0]
  50319. BB0
  50320. val^ %0.0 = LdArg 0
  50321. val^ %0.1 = LdArg 1
  50322. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50323. val %0.3 = Force! %0.0, e0.2
  50324. real$' %0.4 = LdConst [1] 1
  50325. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50326. BB2
  50327. t %2.0 = IsObject %0.3
  50328. void AssumeNot %2.0, %0.5
  50329. lgl' %2.2 = Eq %0.3, %0.4, elided
  50330. lgl %2.3 = AsLogical %2.2
  50331. t %2.4 = AsTest %2.3
  50332. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50333. BB1
  50334. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50335. void Deopt %1.0
  50336. BB11
  50337. cls %11.0 = LdFun c, e0.2
  50338. prom %11.1 = MkArg missing, Prom(4), e0.2
  50339. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50340. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50341. goto BB12
  50342. BB3
  50343. cls %3.0 = LdFun vector, e0.2
  50344. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50345. BB12
  50346. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50347. val %12.1 = Force %12.0, e0.2
  50348. void Return %12.1
  50349. BB5
  50350. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50351. t %5.1 = Identical %3.0, %5.0
  50352. void Assume %5.1, %3.1
  50353. real$' %5.3 = LdConst [1] 4
  50354. str$' %5.4 = LdConst [1] "list"
  50355. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50356. void StVar array, %5.5, e0.2
  50357. real$' %5.7 = LdConst [1] 4
  50358. real$' %5.8 = LdConst [1] 1
  50359. val' %5.9 = Colon %5.8, %5.7, elided
  50360. val' %5.10 = SetShared %5.9
  50361. int$' %5.11 = ForSeqSize %5.10
  50362. int$' %5.12 = LdConst [1] 0
  50363. goto BB6
  50364. BB4
  50365. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50366. void Deopt %4.0
  50367. BB6
  50368. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50369. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50370. int$' %6.2 = Inc %6.1
  50371. int$' %6.3 = EnsureNamed %6.2
  50372. lgl' %6.4 = Lt %5.11, %6.3, elided
  50373. t %6.5 = AsTest %6.4
  50374. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50375. BB10
  50376. goto BB12
  50377. BB7
  50378. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50379. void StVar i, %7.0, e0.2
  50380. cls %7.2 = LdFun buildTreeDepth, e0.2
  50381. prom %7.3 = MkArg missing, Prom(2), e0.2
  50382. prom %7.4 = MkArg missing, Prom(3), e0.2
  50383. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50384. BB9
  50385. cls' %9.0 = LdConst function (depth, random) { if (d...
  50386. t %9.1 = Identical %7.2, %9.0
  50387. void Assume %9.1, %7.5
  50388. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50389. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50390. val^? %9.5 = LdVar array, e0.2
  50391. val %9.6 = Force %9.5, e0.2
  50392. val^? %9.7 = LdVar i, e0.2
  50393. val %9.8 = Force %9.7, e0.2
  50394. val^ %9.9 = EnsureNamed %9.4
  50395. val %9.10 = Force %9.9, e0.2
  50396. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50397. void StVar array, %9.11, e0.2
  50398. goto BB6
  50399. BB8
  50400. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50401. void Deopt %8.0
  50402. Prom 2:
  50403. BB0
  50404. env e0.0 = LdFunctionEnv
  50405. val^? %0.1 = LdVar depth, e0.0
  50406. val %0.2 = Force %0.1, e0.0
  50407. real$' %0.3 = LdConst [1] 1
  50408. goto BB1
  50409. BB1
  50410. val %1.0 = Sub %0.2, %0.3, e0.0
  50411. void Return %1.0
  50412. Prom 3:
  50413. BB0
  50414. env e0.0 = LdFunctionEnv
  50415. val^? %0.1 = LdVar random, e0.0
  50416. val %0.2 = Force %0.1, e0.0
  50417. void Return %0.2
  50418. Prom 4:
  50419. BB0
  50420. env e0.0 = LdFunctionEnv
  50421. cls %0.1 = LdFun nextRandom, e0.0
  50422. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50423. t %0.3 = Identical %0.1, %0.2
  50424. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50425. BB2
  50426. void Assume %0.3, %0.4
  50427. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50428. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50429. real$' %2.3 = LdConst [1] 10
  50430. goto BB3
  50431. BB1
  50432. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50433. void Deopt %1.0
  50434. BB3
  50435. val %3.0 = Force %2.2, e0.0
  50436. val %3.1 = Mod %3.0, %2.3, e0.0
  50437. real$' %3.2 = LdConst [1] 1
  50438. goto BB4
  50439. BB4
  50440. val %4.0 = Add %3.1, %3.2, e0.0
  50441. void Return %4.0
  50442. ├────── Cleanup redundant operations: == 442
  50443. test>buildTreeDepth@91[0x7f92445596d0]
  50444. BB0
  50445. val^ %0.0 = LdArg 0
  50446. val^ %0.1 = LdArg 1
  50447. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50448. val %0.3 = Force! %0.0, e0.2
  50449. real$' %0.4 = LdConst [1] 1
  50450. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50451. BB2
  50452. t %2.0 = IsObject %0.3
  50453. void AssumeNot %2.0, %0.5
  50454. lgl' %2.2 = Eq %0.3, %0.4, elided
  50455. lgl %2.3 = AsLogical %2.2
  50456. t %2.4 = AsTest %2.3
  50457. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50458. BB1
  50459. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50460. void Deopt %1.0
  50461. BB11
  50462. cls %11.0 = LdFun c, e0.2
  50463. prom %11.1 = MkArg missing, Prom(4), e0.2
  50464. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50465. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50466. goto BB12
  50467. BB3
  50468. cls %3.0 = LdFun vector, e0.2
  50469. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50470. BB12
  50471. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50472. val %12.1 = Force %12.0, e0.2
  50473. void Return %12.1
  50474. BB5
  50475. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50476. t %5.1 = Identical %3.0, %5.0
  50477. void Assume %5.1, %3.1
  50478. real$' %5.3 = LdConst [1] 4
  50479. str$' %5.4 = LdConst [1] "list"
  50480. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50481. void StVar array, %5.5, e0.2
  50482. real$' %5.7 = LdConst [1] 4
  50483. real$' %5.8 = LdConst [1] 1
  50484. val' %5.9 = Colon %5.8, %5.7, elided
  50485. val' %5.10 = SetShared %5.9
  50486. int$' %5.11 = ForSeqSize %5.10
  50487. int$' %5.12 = LdConst [1] 0
  50488. goto BB6
  50489. BB4
  50490. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50491. void Deopt %4.0
  50492. BB6
  50493. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50494. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50495. int$' %6.2 = Inc %6.1
  50496. int$' %6.3 = EnsureNamed %6.2
  50497. lgl' %6.4 = Lt %5.11, %6.3, elided
  50498. t %6.5 = AsTest %6.4
  50499. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50500. BB10
  50501. goto BB12
  50502. BB7
  50503. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50504. void StVar i, %7.0, e0.2
  50505. cls %7.2 = LdFun buildTreeDepth, e0.2
  50506. prom %7.3 = MkArg missing, Prom(2), e0.2
  50507. prom %7.4 = MkArg missing, Prom(3), e0.2
  50508. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50509. BB9
  50510. cls' %9.0 = LdConst function (depth, random) { if (d...
  50511. t %9.1 = Identical %7.2, %9.0
  50512. void Assume %9.1, %7.5
  50513. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50514. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50515. val^? %9.5 = LdVar array, e0.2
  50516. val %9.6 = Force %9.5, e0.2
  50517. val^? %9.7 = LdVar i, e0.2
  50518. val %9.8 = Force %9.7, e0.2
  50519. val^ %9.9 = EnsureNamed %9.4
  50520. val %9.10 = Force %9.9, e0.2
  50521. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50522. void StVar array, %9.11, e0.2
  50523. goto BB6
  50524. BB8
  50525. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50526. void Deopt %8.0
  50527. Prom 2:
  50528. BB0
  50529. env e0.0 = LdFunctionEnv
  50530. val^? %0.1 = LdVar depth, e0.0
  50531. val %0.2 = Force %0.1, e0.0
  50532. real$' %0.3 = LdConst [1] 1
  50533. goto BB1
  50534. BB1
  50535. val %1.0 = Sub %0.2, %0.3, e0.0
  50536. void Return %1.0
  50537. Prom 3:
  50538. BB0
  50539. env e0.0 = LdFunctionEnv
  50540. val^? %0.1 = LdVar random, e0.0
  50541. val %0.2 = Force %0.1, e0.0
  50542. void Return %0.2
  50543. Prom 4:
  50544. BB0
  50545. env e0.0 = LdFunctionEnv
  50546. cls %0.1 = LdFun nextRandom, e0.0
  50547. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50548. t %0.3 = Identical %0.1, %0.2
  50549. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50550. BB2
  50551. void Assume %0.3, %0.4
  50552. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50553. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50554. real$' %2.3 = LdConst [1] 10
  50555. goto BB3
  50556. BB1
  50557. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50558. void Deopt %1.0
  50559. BB3
  50560. val %3.0 = Force %2.2, e0.0
  50561. val %3.1 = Mod %3.0, %2.3, e0.0
  50562. real$' %3.2 = LdConst [1] 1
  50563. goto BB4
  50564. BB4
  50565. val %4.0 = Add %3.1, %3.2, e0.0
  50566. void Return %4.0
  50567. ├────── Inline closures: == 449
  50568. test>buildTreeDepth@91[0x7f92445596d0]
  50569. BB0
  50570. val^ %0.0 = LdArg 0
  50571. val^ %0.1 = LdArg 1
  50572. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50573. val %0.3 = Force! %0.0, e0.2
  50574. real$' %0.4 = LdConst [1] 1
  50575. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50576. BB2
  50577. t %2.0 = IsObject %0.3
  50578. void AssumeNot %2.0, %0.5
  50579. lgl' %2.2 = Eq %0.3, %0.4, elided
  50580. lgl %2.3 = AsLogical %2.2
  50581. t %2.4 = AsTest %2.3
  50582. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50583. BB1
  50584. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50585. void Deopt %1.0
  50586. BB11
  50587. cls %11.0 = LdFun c, e0.2
  50588. prom %11.1 = MkArg missing, Prom(4), e0.2
  50589. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50590. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50591. goto BB12
  50592. BB3
  50593. cls %3.0 = LdFun vector, e0.2
  50594. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50595. BB12
  50596. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50597. val %12.1 = Force %12.0, e0.2
  50598. void Return %12.1
  50599. BB5
  50600. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50601. t %5.1 = Identical %3.0, %5.0
  50602. void Assume %5.1, %3.1
  50603. real$' %5.3 = LdConst [1] 4
  50604. str$' %5.4 = LdConst [1] "list"
  50605. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50606. void StVar array, %5.5, e0.2
  50607. real$' %5.7 = LdConst [1] 4
  50608. real$' %5.8 = LdConst [1] 1
  50609. val' %5.9 = Colon %5.8, %5.7, elided
  50610. val' %5.10 = SetShared %5.9
  50611. int$' %5.11 = ForSeqSize %5.10
  50612. int$' %5.12 = LdConst [1] 0
  50613. goto BB6
  50614. BB4
  50615. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50616. void Deopt %4.0
  50617. BB6
  50618. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50619. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50620. int$' %6.2 = Inc %6.1
  50621. int$' %6.3 = EnsureNamed %6.2
  50622. lgl' %6.4 = Lt %5.11, %6.3, elided
  50623. t %6.5 = AsTest %6.4
  50624. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50625. BB10
  50626. goto BB12
  50627. BB7
  50628. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50629. void StVar i, %7.0, e0.2
  50630. cls %7.2 = LdFun buildTreeDepth, e0.2
  50631. prom %7.3 = MkArg missing, Prom(2), e0.2
  50632. prom %7.4 = MkArg missing, Prom(3), e0.2
  50633. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50634. BB9
  50635. cls' %9.0 = LdConst function (depth, random) { if (d...
  50636. t %9.1 = Identical %7.2, %9.0
  50637. void Assume %9.1, %7.5
  50638. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50639. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50640. val^? %9.5 = LdVar array, e0.2
  50641. val %9.6 = Force %9.5, e0.2
  50642. val^? %9.7 = LdVar i, e0.2
  50643. val %9.8 = Force %9.7, e0.2
  50644. val^ %9.9 = EnsureNamed %9.4
  50645. val %9.10 = Force %9.9, e0.2
  50646. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50647. void StVar array, %9.11, e0.2
  50648. goto BB6
  50649. BB8
  50650. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50651. void Deopt %8.0
  50652. Prom 2:
  50653. BB0
  50654. env e0.0 = LdFunctionEnv
  50655. val^? %0.1 = LdVar depth, e0.0
  50656. val %0.2 = Force %0.1, e0.0
  50657. real$' %0.3 = LdConst [1] 1
  50658. goto BB1
  50659. BB1
  50660. val %1.0 = Sub %0.2, %0.3, e0.0
  50661. void Return %1.0
  50662. Prom 3:
  50663. BB0
  50664. env e0.0 = LdFunctionEnv
  50665. val^? %0.1 = LdVar random, e0.0
  50666. val %0.2 = Force %0.1, e0.0
  50667. void Return %0.2
  50668. Prom 4:
  50669. BB0
  50670. env e0.0 = LdFunctionEnv
  50671. cls %0.1 = LdFun nextRandom, e0.0
  50672. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50673. t %0.3 = Identical %0.1, %0.2
  50674. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50675. BB2
  50676. void Assume %0.3, %0.4
  50677. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50678. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50679. real$' %2.3 = LdConst [1] 10
  50680. goto BB3
  50681. BB1
  50682. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50683. void Deopt %1.0
  50684. BB3
  50685. val %3.0 = Force %2.2, e0.0
  50686. val %3.1 = Mod %3.0, %2.3, e0.0
  50687. real$' %3.2 = LdConst [1] 1
  50688. goto BB4
  50689. BB4
  50690. val %4.0 = Add %3.1, %3.2, e0.0
  50691. void Return %4.0
  50692. ├────── Inline Promises: == 456
  50693. test>buildTreeDepth@91[0x7f92445596d0]
  50694. BB0
  50695. val^ %0.0 = LdArg 0
  50696. val^ %0.1 = LdArg 1
  50697. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50698. val %0.3 = Force! %0.0, e0.2
  50699. real$' %0.4 = LdConst [1] 1
  50700. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50701. BB2
  50702. t %2.0 = IsObject %0.3
  50703. void AssumeNot %2.0, %0.5
  50704. lgl' %2.2 = Eq %0.3, %0.4, elided
  50705. lgl %2.3 = AsLogical %2.2
  50706. t %2.4 = AsTest %2.3
  50707. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50708. BB1
  50709. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50710. void Deopt %1.0
  50711. BB11
  50712. cls %11.0 = LdFun c, e0.2
  50713. prom %11.1 = MkArg missing, Prom(4), e0.2
  50714. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50715. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50716. goto BB12
  50717. BB3
  50718. cls %3.0 = LdFun vector, e0.2
  50719. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50720. BB12
  50721. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50722. val %12.1 = Force %12.0, e0.2
  50723. void Return %12.1
  50724. BB5
  50725. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50726. t %5.1 = Identical %3.0, %5.0
  50727. void Assume %5.1, %3.1
  50728. real$' %5.3 = LdConst [1] 4
  50729. str$' %5.4 = LdConst [1] "list"
  50730. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50731. void StVar array, %5.5, e0.2
  50732. real$' %5.7 = LdConst [1] 4
  50733. real$' %5.8 = LdConst [1] 1
  50734. val' %5.9 = Colon %5.8, %5.7, elided
  50735. val' %5.10 = SetShared %5.9
  50736. int$' %5.11 = ForSeqSize %5.10
  50737. int$' %5.12 = LdConst [1] 0
  50738. goto BB6
  50739. BB4
  50740. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50741. void Deopt %4.0
  50742. BB6
  50743. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50744. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50745. int$' %6.2 = Inc %6.1
  50746. int$' %6.3 = EnsureNamed %6.2
  50747. lgl' %6.4 = Lt %5.11, %6.3, elided
  50748. t %6.5 = AsTest %6.4
  50749. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50750. BB10
  50751. goto BB12
  50752. BB7
  50753. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50754. void StVar i, %7.0, e0.2
  50755. cls %7.2 = LdFun buildTreeDepth, e0.2
  50756. prom %7.3 = MkArg missing, Prom(2), e0.2
  50757. prom %7.4 = MkArg missing, Prom(3), e0.2
  50758. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50759. BB9
  50760. cls' %9.0 = LdConst function (depth, random) { if (d...
  50761. t %9.1 = Identical %7.2, %9.0
  50762. void Assume %9.1, %7.5
  50763. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50764. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50765. val^? %9.5 = LdVar array, e0.2
  50766. val %9.6 = Force %9.5, e0.2
  50767. val^? %9.7 = LdVar i, e0.2
  50768. val %9.8 = Force %9.7, e0.2
  50769. val^ %9.9 = EnsureNamed %9.4
  50770. val %9.10 = Force %9.9, e0.2
  50771. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50772. void StVar array, %9.11, e0.2
  50773. goto BB6
  50774. BB8
  50775. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50776. void Deopt %8.0
  50777. Prom 2:
  50778. BB0
  50779. env e0.0 = LdFunctionEnv
  50780. val^? %0.1 = LdVar depth, e0.0
  50781. val %0.2 = Force %0.1, e0.0
  50782. real$' %0.3 = LdConst [1] 1
  50783. goto BB1
  50784. BB1
  50785. val %1.0 = Sub %0.2, %0.3, e0.0
  50786. void Return %1.0
  50787. Prom 3:
  50788. BB0
  50789. env e0.0 = LdFunctionEnv
  50790. val^? %0.1 = LdVar random, e0.0
  50791. val %0.2 = Force %0.1, e0.0
  50792. void Return %0.2
  50793. Prom 4:
  50794. BB0
  50795. env e0.0 = LdFunctionEnv
  50796. cls %0.1 = LdFun nextRandom, e0.0
  50797. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50798. t %0.3 = Identical %0.1, %0.2
  50799. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50800. BB2
  50801. void Assume %0.3, %0.4
  50802. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50803. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50804. real$' %2.3 = LdConst [1] 10
  50805. goto BB3
  50806. BB1
  50807. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50808. void Deopt %1.0
  50809. BB3
  50810. val %3.0 = Force %2.2, e0.0
  50811. val %3.1 = Mod %3.0, %2.3, e0.0
  50812. real$' %3.2 = LdConst [1] 1
  50813. goto BB4
  50814. BB4
  50815. val %4.0 = Add %3.1, %3.2, e0.0
  50816. void Return %4.0
  50817. ├────── Scope resolution: == 463
  50818. test>buildTreeDepth@91[0x7f92445596d0]
  50819. BB0
  50820. val^ %0.0 = LdArg 0
  50821. val^ %0.1 = LdArg 1
  50822. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50823. val %0.3 = Force! %0.0, e0.2
  50824. real$' %0.4 = LdConst [1] 1
  50825. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50826. BB2
  50827. t %2.0 = IsObject %0.3
  50828. void AssumeNot %2.0, %0.5
  50829. lgl' %2.2 = Eq %0.3, %0.4, elided
  50830. lgl %2.3 = AsLogical %2.2
  50831. t %2.4 = AsTest %2.3
  50832. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50833. BB1
  50834. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50835. void Deopt %1.0
  50836. BB11
  50837. cls %11.0 = LdFun c, e0.2
  50838. prom %11.1 = MkArg missing, Prom(4), e0.2
  50839. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50840. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50841. goto BB12
  50842. BB3
  50843. cls %3.0 = LdFun vector, e0.2
  50844. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50845. BB12
  50846. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50847. val %12.1 = Force %12.0, e0.2
  50848. void Return %12.1
  50849. BB5
  50850. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50851. t %5.1 = Identical %3.0, %5.0
  50852. void Assume %5.1, %3.1
  50853. real$' %5.3 = LdConst [1] 4
  50854. str$' %5.4 = LdConst [1] "list"
  50855. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50856. void StVar array, %5.5, e0.2
  50857. real$' %5.7 = LdConst [1] 4
  50858. real$' %5.8 = LdConst [1] 1
  50859. val' %5.9 = Colon %5.8, %5.7, elided
  50860. val' %5.10 = SetShared %5.9
  50861. int$' %5.11 = ForSeqSize %5.10
  50862. int$' %5.12 = LdConst [1] 0
  50863. goto BB6
  50864. BB4
  50865. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50866. void Deopt %4.0
  50867. BB6
  50868. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50869. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50870. int$' %6.2 = Inc %6.1
  50871. int$' %6.3 = EnsureNamed %6.2
  50872. lgl' %6.4 = Lt %5.11, %6.3, elided
  50873. t %6.5 = AsTest %6.4
  50874. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  50875. BB10
  50876. goto BB12
  50877. BB7
  50878. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  50879. void StVar i, %7.0, e0.2
  50880. cls %7.2 = LdFun buildTreeDepth, e0.2
  50881. prom %7.3 = MkArg missing, Prom(2), e0.2
  50882. prom %7.4 = MkArg missing, Prom(3), e0.2
  50883. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  50884. BB9
  50885. cls' %9.0 = LdConst function (depth, random) { if (d...
  50886. t %9.1 = Identical %7.2, %9.0
  50887. void Assume %9.1, %7.5
  50888. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  50889. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  50890. val^? %9.5 = LdVar array, e0.2
  50891. val %9.6 = Force %9.5, e0.2
  50892. val^? %9.7 = LdVar i, e0.2
  50893. val %9.8 = Force %9.7, e0.2
  50894. val^ %9.9 = EnsureNamed %9.4
  50895. val %9.10 = Force %9.9, e0.2
  50896. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  50897. void StVar array, %9.11, e0.2
  50898. goto BB6
  50899. BB8
  50900. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  50901. void Deopt %8.0
  50902. Prom 2:
  50903. BB0
  50904. env e0.0 = LdFunctionEnv
  50905. val^? %0.1 = LdVar depth, e0.0
  50906. val %0.2 = Force %0.1, e0.0
  50907. real$' %0.3 = LdConst [1] 1
  50908. goto BB1
  50909. BB1
  50910. val %1.0 = Sub %0.2, %0.3, e0.0
  50911. void Return %1.0
  50912. Prom 3:
  50913. BB0
  50914. env e0.0 = LdFunctionEnv
  50915. val^? %0.1 = LdVar random, e0.0
  50916. val %0.2 = Force %0.1, e0.0
  50917. void Return %0.2
  50918. Prom 4:
  50919. BB0
  50920. env e0.0 = LdFunctionEnv
  50921. cls %0.1 = LdFun nextRandom, e0.0
  50922. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  50923. t %0.3 = Identical %0.1, %0.2
  50924. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50925. BB2
  50926. void Assume %0.3, %0.4
  50927. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  50928. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  50929. real$' %2.3 = LdConst [1] 10
  50930. goto BB3
  50931. BB1
  50932. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  50933. void Deopt %1.0
  50934. BB3
  50935. val %3.0 = Force %2.2, e0.0
  50936. val %3.1 = Mod %3.0, %2.3, e0.0
  50937. real$' %3.2 = LdConst [1] 1
  50938. goto BB4
  50939. BB4
  50940. val %4.0 = Add %3.1, %3.2, e0.0
  50941. void Return %4.0
  50942. ├────── Constant folding: == 470
  50943. test>buildTreeDepth@91[0x7f92445596d0]
  50944. BB0
  50945. val^ %0.0 = LdArg 0
  50946. val^ %0.1 = LdArg 1
  50947. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  50948. val %0.3 = Force! %0.0, e0.2
  50949. real$' %0.4 = LdConst [1] 1
  50950. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  50951. BB2
  50952. t %2.0 = IsObject %0.3
  50953. void AssumeNot %2.0, %0.5
  50954. lgl' %2.2 = Eq %0.3, %0.4, elided
  50955. lgl %2.3 = AsLogical %2.2
  50956. t %2.4 = AsTest %2.3
  50957. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  50958. BB1
  50959. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  50960. void Deopt %1.0
  50961. BB11
  50962. cls %11.0 = LdFun c, e0.2
  50963. prom %11.1 = MkArg missing, Prom(4), e0.2
  50964. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  50965. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  50966. goto BB12
  50967. BB3
  50968. cls %3.0 = LdFun vector, e0.2
  50969. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  50970. BB12
  50971. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  50972. val %12.1 = Force %12.0, e0.2
  50973. void Return %12.1
  50974. BB5
  50975. cls' %5.0 = LdConst function (mode = "logical", length = ...
  50976. t %5.1 = Identical %3.0, %5.0
  50977. void Assume %5.1, %3.1
  50978. real$' %5.3 = LdConst [1] 4
  50979. str$' %5.4 = LdConst [1] "list"
  50980. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  50981. void StVar array, %5.5, e0.2
  50982. real$' %5.7 = LdConst [1] 4
  50983. real$' %5.8 = LdConst [1] 1
  50984. val' %5.9 = Colon %5.8, %5.7, elided
  50985. val' %5.10 = SetShared %5.9
  50986. int$' %5.11 = ForSeqSize %5.10
  50987. int$' %5.12 = LdConst [1] 0
  50988. goto BB6
  50989. BB4
  50990. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  50991. void Deopt %4.0
  50992. BB6
  50993. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  50994. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  50995. int$' %6.2 = Inc %6.1
  50996. int$' %6.3 = EnsureNamed %6.2
  50997. lgl' %6.4 = Lt %5.11, %6.3, elided
  50998. t %6.5 = AsTest %6.4
  50999. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51000. BB10
  51001. goto BB12
  51002. BB7
  51003. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51004. void StVar i, %7.0, e0.2
  51005. cls %7.2 = LdFun buildTreeDepth, e0.2
  51006. prom %7.3 = MkArg missing, Prom(2), e0.2
  51007. prom %7.4 = MkArg missing, Prom(3), e0.2
  51008. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51009. BB9
  51010. cls' %9.0 = LdConst function (depth, random) { if (d...
  51011. t %9.1 = Identical %7.2, %9.0
  51012. void Assume %9.1, %7.5
  51013. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51014. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51015. val^? %9.5 = LdVar array, e0.2
  51016. val %9.6 = Force %9.5, e0.2
  51017. val^? %9.7 = LdVar i, e0.2
  51018. val %9.8 = Force %9.7, e0.2
  51019. val^ %9.9 = EnsureNamed %9.4
  51020. val %9.10 = Force %9.9, e0.2
  51021. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51022. void StVar array, %9.11, e0.2
  51023. goto BB6
  51024. BB8
  51025. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51026. void Deopt %8.0
  51027. Prom 2:
  51028. BB0
  51029. env e0.0 = LdFunctionEnv
  51030. val^? %0.1 = LdVar depth, e0.0
  51031. val %0.2 = Force %0.1, e0.0
  51032. real$' %0.3 = LdConst [1] 1
  51033. goto BB1
  51034. BB1
  51035. val %1.0 = Sub %0.2, %0.3, e0.0
  51036. void Return %1.0
  51037. Prom 3:
  51038. BB0
  51039. env e0.0 = LdFunctionEnv
  51040. val^? %0.1 = LdVar random, e0.0
  51041. val %0.2 = Force %0.1, e0.0
  51042. void Return %0.2
  51043. Prom 4:
  51044. BB0
  51045. env e0.0 = LdFunctionEnv
  51046. cls %0.1 = LdFun nextRandom, e0.0
  51047. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51048. t %0.3 = Identical %0.1, %0.2
  51049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51050. BB2
  51051. void Assume %0.3, %0.4
  51052. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51053. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51054. real$' %2.3 = LdConst [1] 10
  51055. goto BB3
  51056. BB1
  51057. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51058. void Deopt %1.0
  51059. BB3
  51060. val %3.0 = Force %2.2, e0.0
  51061. val %3.1 = Mod %3.0, %2.3, e0.0
  51062. real$' %3.2 = LdConst [1] 1
  51063. goto BB4
  51064. BB4
  51065. val %4.0 = Add %3.1, %3.2, e0.0
  51066. void Return %4.0
  51067. ├────── Cleanup redundant operations: == 477
  51068. test>buildTreeDepth@91[0x7f92445596d0]
  51069. BB0
  51070. val^ %0.0 = LdArg 0
  51071. val^ %0.1 = LdArg 1
  51072. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51073. val %0.3 = Force! %0.0, e0.2
  51074. real$' %0.4 = LdConst [1] 1
  51075. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51076. BB2
  51077. t %2.0 = IsObject %0.3
  51078. void AssumeNot %2.0, %0.5
  51079. lgl' %2.2 = Eq %0.3, %0.4, elided
  51080. lgl %2.3 = AsLogical %2.2
  51081. t %2.4 = AsTest %2.3
  51082. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51083. BB1
  51084. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51085. void Deopt %1.0
  51086. BB11
  51087. cls %11.0 = LdFun c, e0.2
  51088. prom %11.1 = MkArg missing, Prom(4), e0.2
  51089. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51090. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51091. goto BB12
  51092. BB3
  51093. cls %3.0 = LdFun vector, e0.2
  51094. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51095. BB12
  51096. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51097. val %12.1 = Force %12.0, e0.2
  51098. void Return %12.1
  51099. BB5
  51100. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51101. t %5.1 = Identical %3.0, %5.0
  51102. void Assume %5.1, %3.1
  51103. real$' %5.3 = LdConst [1] 4
  51104. str$' %5.4 = LdConst [1] "list"
  51105. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  51106. void StVar array, %5.5, e0.2
  51107. real$' %5.7 = LdConst [1] 4
  51108. real$' %5.8 = LdConst [1] 1
  51109. val' %5.9 = Colon %5.8, %5.7, elided
  51110. val' %5.10 = SetShared %5.9
  51111. int$' %5.11 = ForSeqSize %5.10
  51112. int$' %5.12 = LdConst [1] 0
  51113. goto BB6
  51114. BB4
  51115. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51116. void Deopt %4.0
  51117. BB6
  51118. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51119. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51120. int$' %6.2 = Inc %6.1
  51121. int$' %6.3 = EnsureNamed %6.2
  51122. lgl' %6.4 = Lt %5.11, %6.3, elided
  51123. t %6.5 = AsTest %6.4
  51124. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51125. BB10
  51126. goto BB12
  51127. BB7
  51128. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51129. void StVar i, %7.0, e0.2
  51130. cls %7.2 = LdFun buildTreeDepth, e0.2
  51131. prom %7.3 = MkArg missing, Prom(2), e0.2
  51132. prom %7.4 = MkArg missing, Prom(3), e0.2
  51133. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51134. BB9
  51135. cls' %9.0 = LdConst function (depth, random) { if (d...
  51136. t %9.1 = Identical %7.2, %9.0
  51137. void Assume %9.1, %7.5
  51138. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51139. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51140. val^? %9.5 = LdVar array, e0.2
  51141. val %9.6 = Force %9.5, e0.2
  51142. val^? %9.7 = LdVar i, e0.2
  51143. val %9.8 = Force %9.7, e0.2
  51144. val^ %9.9 = EnsureNamed %9.4
  51145. val %9.10 = Force %9.9, e0.2
  51146. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51147. void StVar array, %9.11, e0.2
  51148. goto BB6
  51149. BB8
  51150. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51151. void Deopt %8.0
  51152. Prom 2:
  51153. BB0
  51154. env e0.0 = LdFunctionEnv
  51155. val^? %0.1 = LdVar depth, e0.0
  51156. val %0.2 = Force %0.1, e0.0
  51157. real$' %0.3 = LdConst [1] 1
  51158. goto BB1
  51159. BB1
  51160. val %1.0 = Sub %0.2, %0.3, e0.0
  51161. void Return %1.0
  51162. Prom 3:
  51163. BB0
  51164. env e0.0 = LdFunctionEnv
  51165. val^? %0.1 = LdVar random, e0.0
  51166. val %0.2 = Force %0.1, e0.0
  51167. void Return %0.2
  51168. Prom 4:
  51169. BB0
  51170. env e0.0 = LdFunctionEnv
  51171. cls %0.1 = LdFun nextRandom, e0.0
  51172. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51173. t %0.3 = Identical %0.1, %0.2
  51174. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51175. BB2
  51176. void Assume %0.3, %0.4
  51177. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51178. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51179. real$' %2.3 = LdConst [1] 10
  51180. goto BB3
  51181. BB1
  51182. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51183. void Deopt %1.0
  51184. BB3
  51185. val %3.0 = Force %2.2, e0.0
  51186. val %3.1 = Mod %3.0, %2.3, e0.0
  51187. real$' %3.2 = LdConst [1] 1
  51188. goto BB4
  51189. BB4
  51190. val %4.0 = Add %3.1, %3.2, e0.0
  51191. void Return %4.0
  51192. ├────── Delay instructions: == 484
  51193. test>buildTreeDepth@91[0x7f92445596d0]
  51194. BB0
  51195. val^ %0.0 = LdArg 0
  51196. val^ %0.1 = LdArg 1
  51197. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51198. val %0.3 = Force! %0.0, e0.2
  51199. real$' %0.4 = LdConst [1] 1
  51200. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51201. BB2
  51202. t %2.0 = IsObject %0.3
  51203. void AssumeNot %2.0, %0.5
  51204. lgl' %2.2 = Eq %0.3, %0.4, elided
  51205. lgl %2.3 = AsLogical %2.2
  51206. t %2.4 = AsTest %2.3
  51207. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51208. BB1
  51209. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51210. void Deopt %1.0
  51211. BB11
  51212. cls %11.0 = LdFun c, e0.2
  51213. prom %11.1 = MkArg missing, Prom(4), e0.2
  51214. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51215. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51216. goto BB12
  51217. BB3
  51218. cls %3.0 = LdFun vector, e0.2
  51219. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51220. BB12
  51221. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51222. val %12.1 = Force %12.0, e0.2
  51223. void Return %12.1
  51224. BB5
  51225. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51226. t %5.1 = Identical %3.0, %5.0
  51227. void Assume %5.1, %3.1
  51228. str$' %5.3 = LdConst [1] "list"
  51229. real$' %5.4 = LdConst [1] 4
  51230. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  51231. void StVar array, %5.5, e0.2
  51232. real$' %5.7 = LdConst [1] 1
  51233. real$' %5.8 = LdConst [1] 4
  51234. val' %5.9 = Colon %5.7, %5.8, elided
  51235. val' %5.10 = SetShared %5.9
  51236. int$' %5.11 = ForSeqSize %5.10
  51237. int$' %5.12 = LdConst [1] 0
  51238. goto BB6
  51239. BB4
  51240. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51241. void Deopt %4.0
  51242. BB6
  51243. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51244. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51245. int$' %6.2 = Inc %6.1
  51246. int$' %6.3 = EnsureNamed %6.2
  51247. lgl' %6.4 = Lt %5.11, %6.3, elided
  51248. t %6.5 = AsTest %6.4
  51249. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51250. BB10
  51251. goto BB12
  51252. BB7
  51253. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51254. void StVar i, %7.0, e0.2
  51255. cls %7.2 = LdFun buildTreeDepth, e0.2
  51256. prom %7.3 = MkArg missing, Prom(2), e0.2
  51257. prom %7.4 = MkArg missing, Prom(3), e0.2
  51258. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51259. BB9
  51260. cls' %9.0 = LdConst function (depth, random) { if (d...
  51261. t %9.1 = Identical %7.2, %9.0
  51262. void Assume %9.1, %7.5
  51263. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51264. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51265. val^? %9.5 = LdVar array, e0.2
  51266. val %9.6 = Force %9.5, e0.2
  51267. val^? %9.7 = LdVar i, e0.2
  51268. val %9.8 = Force %9.7, e0.2
  51269. val^ %9.9 = EnsureNamed %9.4
  51270. val %9.10 = Force %9.9, e0.2
  51271. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51272. void StVar array, %9.11, e0.2
  51273. goto BB6
  51274. BB8
  51275. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51276. void Deopt %8.0
  51277. Prom 2:
  51278. BB0
  51279. env e0.0 = LdFunctionEnv
  51280. val^? %0.1 = LdVar depth, e0.0
  51281. val %0.2 = Force %0.1, e0.0
  51282. real$' %0.3 = LdConst [1] 1
  51283. goto BB1
  51284. BB1
  51285. val %1.0 = Sub %0.2, %0.3, e0.0
  51286. void Return %1.0
  51287. Prom 3:
  51288. BB0
  51289. env e0.0 = LdFunctionEnv
  51290. val^? %0.1 = LdVar random, e0.0
  51291. val %0.2 = Force %0.1, e0.0
  51292. void Return %0.2
  51293. Prom 4:
  51294. BB0
  51295. env e0.0 = LdFunctionEnv
  51296. cls %0.1 = LdFun nextRandom, e0.0
  51297. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51298. t %0.3 = Identical %0.1, %0.2
  51299. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51300. BB2
  51301. void Assume %0.3, %0.4
  51302. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51303. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51304. real$' %2.3 = LdConst [1] 10
  51305. goto BB3
  51306. BB1
  51307. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51308. void Deopt %1.0
  51309. BB3
  51310. val %3.0 = Force %2.2, e0.0
  51311. val %3.1 = Mod %3.0, %2.3, e0.0
  51312. real$' %3.2 = LdConst [1] 1
  51313. goto BB4
  51314. BB4
  51315. val %4.0 = Add %3.1, %3.2, e0.0
  51316. void Return %4.0
  51317. ├────── Elide environments not needed: == 491
  51318. test>buildTreeDepth@91[0x7f92445596d0]
  51319. BB0
  51320. val^ %0.0 = LdArg 0
  51321. val^ %0.1 = LdArg 1
  51322. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51323. val %0.3 = Force! %0.0, e0.2
  51324. real$' %0.4 = LdConst [1] 1
  51325. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51326. BB2
  51327. t %2.0 = IsObject %0.3
  51328. void AssumeNot %2.0, %0.5
  51329. lgl' %2.2 = Eq %0.3, %0.4, elided
  51330. lgl %2.3 = AsLogical %2.2
  51331. t %2.4 = AsTest %2.3
  51332. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51333. BB1
  51334. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51335. void Deopt %1.0
  51336. BB11
  51337. cls %11.0 = LdFun c, e0.2
  51338. prom %11.1 = MkArg missing, Prom(4), e0.2
  51339. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51340. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51341. goto BB12
  51342. BB3
  51343. cls %3.0 = LdFun vector, e0.2
  51344. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51345. BB12
  51346. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51347. val %12.1 = Force %12.0, e0.2
  51348. void Return %12.1
  51349. BB5
  51350. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51351. t %5.1 = Identical %3.0, %5.0
  51352. void Assume %5.1, %3.1
  51353. str$' %5.3 = LdConst [1] "list"
  51354. real$' %5.4 = LdConst [1] 4
  51355. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  51356. void StVar array, %5.5, e0.2
  51357. real$' %5.7 = LdConst [1] 1
  51358. real$' %5.8 = LdConst [1] 4
  51359. val' %5.9 = Colon %5.7, %5.8, elided
  51360. val' %5.10 = SetShared %5.9
  51361. int$' %5.11 = ForSeqSize %5.10
  51362. int$' %5.12 = LdConst [1] 0
  51363. goto BB6
  51364. BB4
  51365. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51366. void Deopt %4.0
  51367. BB6
  51368. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51369. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51370. int$' %6.2 = Inc %6.1
  51371. int$' %6.3 = EnsureNamed %6.2
  51372. lgl' %6.4 = Lt %5.11, %6.3, elided
  51373. t %6.5 = AsTest %6.4
  51374. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51375. BB10
  51376. goto BB12
  51377. BB7
  51378. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51379. void StVar i, %7.0, e0.2
  51380. cls %7.2 = LdFun buildTreeDepth, e0.2
  51381. prom %7.3 = MkArg missing, Prom(2), e0.2
  51382. prom %7.4 = MkArg missing, Prom(3), e0.2
  51383. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51384. BB9
  51385. cls' %9.0 = LdConst function (depth, random) { if (d...
  51386. t %9.1 = Identical %7.2, %9.0
  51387. void Assume %9.1, %7.5
  51388. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51389. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51390. val^? %9.5 = LdVar array, e0.2
  51391. val %9.6 = Force %9.5, e0.2
  51392. val^? %9.7 = LdVar i, e0.2
  51393. val %9.8 = Force %9.7, e0.2
  51394. val^ %9.9 = EnsureNamed %9.4
  51395. val %9.10 = Force %9.9, e0.2
  51396. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51397. void StVar array, %9.11, e0.2
  51398. goto BB6
  51399. BB8
  51400. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51401. void Deopt %8.0
  51402. Prom 2:
  51403. BB0
  51404. env e0.0 = LdFunctionEnv
  51405. val^? %0.1 = LdVar depth, e0.0
  51406. val %0.2 = Force %0.1, e0.0
  51407. real$' %0.3 = LdConst [1] 1
  51408. goto BB1
  51409. BB1
  51410. val %1.0 = Sub %0.2, %0.3, e0.0
  51411. void Return %1.0
  51412. Prom 3:
  51413. BB0
  51414. env e0.0 = LdFunctionEnv
  51415. val^? %0.1 = LdVar random, e0.0
  51416. val %0.2 = Force %0.1, e0.0
  51417. void Return %0.2
  51418. Prom 4:
  51419. BB0
  51420. env e0.0 = LdFunctionEnv
  51421. cls %0.1 = LdFun nextRandom, e0.0
  51422. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51423. t %0.3 = Identical %0.1, %0.2
  51424. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51425. BB2
  51426. void Assume %0.3, %0.4
  51427. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51428. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51429. real$' %2.3 = LdConst [1] 10
  51430. goto BB3
  51431. BB1
  51432. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51433. void Deopt %1.0
  51434. BB3
  51435. val %3.0 = Force %2.2, e0.0
  51436. val %3.1 = Mod %3.0, %2.3, e0.0
  51437. real$' %3.2 = LdConst [1] 1
  51438. goto BB4
  51439. BB4
  51440. val %4.0 = Add %3.1, %3.2, e0.0
  51441. void Return %4.0
  51442. ├────── Move environment creation as far as possible: == 498
  51443. test>buildTreeDepth@91[0x7f92445596d0]
  51444. BB0
  51445. val^ %0.0 = LdArg 0
  51446. val^ %0.1 = LdArg 1
  51447. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51448. val %0.3 = Force! %0.0, e0.2
  51449. real$' %0.4 = LdConst [1] 1
  51450. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51451. BB2
  51452. t %2.0 = IsObject %0.3
  51453. void AssumeNot %2.0, %0.5
  51454. lgl' %2.2 = Eq %0.3, %0.4, elided
  51455. lgl %2.3 = AsLogical %2.2
  51456. t %2.4 = AsTest %2.3
  51457. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51458. BB1
  51459. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51460. void Deopt %1.0
  51461. BB11
  51462. cls %11.0 = LdFun c, e0.2
  51463. prom %11.1 = MkArg missing, Prom(4), e0.2
  51464. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51465. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51466. goto BB12
  51467. BB3
  51468. cls %3.0 = LdFun vector, e0.2
  51469. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51470. BB12
  51471. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51472. val %12.1 = Force %12.0, e0.2
  51473. void Return %12.1
  51474. BB5
  51475. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51476. t %5.1 = Identical %3.0, %5.0
  51477. void Assume %5.1, %3.1
  51478. str$' %5.3 = LdConst [1] "list"
  51479. real$' %5.4 = LdConst [1] 4
  51480. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  51481. void StVar array, %5.5, e0.2
  51482. real$' %5.7 = LdConst [1] 1
  51483. real$' %5.8 = LdConst [1] 4
  51484. val' %5.9 = Colon %5.7, %5.8, elided
  51485. val' %5.10 = SetShared %5.9
  51486. int$' %5.11 = ForSeqSize %5.10
  51487. int$' %5.12 = LdConst [1] 0
  51488. goto BB6
  51489. BB4
  51490. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51491. void Deopt %4.0
  51492. BB6
  51493. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51494. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51495. int$' %6.2 = Inc %6.1
  51496. int$' %6.3 = EnsureNamed %6.2
  51497. lgl' %6.4 = Lt %5.11, %6.3, elided
  51498. t %6.5 = AsTest %6.4
  51499. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51500. BB10
  51501. goto BB12
  51502. BB7
  51503. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51504. void StVar i, %7.0, e0.2
  51505. cls %7.2 = LdFun buildTreeDepth, e0.2
  51506. prom %7.3 = MkArg missing, Prom(2), e0.2
  51507. prom %7.4 = MkArg missing, Prom(3), e0.2
  51508. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51509. BB9
  51510. cls' %9.0 = LdConst function (depth, random) { if (d...
  51511. t %9.1 = Identical %7.2, %9.0
  51512. void Assume %9.1, %7.5
  51513. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51514. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51515. val^? %9.5 = LdVar array, e0.2
  51516. val %9.6 = Force %9.5, e0.2
  51517. val^? %9.7 = LdVar i, e0.2
  51518. val %9.8 = Force %9.7, e0.2
  51519. val^ %9.9 = EnsureNamed %9.4
  51520. val %9.10 = Force %9.9, e0.2
  51521. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51522. void StVar array, %9.11, e0.2
  51523. goto BB6
  51524. BB8
  51525. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51526. void Deopt %8.0
  51527. Prom 2:
  51528. BB0
  51529. env e0.0 = LdFunctionEnv
  51530. val^? %0.1 = LdVar depth, e0.0
  51531. val %0.2 = Force %0.1, e0.0
  51532. real$' %0.3 = LdConst [1] 1
  51533. goto BB1
  51534. BB1
  51535. val %1.0 = Sub %0.2, %0.3, e0.0
  51536. void Return %1.0
  51537. Prom 3:
  51538. BB0
  51539. env e0.0 = LdFunctionEnv
  51540. val^? %0.1 = LdVar random, e0.0
  51541. val %0.2 = Force %0.1, e0.0
  51542. void Return %0.2
  51543. Prom 4:
  51544. BB0
  51545. env e0.0 = LdFunctionEnv
  51546. cls %0.1 = LdFun nextRandom, e0.0
  51547. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51548. t %0.3 = Identical %0.1, %0.2
  51549. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51550. BB2
  51551. void Assume %0.3, %0.4
  51552. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51553. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51554. real$' %2.3 = LdConst [1] 10
  51555. goto BB3
  51556. BB1
  51557. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51558. void Deopt %1.0
  51559. BB3
  51560. val %3.0 = Force %2.2, e0.0
  51561. val %3.1 = Mod %3.0, %2.3, e0.0
  51562. real$' %3.2 = LdConst [1] 1
  51563. goto BB4
  51564. BB4
  51565. val %4.0 = Add %3.1, %3.2, e0.0
  51566. void Return %4.0
  51567. ├────── Cleanup redundant operations: == 505
  51568. test>buildTreeDepth@91[0x7f92445596d0]
  51569. BB0
  51570. val^ %0.0 = LdArg 0
  51571. val^ %0.1 = LdArg 1
  51572. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51573. val %0.3 = Force! %0.0, e0.2
  51574. real$' %0.4 = LdConst [1] 1
  51575. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51576. BB2
  51577. t %2.0 = IsObject %0.3
  51578. void AssumeNot %2.0, %0.5
  51579. lgl' %2.2 = Eq %0.3, %0.4, elided
  51580. lgl %2.3 = AsLogical %2.2
  51581. t %2.4 = AsTest %2.3
  51582. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51583. BB1
  51584. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51585. void Deopt %1.0
  51586. BB11
  51587. cls %11.0 = LdFun c, e0.2
  51588. prom %11.1 = MkArg missing, Prom(4), e0.2
  51589. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51590. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51591. goto BB12
  51592. BB3
  51593. cls %3.0 = LdFun vector, e0.2
  51594. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51595. BB12
  51596. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51597. val %12.1 = Force %12.0, e0.2
  51598. void Return %12.1
  51599. BB5
  51600. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51601. t %5.1 = Identical %3.0, %5.0
  51602. void Assume %5.1, %3.1
  51603. str$' %5.3 = LdConst [1] "list"
  51604. real$' %5.4 = LdConst [1] 4
  51605. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  51606. void StVar array, %5.5, e0.2
  51607. real$' %5.7 = LdConst [1] 1
  51608. real$' %5.8 = LdConst [1] 4
  51609. val' %5.9 = Colon %5.7, %5.8, elided
  51610. val' %5.10 = SetShared %5.9
  51611. int$' %5.11 = ForSeqSize %5.10
  51612. int$' %5.12 = LdConst [1] 0
  51613. goto BB6
  51614. BB4
  51615. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51616. void Deopt %4.0
  51617. BB6
  51618. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51619. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51620. int$' %6.2 = Inc %6.1
  51621. int$' %6.3 = EnsureNamed %6.2
  51622. lgl' %6.4 = Lt %5.11, %6.3, elided
  51623. t %6.5 = AsTest %6.4
  51624. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51625. BB10
  51626. goto BB12
  51627. BB7
  51628. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51629. void StVar i, %7.0, e0.2
  51630. cls %7.2 = LdFun buildTreeDepth, e0.2
  51631. prom %7.3 = MkArg missing, Prom(2), e0.2
  51632. prom %7.4 = MkArg missing, Prom(3), e0.2
  51633. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51634. BB9
  51635. cls' %9.0 = LdConst function (depth, random) { if (d...
  51636. t %9.1 = Identical %7.2, %9.0
  51637. void Assume %9.1, %7.5
  51638. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51639. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51640. val^? %9.5 = LdVar array, e0.2
  51641. val %9.6 = Force %9.5, e0.2
  51642. val^? %9.7 = LdVar i, e0.2
  51643. val %9.8 = Force %9.7, e0.2
  51644. val^ %9.9 = EnsureNamed %9.4
  51645. val %9.10 = Force %9.9, e0.2
  51646. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51647. void StVar array, %9.11, e0.2
  51648. goto BB6
  51649. BB8
  51650. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51651. void Deopt %8.0
  51652. Prom 2:
  51653. BB0
  51654. env e0.0 = LdFunctionEnv
  51655. val^? %0.1 = LdVar depth, e0.0
  51656. val %0.2 = Force %0.1, e0.0
  51657. real$' %0.3 = LdConst [1] 1
  51658. goto BB1
  51659. BB1
  51660. val %1.0 = Sub %0.2, %0.3, e0.0
  51661. void Return %1.0
  51662. Prom 3:
  51663. BB0
  51664. env e0.0 = LdFunctionEnv
  51665. val^? %0.1 = LdVar random, e0.0
  51666. val %0.2 = Force %0.1, e0.0
  51667. void Return %0.2
  51668. Prom 4:
  51669. BB0
  51670. env e0.0 = LdFunctionEnv
  51671. cls %0.1 = LdFun nextRandom, e0.0
  51672. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51673. t %0.3 = Identical %0.1, %0.2
  51674. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51675. BB2
  51676. void Assume %0.3, %0.4
  51677. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51678. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51679. real$' %2.3 = LdConst [1] 10
  51680. goto BB3
  51681. BB1
  51682. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51683. void Deopt %1.0
  51684. BB3
  51685. val %3.0 = Force %2.2, e0.0
  51686. val %3.1 = Mod %3.0, %2.3, e0.0
  51687. real$' %3.2 = LdConst [1] 1
  51688. goto BB4
  51689. BB4
  51690. val %4.0 = Add %3.1, %3.2, e0.0
  51691. void Return %4.0
  51692. ├────── Inline closures: == 512
  51693. test>buildTreeDepth@91[0x7f92445596d0]
  51694. BB0
  51695. val^ %0.0 = LdArg 0
  51696. val^ %0.1 = LdArg 1
  51697. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51698. val %0.3 = Force! %0.0, e0.2
  51699. real$' %0.4 = LdConst [1] 1
  51700. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51701. BB2
  51702. t %2.0 = IsObject %0.3
  51703. void AssumeNot %2.0, %0.5
  51704. lgl' %2.2 = Eq %0.3, %0.4, elided
  51705. lgl %2.3 = AsLogical %2.2
  51706. t %2.4 = AsTest %2.3
  51707. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51708. BB1
  51709. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51710. void Deopt %1.0
  51711. BB11
  51712. cls %11.0 = LdFun c, e0.2
  51713. prom %11.1 = MkArg missing, Prom(4), e0.2
  51714. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51715. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51716. goto BB12
  51717. BB3
  51718. cls %3.0 = LdFun vector, e0.2
  51719. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51720. BB12
  51721. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51722. val %12.1 = Force %12.0, e0.2
  51723. void Return %12.1
  51724. BB5
  51725. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51726. t %5.1 = Identical %3.0, %5.0
  51727. void Assume %5.1, %3.1
  51728. str$' %5.3 = LdConst [1] "list"
  51729. real$' %5.4 = LdConst [1] 4
  51730. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  51731. void StVar array, %5.5, e0.2
  51732. real$' %5.7 = LdConst [1] 1
  51733. real$' %5.8 = LdConst [1] 4
  51734. val' %5.9 = Colon %5.7, %5.8, elided
  51735. val' %5.10 = SetShared %5.9
  51736. int$' %5.11 = ForSeqSize %5.10
  51737. int$' %5.12 = LdConst [1] 0
  51738. goto BB6
  51739. BB4
  51740. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51741. void Deopt %4.0
  51742. BB6
  51743. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51744. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51745. int$' %6.2 = Inc %6.1
  51746. int$' %6.3 = EnsureNamed %6.2
  51747. lgl' %6.4 = Lt %5.11, %6.3, elided
  51748. t %6.5 = AsTest %6.4
  51749. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51750. BB10
  51751. goto BB12
  51752. BB7
  51753. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51754. void StVar i, %7.0, e0.2
  51755. cls %7.2 = LdFun buildTreeDepth, e0.2
  51756. prom %7.3 = MkArg missing, Prom(2), e0.2
  51757. prom %7.4 = MkArg missing, Prom(3), e0.2
  51758. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51759. BB9
  51760. cls' %9.0 = LdConst function (depth, random) { if (d...
  51761. t %9.1 = Identical %7.2, %9.0
  51762. void Assume %9.1, %7.5
  51763. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51764. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51765. val^? %9.5 = LdVar array, e0.2
  51766. val %9.6 = Force %9.5, e0.2
  51767. val^? %9.7 = LdVar i, e0.2
  51768. val %9.8 = Force %9.7, e0.2
  51769. val^ %9.9 = EnsureNamed %9.4
  51770. val %9.10 = Force %9.9, e0.2
  51771. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51772. void StVar array, %9.11, e0.2
  51773. goto BB6
  51774. BB8
  51775. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51776. void Deopt %8.0
  51777. Prom 2:
  51778. BB0
  51779. env e0.0 = LdFunctionEnv
  51780. val^? %0.1 = LdVar depth, e0.0
  51781. val %0.2 = Force %0.1, e0.0
  51782. real$' %0.3 = LdConst [1] 1
  51783. goto BB1
  51784. BB1
  51785. val %1.0 = Sub %0.2, %0.3, e0.0
  51786. void Return %1.0
  51787. Prom 3:
  51788. BB0
  51789. env e0.0 = LdFunctionEnv
  51790. val^? %0.1 = LdVar random, e0.0
  51791. val %0.2 = Force %0.1, e0.0
  51792. void Return %0.2
  51793. Prom 4:
  51794. BB0
  51795. env e0.0 = LdFunctionEnv
  51796. cls %0.1 = LdFun nextRandom, e0.0
  51797. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51798. t %0.3 = Identical %0.1, %0.2
  51799. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51800. BB2
  51801. void Assume %0.3, %0.4
  51802. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51803. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51804. real$' %2.3 = LdConst [1] 10
  51805. goto BB3
  51806. BB1
  51807. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51808. void Deopt %1.0
  51809. BB3
  51810. val %3.0 = Force %2.2, e0.0
  51811. val %3.1 = Mod %3.0, %2.3, e0.0
  51812. real$' %3.2 = LdConst [1] 1
  51813. goto BB4
  51814. BB4
  51815. val %4.0 = Add %3.1, %3.2, e0.0
  51816. void Return %4.0
  51817. ├────── Speculate on values to elide environments: == 519
  51818. test>buildTreeDepth@91[0x7f92445596d0]
  51819. BB0
  51820. val^ %0.0 = LdArg 0
  51821. val^ %0.1 = LdArg 1
  51822. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51823. val %0.3 = Force! %0.0, e0.2
  51824. real$' %0.4 = LdConst [1] 1
  51825. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51826. BB2
  51827. t %2.0 = IsObject %0.3
  51828. void AssumeNot %2.0, %0.5
  51829. lgl' %2.2 = Eq %0.3, %0.4, elided
  51830. lgl %2.3 = AsLogical %2.2
  51831. t %2.4 = AsTest %2.3
  51832. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51833. BB1
  51834. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51835. void Deopt %1.0
  51836. BB11
  51837. cls %11.0 = LdFun c, e0.2
  51838. prom %11.1 = MkArg missing, Prom(4), e0.2
  51839. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51840. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51841. goto BB12
  51842. BB3
  51843. cls %3.0 = LdFun vector, e0.2
  51844. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51845. BB12
  51846. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51847. val %12.1 = Force %12.0, e0.2
  51848. void Return %12.1
  51849. BB5
  51850. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51851. t %5.1 = Identical %3.0, %5.0
  51852. void Assume %5.1, %3.1
  51853. str$' %5.3 = LdConst [1] "list"
  51854. real$' %5.4 = LdConst [1] 4
  51855. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  51856. void StVar array, %5.5, e0.2
  51857. real$' %5.7 = LdConst [1] 1
  51858. real$' %5.8 = LdConst [1] 4
  51859. val' %5.9 = Colon %5.7, %5.8, elided
  51860. val' %5.10 = SetShared %5.9
  51861. int$' %5.11 = ForSeqSize %5.10
  51862. int$' %5.12 = LdConst [1] 0
  51863. goto BB6
  51864. BB4
  51865. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51866. void Deopt %4.0
  51867. BB6
  51868. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51869. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51870. int$' %6.2 = Inc %6.1
  51871. int$' %6.3 = EnsureNamed %6.2
  51872. lgl' %6.4 = Lt %5.11, %6.3, elided
  51873. t %6.5 = AsTest %6.4
  51874. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  51875. BB10
  51876. goto BB12
  51877. BB7
  51878. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  51879. void StVar i, %7.0, e0.2
  51880. cls %7.2 = LdFun buildTreeDepth, e0.2
  51881. prom %7.3 = MkArg missing, Prom(2), e0.2
  51882. prom %7.4 = MkArg missing, Prom(3), e0.2
  51883. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  51884. BB9
  51885. cls' %9.0 = LdConst function (depth, random) { if (d...
  51886. t %9.1 = Identical %7.2, %9.0
  51887. void Assume %9.1, %7.5
  51888. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  51889. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  51890. val^? %9.5 = LdVar array, e0.2
  51891. val %9.6 = Force %9.5, e0.2
  51892. val^? %9.7 = LdVar i, e0.2
  51893. val %9.8 = Force %9.7, e0.2
  51894. val^ %9.9 = EnsureNamed %9.4
  51895. val %9.10 = Force %9.9, e0.2
  51896. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  51897. void StVar array, %9.11, e0.2
  51898. goto BB6
  51899. BB8
  51900. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  51901. void Deopt %8.0
  51902. Prom 2:
  51903. BB0
  51904. env e0.0 = LdFunctionEnv
  51905. val^? %0.1 = LdVar depth, e0.0
  51906. val %0.2 = Force %0.1, e0.0
  51907. real$' %0.3 = LdConst [1] 1
  51908. goto BB1
  51909. BB1
  51910. val %1.0 = Sub %0.2, %0.3, e0.0
  51911. void Return %1.0
  51912. Prom 3:
  51913. BB0
  51914. env e0.0 = LdFunctionEnv
  51915. val^? %0.1 = LdVar random, e0.0
  51916. val %0.2 = Force %0.1, e0.0
  51917. void Return %0.2
  51918. Prom 4:
  51919. BB0
  51920. env e0.0 = LdFunctionEnv
  51921. cls %0.1 = LdFun nextRandom, e0.0
  51922. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  51923. t %0.3 = Identical %0.1, %0.2
  51924. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51925. BB2
  51926. void Assume %0.3, %0.4
  51927. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  51928. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  51929. real$' %2.3 = LdConst [1] 10
  51930. goto BB3
  51931. BB1
  51932. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  51933. void Deopt %1.0
  51934. BB3
  51935. val %3.0 = Force %2.2, e0.0
  51936. val %3.1 = Mod %3.0, %2.3, e0.0
  51937. real$' %3.2 = LdConst [1] 1
  51938. goto BB4
  51939. BB4
  51940. val %4.0 = Add %3.1, %3.2, e0.0
  51941. void Return %4.0
  51942. ├────── Cleanup unused checkpoints: == 526
  51943. test>buildTreeDepth@91[0x7f92445596d0]
  51944. BB0
  51945. val^ %0.0 = LdArg 0
  51946. val^ %0.1 = LdArg 1
  51947. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  51948. val %0.3 = Force! %0.0, e0.2
  51949. real$' %0.4 = LdConst [1] 1
  51950. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  51951. BB2
  51952. t %2.0 = IsObject %0.3
  51953. void AssumeNot %2.0, %0.5
  51954. lgl' %2.2 = Eq %0.3, %0.4, elided
  51955. lgl %2.3 = AsLogical %2.2
  51956. t %2.4 = AsTest %2.3
  51957. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  51958. BB1
  51959. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  51960. void Deopt %1.0
  51961. BB11
  51962. cls %11.0 = LdFun c, e0.2
  51963. prom %11.1 = MkArg missing, Prom(4), e0.2
  51964. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  51965. val^ %11.3 = Call %11.0(%11.1) %11.2, e0.2
  51966. goto BB12
  51967. BB3
  51968. cls %3.0 = LdFun vector, e0.2
  51969. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  51970. BB12
  51971. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  51972. val %12.1 = Force %12.0, e0.2
  51973. void Return %12.1
  51974. BB5
  51975. cls' %5.0 = LdConst function (mode = "logical", length = ...
  51976. t %5.1 = Identical %3.0, %5.0
  51977. void Assume %5.1, %3.1
  51978. str$' %5.3 = LdConst [1] "list"
  51979. real$' %5.4 = LdConst [1] 4
  51980. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  51981. void StVar array, %5.5, e0.2
  51982. real$' %5.7 = LdConst [1] 1
  51983. real$' %5.8 = LdConst [1] 4
  51984. val' %5.9 = Colon %5.7, %5.8, elided
  51985. val' %5.10 = SetShared %5.9
  51986. int$' %5.11 = ForSeqSize %5.10
  51987. int$' %5.12 = LdConst [1] 0
  51988. goto BB6
  51989. BB4
  51990. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  51991. void Deopt %4.0
  51992. BB6
  51993. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  51994. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  51995. int$' %6.2 = Inc %6.1
  51996. int$' %6.3 = EnsureNamed %6.2
  51997. lgl' %6.4 = Lt %5.11, %6.3, elided
  51998. t %6.5 = AsTest %6.4
  51999. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52000. BB10
  52001. goto BB12
  52002. BB7
  52003. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52004. void StVar i, %7.0, e0.2
  52005. cls %7.2 = LdFun buildTreeDepth, e0.2
  52006. prom %7.3 = MkArg missing, Prom(2), e0.2
  52007. prom %7.4 = MkArg missing, Prom(3), e0.2
  52008. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52009. BB9
  52010. cls' %9.0 = LdConst function (depth, random) { if (d...
  52011. t %9.1 = Identical %7.2, %9.0
  52012. void Assume %9.1, %7.5
  52013. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  52014. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) %9.3, e0.2
  52015. val^? %9.5 = LdVar array, e0.2
  52016. val %9.6 = Force %9.5, e0.2
  52017. val^? %9.7 = LdVar i, e0.2
  52018. val %9.8 = Force %9.7, e0.2
  52019. val^ %9.9 = EnsureNamed %9.4
  52020. val %9.10 = Force %9.9, e0.2
  52021. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  52022. void StVar array, %9.11, e0.2
  52023. goto BB6
  52024. BB8
  52025. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52026. void Deopt %8.0
  52027. Prom 2:
  52028. BB0
  52029. env e0.0 = LdFunctionEnv
  52030. val^? %0.1 = LdVar depth, e0.0
  52031. val %0.2 = Force %0.1, e0.0
  52032. real$' %0.3 = LdConst [1] 1
  52033. goto BB1
  52034. BB1
  52035. val %1.0 = Sub %0.2, %0.3, e0.0
  52036. void Return %1.0
  52037. Prom 3:
  52038. BB0
  52039. env e0.0 = LdFunctionEnv
  52040. val^? %0.1 = LdVar random, e0.0
  52041. val %0.2 = Force %0.1, e0.0
  52042. void Return %0.2
  52043. Prom 4:
  52044. BB0
  52045. env e0.0 = LdFunctionEnv
  52046. cls %0.1 = LdFun nextRandom, e0.0
  52047. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52048. t %0.3 = Identical %0.1, %0.2
  52049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52050. BB2
  52051. void Assume %0.3, %0.4
  52052. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52053. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() %2.1, e0.0
  52054. real$' %2.3 = LdConst [1] 10
  52055. goto BB3
  52056. BB1
  52057. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52058. void Deopt %1.0
  52059. BB3
  52060. val %3.0 = Force %2.2, e0.0
  52061. val %3.1 = Mod %3.0, %2.3, e0.0
  52062. real$' %3.2 = LdConst [1] 1
  52063. goto BB4
  52064. BB4
  52065. val %4.0 = Add %3.1, %3.2, e0.0
  52066. void Return %4.0
  52067. ├────── Cleanup framestates unused by checkpoints: == 533
  52068. test>buildTreeDepth@91[0x7f92445596d0]
  52069. BB0
  52070. val^ %0.0 = LdArg 0
  52071. val^ %0.1 = LdArg 1
  52072. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52073. val %0.3 = Force! %0.0, e0.2
  52074. real$' %0.4 = LdConst [1] 1
  52075. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52076. BB2
  52077. t %2.0 = IsObject %0.3
  52078. void AssumeNot %2.0, %0.5
  52079. lgl' %2.2 = Eq %0.3, %0.4, elided
  52080. lgl %2.3 = AsLogical %2.2
  52081. t %2.4 = AsTest %2.3
  52082. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52083. BB1
  52084. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52085. void Deopt %1.0
  52086. BB11
  52087. cls %11.0 = LdFun c, e0.2
  52088. prom %11.1 = MkArg missing, Prom(4), e0.2
  52089. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  52090. val^ %11.3 = Call %11.0(%11.1) e0.2
  52091. goto BB12
  52092. BB3
  52093. cls %3.0 = LdFun vector, e0.2
  52094. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52095. BB12
  52096. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  52097. val %12.1 = Force %12.0, e0.2
  52098. void Return %12.1
  52099. BB5
  52100. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52101. t %5.1 = Identical %3.0, %5.0
  52102. void Assume %5.1, %3.1
  52103. str$' %5.3 = LdConst [1] "list"
  52104. real$' %5.4 = LdConst [1] 4
  52105. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  52106. void StVar array, %5.5, e0.2
  52107. real$' %5.7 = LdConst [1] 1
  52108. real$' %5.8 = LdConst [1] 4
  52109. val' %5.9 = Colon %5.7, %5.8, elided
  52110. val' %5.10 = SetShared %5.9
  52111. int$' %5.11 = ForSeqSize %5.10
  52112. int$' %5.12 = LdConst [1] 0
  52113. goto BB6
  52114. BB4
  52115. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52116. void Deopt %4.0
  52117. BB6
  52118. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  52119. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52120. int$' %6.2 = Inc %6.1
  52121. int$' %6.3 = EnsureNamed %6.2
  52122. lgl' %6.4 = Lt %5.11, %6.3, elided
  52123. t %6.5 = AsTest %6.4
  52124. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52125. BB10
  52126. goto BB12
  52127. BB7
  52128. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52129. void StVar i, %7.0, e0.2
  52130. cls %7.2 = LdFun buildTreeDepth, e0.2
  52131. prom %7.3 = MkArg missing, Prom(2), e0.2
  52132. prom %7.4 = MkArg missing, Prom(3), e0.2
  52133. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52134. BB9
  52135. cls' %9.0 = LdConst function (depth, random) { if (d...
  52136. t %9.1 = Identical %7.2, %9.0
  52137. void Assume %9.1, %7.5
  52138. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  52139. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  52140. val^? %9.5 = LdVar array, e0.2
  52141. val %9.6 = Force %9.5, e0.2
  52142. val^? %9.7 = LdVar i, e0.2
  52143. val %9.8 = Force %9.7, e0.2
  52144. val^ %9.9 = EnsureNamed %9.4
  52145. val %9.10 = Force %9.9, e0.2
  52146. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  52147. void StVar array, %9.11, e0.2
  52148. goto BB6
  52149. BB8
  52150. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52151. void Deopt %8.0
  52152. Prom 2:
  52153. BB0
  52154. env e0.0 = LdFunctionEnv
  52155. val^? %0.1 = LdVar depth, e0.0
  52156. val %0.2 = Force %0.1, e0.0
  52157. real$' %0.3 = LdConst [1] 1
  52158. goto BB1
  52159. BB1
  52160. val %1.0 = Sub %0.2, %0.3, e0.0
  52161. void Return %1.0
  52162. Prom 3:
  52163. BB0
  52164. env e0.0 = LdFunctionEnv
  52165. val^? %0.1 = LdVar random, e0.0
  52166. val %0.2 = Force %0.1, e0.0
  52167. void Return %0.2
  52168. Prom 4:
  52169. BB0
  52170. env e0.0 = LdFunctionEnv
  52171. cls %0.1 = LdFun nextRandom, e0.0
  52172. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52173. t %0.3 = Identical %0.1, %0.2
  52174. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52175. BB2
  52176. void Assume %0.3, %0.4
  52177. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52178. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  52179. real$' %2.3 = LdConst [1] 10
  52180. goto BB3
  52181. BB1
  52182. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52183. void Deopt %1.0
  52184. BB3
  52185. val %3.0 = Force %2.2, e0.0
  52186. val %3.1 = Mod %3.0, %2.3, e0.0
  52187. real$' %3.2 = LdConst [1] 1
  52188. goto BB4
  52189. BB4
  52190. val %4.0 = Add %3.1, %3.2, e0.0
  52191. void Return %4.0
  52192. ├────── Inline Promises: == 540
  52193. test>buildTreeDepth@91[0x7f92445596d0]
  52194. BB0
  52195. val^ %0.0 = LdArg 0
  52196. val^ %0.1 = LdArg 1
  52197. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52198. val %0.3 = Force! %0.0, e0.2
  52199. real$' %0.4 = LdConst [1] 1
  52200. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52201. BB2
  52202. t %2.0 = IsObject %0.3
  52203. void AssumeNot %2.0, %0.5
  52204. lgl' %2.2 = Eq %0.3, %0.4, elided
  52205. lgl %2.3 = AsLogical %2.2
  52206. t %2.4 = AsTest %2.3
  52207. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52208. BB1
  52209. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52210. void Deopt %1.0
  52211. BB11
  52212. cls %11.0 = LdFun c, e0.2
  52213. prom %11.1 = MkArg missing, Prom(4), e0.2
  52214. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  52215. val^ %11.3 = Call %11.0(%11.1) e0.2
  52216. goto BB12
  52217. BB3
  52218. cls %3.0 = LdFun vector, e0.2
  52219. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52220. BB12
  52221. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  52222. val %12.1 = Force %12.0, e0.2
  52223. void Return %12.1
  52224. BB5
  52225. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52226. t %5.1 = Identical %3.0, %5.0
  52227. void Assume %5.1, %3.1
  52228. str$' %5.3 = LdConst [1] "list"
  52229. real$' %5.4 = LdConst [1] 4
  52230. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  52231. void StVar array, %5.5, e0.2
  52232. real$' %5.7 = LdConst [1] 1
  52233. real$' %5.8 = LdConst [1] 4
  52234. val' %5.9 = Colon %5.7, %5.8, elided
  52235. val' %5.10 = SetShared %5.9
  52236. int$' %5.11 = ForSeqSize %5.10
  52237. int$' %5.12 = LdConst [1] 0
  52238. goto BB6
  52239. BB4
  52240. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52241. void Deopt %4.0
  52242. BB6
  52243. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  52244. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52245. int$' %6.2 = Inc %6.1
  52246. int$' %6.3 = EnsureNamed %6.2
  52247. lgl' %6.4 = Lt %5.11, %6.3, elided
  52248. t %6.5 = AsTest %6.4
  52249. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52250. BB10
  52251. goto BB12
  52252. BB7
  52253. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52254. void StVar i, %7.0, e0.2
  52255. cls %7.2 = LdFun buildTreeDepth, e0.2
  52256. prom %7.3 = MkArg missing, Prom(2), e0.2
  52257. prom %7.4 = MkArg missing, Prom(3), e0.2
  52258. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52259. BB9
  52260. cls' %9.0 = LdConst function (depth, random) { if (d...
  52261. t %9.1 = Identical %7.2, %9.0
  52262. void Assume %9.1, %7.5
  52263. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  52264. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  52265. val^? %9.5 = LdVar array, e0.2
  52266. val %9.6 = Force %9.5, e0.2
  52267. val^? %9.7 = LdVar i, e0.2
  52268. val %9.8 = Force %9.7, e0.2
  52269. val^ %9.9 = EnsureNamed %9.4
  52270. val %9.10 = Force %9.9, e0.2
  52271. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  52272. void StVar array, %9.11, e0.2
  52273. goto BB6
  52274. BB8
  52275. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52276. void Deopt %8.0
  52277. Prom 2:
  52278. BB0
  52279. env e0.0 = LdFunctionEnv
  52280. val^? %0.1 = LdVar depth, e0.0
  52281. val %0.2 = Force %0.1, e0.0
  52282. real$' %0.3 = LdConst [1] 1
  52283. goto BB1
  52284. BB1
  52285. val %1.0 = Sub %0.2, %0.3, e0.0
  52286. void Return %1.0
  52287. Prom 3:
  52288. BB0
  52289. env e0.0 = LdFunctionEnv
  52290. val^? %0.1 = LdVar random, e0.0
  52291. val %0.2 = Force %0.1, e0.0
  52292. void Return %0.2
  52293. Prom 4:
  52294. BB0
  52295. env e0.0 = LdFunctionEnv
  52296. cls %0.1 = LdFun nextRandom, e0.0
  52297. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52298. t %0.3 = Identical %0.1, %0.2
  52299. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52300. BB2
  52301. void Assume %0.3, %0.4
  52302. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52303. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  52304. real$' %2.3 = LdConst [1] 10
  52305. goto BB3
  52306. BB1
  52307. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52308. void Deopt %1.0
  52309. BB3
  52310. val %3.0 = Force %2.2, e0.0
  52311. val %3.1 = Mod %3.0, %2.3, e0.0
  52312. real$' %3.2 = LdConst [1] 1
  52313. goto BB4
  52314. BB4
  52315. val %4.0 = Add %3.1, %3.2, e0.0
  52316. void Return %4.0
  52317. ├────── Scope resolution: == 547
  52318. test>buildTreeDepth@91[0x7f92445596d0]
  52319. BB0
  52320. val^ %0.0 = LdArg 0
  52321. val^ %0.1 = LdArg 1
  52322. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52323. val %0.3 = Force! %0.0, e0.2
  52324. real$' %0.4 = LdConst [1] 1
  52325. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52326. BB2
  52327. t %2.0 = IsObject %0.3
  52328. void AssumeNot %2.0, %0.5
  52329. lgl' %2.2 = Eq %0.3, %0.4, elided
  52330. lgl %2.3 = AsLogical %2.2
  52331. t %2.4 = AsTest %2.3
  52332. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52333. BB1
  52334. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52335. void Deopt %1.0
  52336. BB11
  52337. cls %11.0 = LdFun c, e0.2
  52338. prom %11.1 = MkArg missing, Prom(4), e0.2
  52339. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  52340. val^ %11.3 = Call %11.0(%11.1) e0.2
  52341. goto BB12
  52342. BB3
  52343. cls %3.0 = LdFun vector, e0.2
  52344. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52345. BB12
  52346. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  52347. val %12.1 = Force %12.0, e0.2
  52348. void Return %12.1
  52349. BB5
  52350. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52351. t %5.1 = Identical %3.0, %5.0
  52352. void Assume %5.1, %3.1
  52353. str$' %5.3 = LdConst [1] "list"
  52354. real$' %5.4 = LdConst [1] 4
  52355. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  52356. void StVar array, %5.5, e0.2
  52357. real$' %5.7 = LdConst [1] 1
  52358. real$' %5.8 = LdConst [1] 4
  52359. val' %5.9 = Colon %5.7, %5.8, elided
  52360. val' %5.10 = SetShared %5.9
  52361. int$' %5.11 = ForSeqSize %5.10
  52362. int$' %5.12 = LdConst [1] 0
  52363. goto BB6
  52364. BB4
  52365. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52366. void Deopt %4.0
  52367. BB6
  52368. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  52369. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52370. int$' %6.2 = Inc %6.1
  52371. int$' %6.3 = EnsureNamed %6.2
  52372. lgl' %6.4 = Lt %5.11, %6.3, elided
  52373. t %6.5 = AsTest %6.4
  52374. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52375. BB10
  52376. goto BB12
  52377. BB7
  52378. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52379. void StVar i, %7.0, e0.2
  52380. cls %7.2 = LdFun buildTreeDepth, e0.2
  52381. prom %7.3 = MkArg missing, Prom(2), e0.2
  52382. prom %7.4 = MkArg missing, Prom(3), e0.2
  52383. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52384. BB9
  52385. cls' %9.0 = LdConst function (depth, random) { if (d...
  52386. t %9.1 = Identical %7.2, %9.0
  52387. void Assume %9.1, %7.5
  52388. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  52389. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  52390. val^? %9.5 = LdVar array, e0.2
  52391. val %9.6 = Force %9.5, e0.2
  52392. val^? %9.7 = LdVar i, e0.2
  52393. val %9.8 = Force %9.7, e0.2
  52394. val^ %9.9 = EnsureNamed %9.4
  52395. val %9.10 = Force %9.9, e0.2
  52396. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  52397. void StVar array, %9.11, e0.2
  52398. goto BB6
  52399. BB8
  52400. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52401. void Deopt %8.0
  52402. Prom 2:
  52403. BB0
  52404. env e0.0 = LdFunctionEnv
  52405. val^? %0.1 = LdVar depth, e0.0
  52406. val %0.2 = Force %0.1, e0.0
  52407. real$' %0.3 = LdConst [1] 1
  52408. goto BB1
  52409. BB1
  52410. val %1.0 = Sub %0.2, %0.3, e0.0
  52411. void Return %1.0
  52412. Prom 3:
  52413. BB0
  52414. env e0.0 = LdFunctionEnv
  52415. val^? %0.1 = LdVar random, e0.0
  52416. val %0.2 = Force %0.1, e0.0
  52417. void Return %0.2
  52418. Prom 4:
  52419. BB0
  52420. env e0.0 = LdFunctionEnv
  52421. cls %0.1 = LdFun nextRandom, e0.0
  52422. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52423. t %0.3 = Identical %0.1, %0.2
  52424. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52425. BB2
  52426. void Assume %0.3, %0.4
  52427. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52428. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  52429. real$' %2.3 = LdConst [1] 10
  52430. goto BB3
  52431. BB1
  52432. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52433. void Deopt %1.0
  52434. BB3
  52435. val %3.0 = Force %2.2, e0.0
  52436. val %3.1 = Mod %3.0, %2.3, e0.0
  52437. real$' %3.2 = LdConst [1] 1
  52438. goto BB4
  52439. BB4
  52440. val %4.0 = Add %3.1, %3.2, e0.0
  52441. void Return %4.0
  52442. ├────── Constant folding: == 554
  52443. test>buildTreeDepth@91[0x7f92445596d0]
  52444. BB0
  52445. val^ %0.0 = LdArg 0
  52446. val^ %0.1 = LdArg 1
  52447. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52448. val %0.3 = Force! %0.0, e0.2
  52449. real$' %0.4 = LdConst [1] 1
  52450. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52451. BB2
  52452. t %2.0 = IsObject %0.3
  52453. void AssumeNot %2.0, %0.5
  52454. lgl' %2.2 = Eq %0.3, %0.4, elided
  52455. lgl %2.3 = AsLogical %2.2
  52456. t %2.4 = AsTest %2.3
  52457. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52458. BB1
  52459. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52460. void Deopt %1.0
  52461. BB11
  52462. cls %11.0 = LdFun c, e0.2
  52463. prom %11.1 = MkArg missing, Prom(4), e0.2
  52464. fs %11.2 = FrameState 0x7f924457f3d0+410: [], env=e0.2
  52465. val^ %11.3 = Call %11.0(%11.1) e0.2
  52466. goto BB12
  52467. BB3
  52468. cls %3.0 = LdFun vector, e0.2
  52469. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52470. BB12
  52471. val^ %12.0 = Phi %6.0:BB10, %11.3:BB11
  52472. val %12.1 = Force %12.0, e0.2
  52473. void Return %12.1
  52474. BB5
  52475. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52476. t %5.1 = Identical %3.0, %5.0
  52477. void Assume %5.1, %3.1
  52478. str$' %5.3 = LdConst [1] "list"
  52479. real$' %5.4 = LdConst [1] 4
  52480. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  52481. void StVar array, %5.5, e0.2
  52482. real$' %5.7 = LdConst [1] 1
  52483. real$' %5.8 = LdConst [1] 4
  52484. val' %5.9 = Colon %5.7, %5.8, elided
  52485. val' %5.10 = SetShared %5.9
  52486. int$' %5.11 = ForSeqSize %5.10
  52487. int$' %5.12 = LdConst [1] 0
  52488. goto BB6
  52489. BB4
  52490. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52491. void Deopt %4.0
  52492. BB6
  52493. val %6.0 = Phi %5.5:BB5, %9.11:BB9
  52494. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52495. int$' %6.2 = Inc %6.1
  52496. int$' %6.3 = EnsureNamed %6.2
  52497. lgl' %6.4 = Lt %5.11, %6.3, elided
  52498. t %6.5 = AsTest %6.4
  52499. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52500. BB10
  52501. goto BB12
  52502. BB7
  52503. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52504. void StVar i, %7.0, e0.2
  52505. cls %7.2 = LdFun buildTreeDepth, e0.2
  52506. prom %7.3 = MkArg missing, Prom(2), e0.2
  52507. prom %7.4 = MkArg missing, Prom(3), e0.2
  52508. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52509. BB9
  52510. cls' %9.0 = LdConst function (depth, random) { if (d...
  52511. t %9.1 = Identical %7.2, %9.0
  52512. void Assume %9.1, %7.5
  52513. fs %9.3 = FrameState 0x7f924457f3d0+290: [%5.10, %5.11, %6.3], env=e0.2
  52514. val^ %9.4 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  52515. val^? %9.5 = LdVar array, e0.2
  52516. val %9.6 = Force %9.5, e0.2
  52517. val^? %9.7 = LdVar i, e0.2
  52518. val %9.8 = Force %9.7, e0.2
  52519. val^ %9.9 = EnsureNamed %9.4
  52520. val %9.10 = Force %9.9, e0.2
  52521. val %9.11 = Subassign2_1D %9.10, %9.6, %9.8, e0.2
  52522. void StVar array, %9.11, e0.2
  52523. goto BB6
  52524. BB8
  52525. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52526. void Deopt %8.0
  52527. Prom 2:
  52528. BB0
  52529. env e0.0 = LdFunctionEnv
  52530. val^? %0.1 = LdVar depth, e0.0
  52531. val %0.2 = Force %0.1, e0.0
  52532. real$' %0.3 = LdConst [1] 1
  52533. goto BB1
  52534. BB1
  52535. val %1.0 = Sub %0.2, %0.3, e0.0
  52536. void Return %1.0
  52537. Prom 3:
  52538. BB0
  52539. env e0.0 = LdFunctionEnv
  52540. val^? %0.1 = LdVar random, e0.0
  52541. val %0.2 = Force %0.1, e0.0
  52542. void Return %0.2
  52543. Prom 4:
  52544. BB0
  52545. env e0.0 = LdFunctionEnv
  52546. cls %0.1 = LdFun nextRandom, e0.0
  52547. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52548. t %0.3 = Identical %0.1, %0.2
  52549. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52550. BB2
  52551. void Assume %0.3, %0.4
  52552. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52553. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  52554. real$' %2.3 = LdConst [1] 10
  52555. goto BB3
  52556. BB1
  52557. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52558. void Deopt %1.0
  52559. BB3
  52560. val %3.0 = Force %2.2, e0.0
  52561. val %3.1 = Mod %3.0, %2.3, e0.0
  52562. real$' %3.2 = LdConst [1] 1
  52563. goto BB4
  52564. BB4
  52565. val %4.0 = Add %3.1, %3.2, e0.0
  52566. void Return %4.0
  52567. ├────── Cleanup redundant operations: == 561
  52568. test>buildTreeDepth@91[0x7f92445596d0]
  52569. BB0
  52570. val^ %0.0 = LdArg 0
  52571. val^ %0.1 = LdArg 1
  52572. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52573. val %0.3 = Force! %0.0, e0.2
  52574. real$' %0.4 = LdConst [1] 1
  52575. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52576. BB2
  52577. t %2.0 = IsObject %0.3
  52578. void AssumeNot %2.0, %0.5
  52579. lgl' %2.2 = Eq %0.3, %0.4, elided
  52580. lgl %2.3 = AsLogical %2.2
  52581. t %2.4 = AsTest %2.3
  52582. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52583. BB1
  52584. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52585. void Deopt %1.0
  52586. BB11
  52587. cls %11.0 = LdFun c, e0.2
  52588. prom %11.1 = MkArg missing, Prom(4), e0.2
  52589. val^ %11.2 = Call %11.0(%11.1) e0.2
  52590. goto BB12
  52591. BB3
  52592. cls %3.0 = LdFun vector, e0.2
  52593. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52594. BB12
  52595. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  52596. val %12.1 = Force %12.0, e0.2
  52597. void Return %12.1
  52598. BB5
  52599. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52600. t %5.1 = Identical %3.0, %5.0
  52601. void Assume %5.1, %3.1
  52602. str$' %5.3 = LdConst [1] "list"
  52603. real$' %5.4 = LdConst [1] 4
  52604. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  52605. void StVar array, %5.5, e0.2
  52606. real$' %5.7 = LdConst [1] 1
  52607. real$' %5.8 = LdConst [1] 4
  52608. val' %5.9 = Colon %5.7, %5.8, elided
  52609. val' %5.10 = SetShared %5.9
  52610. int$' %5.11 = ForSeqSize %5.10
  52611. int$' %5.12 = LdConst [1] 0
  52612. goto BB6
  52613. BB4
  52614. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52615. void Deopt %4.0
  52616. BB6
  52617. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  52618. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52619. int$' %6.2 = Inc %6.1
  52620. int$' %6.3 = EnsureNamed %6.2
  52621. lgl' %6.4 = Lt %5.11, %6.3, elided
  52622. t %6.5 = AsTest %6.4
  52623. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52624. BB10
  52625. goto BB12
  52626. BB7
  52627. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52628. void StVar i, %7.0, e0.2
  52629. cls %7.2 = LdFun buildTreeDepth, e0.2
  52630. prom %7.3 = MkArg missing, Prom(2), e0.2
  52631. prom %7.4 = MkArg missing, Prom(3), e0.2
  52632. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52633. BB9
  52634. cls' %9.0 = LdConst function (depth, random) { if (d...
  52635. t %9.1 = Identical %7.2, %9.0
  52636. void Assume %9.1, %7.5
  52637. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  52638. val^? %9.4 = LdVar array, e0.2
  52639. val %9.5 = Force %9.4, e0.2
  52640. val^? %9.6 = LdVar i, e0.2
  52641. val %9.7 = Force %9.6, e0.2
  52642. val^ %9.8 = EnsureNamed %9.3
  52643. val %9.9 = Force %9.8, e0.2
  52644. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  52645. void StVar array, %9.10, e0.2
  52646. goto BB6
  52647. BB8
  52648. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52649. void Deopt %8.0
  52650. Prom 2:
  52651. BB0
  52652. env e0.0 = LdFunctionEnv
  52653. val^? %0.1 = LdVar depth, e0.0
  52654. val %0.2 = Force %0.1, e0.0
  52655. real$' %0.3 = LdConst [1] 1
  52656. goto BB1
  52657. BB1
  52658. val %1.0 = Sub %0.2, %0.3, e0.0
  52659. void Return %1.0
  52660. Prom 3:
  52661. BB0
  52662. env e0.0 = LdFunctionEnv
  52663. val^? %0.1 = LdVar random, e0.0
  52664. val %0.2 = Force %0.1, e0.0
  52665. void Return %0.2
  52666. Prom 4:
  52667. BB0
  52668. env e0.0 = LdFunctionEnv
  52669. cls %0.1 = LdFun nextRandom, e0.0
  52670. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52671. t %0.3 = Identical %0.1, %0.2
  52672. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52673. BB2
  52674. void Assume %0.3, %0.4
  52675. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52676. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  52677. real$' %2.3 = LdConst [1] 10
  52678. goto BB3
  52679. BB1
  52680. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52681. void Deopt %1.0
  52682. BB3
  52683. val %3.0 = Force %2.2, e0.0
  52684. val %3.1 = Mod %3.0, %2.3, e0.0
  52685. real$' %3.2 = LdConst [1] 1
  52686. goto BB4
  52687. BB4
  52688. val %4.0 = Add %3.1, %3.2, e0.0
  52689. void Return %4.0
  52690. ├────── Delay instructions: == 568
  52691. test>buildTreeDepth@91[0x7f92445596d0]
  52692. BB0
  52693. val^ %0.0 = LdArg 0
  52694. val^ %0.1 = LdArg 1
  52695. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52696. val %0.3 = Force! %0.0, e0.2
  52697. real$' %0.4 = LdConst [1] 1
  52698. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52699. BB2
  52700. t %2.0 = IsObject %0.3
  52701. void AssumeNot %2.0, %0.5
  52702. lgl' %2.2 = Eq %0.3, %0.4, elided
  52703. lgl %2.3 = AsLogical %2.2
  52704. t %2.4 = AsTest %2.3
  52705. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52706. BB1
  52707. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52708. void Deopt %1.0
  52709. BB11
  52710. cls %11.0 = LdFun c, e0.2
  52711. prom %11.1 = MkArg missing, Prom(4), e0.2
  52712. val^ %11.2 = Call %11.0(%11.1) e0.2
  52713. goto BB12
  52714. BB3
  52715. cls %3.0 = LdFun vector, e0.2
  52716. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52717. BB12
  52718. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  52719. val %12.1 = Force %12.0, e0.2
  52720. void Return %12.1
  52721. BB5
  52722. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52723. t %5.1 = Identical %3.0, %5.0
  52724. void Assume %5.1, %3.1
  52725. real$' %5.3 = LdConst [1] 4
  52726. str$' %5.4 = LdConst [1] "list"
  52727. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  52728. void StVar array, %5.5, e0.2
  52729. real$' %5.7 = LdConst [1] 4
  52730. real$' %5.8 = LdConst [1] 1
  52731. val' %5.9 = Colon %5.8, %5.7, elided
  52732. val' %5.10 = SetShared %5.9
  52733. int$' %5.11 = ForSeqSize %5.10
  52734. int$' %5.12 = LdConst [1] 0
  52735. goto BB6
  52736. BB4
  52737. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52738. void Deopt %4.0
  52739. BB6
  52740. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  52741. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52742. int$' %6.2 = Inc %6.1
  52743. int$' %6.3 = EnsureNamed %6.2
  52744. lgl' %6.4 = Lt %5.11, %6.3, elided
  52745. t %6.5 = AsTest %6.4
  52746. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52747. BB10
  52748. goto BB12
  52749. BB7
  52750. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52751. void StVar i, %7.0, e0.2
  52752. cls %7.2 = LdFun buildTreeDepth, e0.2
  52753. prom %7.3 = MkArg missing, Prom(2), e0.2
  52754. prom %7.4 = MkArg missing, Prom(3), e0.2
  52755. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52756. BB9
  52757. cls' %9.0 = LdConst function (depth, random) { if (d...
  52758. t %9.1 = Identical %7.2, %9.0
  52759. void Assume %9.1, %7.5
  52760. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  52761. val^? %9.4 = LdVar array, e0.2
  52762. val %9.5 = Force %9.4, e0.2
  52763. val^? %9.6 = LdVar i, e0.2
  52764. val %9.7 = Force %9.6, e0.2
  52765. val^ %9.8 = EnsureNamed %9.3
  52766. val %9.9 = Force %9.8, e0.2
  52767. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  52768. void StVar array, %9.10, e0.2
  52769. goto BB6
  52770. BB8
  52771. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52772. void Deopt %8.0
  52773. Prom 2:
  52774. BB0
  52775. env e0.0 = LdFunctionEnv
  52776. val^? %0.1 = LdVar depth, e0.0
  52777. val %0.2 = Force %0.1, e0.0
  52778. real$' %0.3 = LdConst [1] 1
  52779. goto BB1
  52780. BB1
  52781. val %1.0 = Sub %0.2, %0.3, e0.0
  52782. void Return %1.0
  52783. Prom 3:
  52784. BB0
  52785. env e0.0 = LdFunctionEnv
  52786. val^? %0.1 = LdVar random, e0.0
  52787. val %0.2 = Force %0.1, e0.0
  52788. void Return %0.2
  52789. Prom 4:
  52790. BB0
  52791. env e0.0 = LdFunctionEnv
  52792. cls %0.1 = LdFun nextRandom, e0.0
  52793. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52794. t %0.3 = Identical %0.1, %0.2
  52795. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52796. BB2
  52797. void Assume %0.3, %0.4
  52798. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52799. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  52800. real$' %2.3 = LdConst [1] 10
  52801. goto BB3
  52802. BB1
  52803. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52804. void Deopt %1.0
  52805. BB3
  52806. val %3.0 = Force %2.2, e0.0
  52807. val %3.1 = Mod %3.0, %2.3, e0.0
  52808. real$' %3.2 = LdConst [1] 1
  52809. goto BB4
  52810. BB4
  52811. val %4.0 = Add %3.1, %3.2, e0.0
  52812. void Return %4.0
  52813. ├────── Elide environments not needed: == 575
  52814. test>buildTreeDepth@91[0x7f92445596d0]
  52815. BB0
  52816. val^ %0.0 = LdArg 0
  52817. val^ %0.1 = LdArg 1
  52818. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52819. val %0.3 = Force! %0.0, e0.2
  52820. real$' %0.4 = LdConst [1] 1
  52821. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52822. BB2
  52823. t %2.0 = IsObject %0.3
  52824. void AssumeNot %2.0, %0.5
  52825. lgl' %2.2 = Eq %0.3, %0.4, elided
  52826. lgl %2.3 = AsLogical %2.2
  52827. t %2.4 = AsTest %2.3
  52828. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52829. BB1
  52830. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52831. void Deopt %1.0
  52832. BB11
  52833. cls %11.0 = LdFun c, e0.2
  52834. prom %11.1 = MkArg missing, Prom(4), e0.2
  52835. val^ %11.2 = Call %11.0(%11.1) e0.2
  52836. goto BB12
  52837. BB3
  52838. cls %3.0 = LdFun vector, e0.2
  52839. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52840. BB12
  52841. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  52842. val %12.1 = Force %12.0, e0.2
  52843. void Return %12.1
  52844. BB5
  52845. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52846. t %5.1 = Identical %3.0, %5.0
  52847. void Assume %5.1, %3.1
  52848. real$' %5.3 = LdConst [1] 4
  52849. str$' %5.4 = LdConst [1] "list"
  52850. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  52851. void StVar array, %5.5, e0.2
  52852. real$' %5.7 = LdConst [1] 4
  52853. real$' %5.8 = LdConst [1] 1
  52854. val' %5.9 = Colon %5.8, %5.7, elided
  52855. val' %5.10 = SetShared %5.9
  52856. int$' %5.11 = ForSeqSize %5.10
  52857. int$' %5.12 = LdConst [1] 0
  52858. goto BB6
  52859. BB4
  52860. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52861. void Deopt %4.0
  52862. BB6
  52863. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  52864. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52865. int$' %6.2 = Inc %6.1
  52866. int$' %6.3 = EnsureNamed %6.2
  52867. lgl' %6.4 = Lt %5.11, %6.3, elided
  52868. t %6.5 = AsTest %6.4
  52869. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52870. BB10
  52871. goto BB12
  52872. BB7
  52873. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52874. void StVar i, %7.0, e0.2
  52875. cls %7.2 = LdFun buildTreeDepth, e0.2
  52876. prom %7.3 = MkArg missing, Prom(2), e0.2
  52877. prom %7.4 = MkArg missing, Prom(3), e0.2
  52878. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  52879. BB9
  52880. cls' %9.0 = LdConst function (depth, random) { if (d...
  52881. t %9.1 = Identical %7.2, %9.0
  52882. void Assume %9.1, %7.5
  52883. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  52884. val^? %9.4 = LdVar array, e0.2
  52885. val %9.5 = Force %9.4, e0.2
  52886. val^? %9.6 = LdVar i, e0.2
  52887. val %9.7 = Force %9.6, e0.2
  52888. val^ %9.8 = EnsureNamed %9.3
  52889. val %9.9 = Force %9.8, e0.2
  52890. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  52891. void StVar array, %9.10, e0.2
  52892. goto BB6
  52893. BB8
  52894. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  52895. void Deopt %8.0
  52896. Prom 2:
  52897. BB0
  52898. env e0.0 = LdFunctionEnv
  52899. val^? %0.1 = LdVar depth, e0.0
  52900. val %0.2 = Force %0.1, e0.0
  52901. real$' %0.3 = LdConst [1] 1
  52902. goto BB1
  52903. BB1
  52904. val %1.0 = Sub %0.2, %0.3, e0.0
  52905. void Return %1.0
  52906. Prom 3:
  52907. BB0
  52908. env e0.0 = LdFunctionEnv
  52909. val^? %0.1 = LdVar random, e0.0
  52910. val %0.2 = Force %0.1, e0.0
  52911. void Return %0.2
  52912. Prom 4:
  52913. BB0
  52914. env e0.0 = LdFunctionEnv
  52915. cls %0.1 = LdFun nextRandom, e0.0
  52916. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  52917. t %0.3 = Identical %0.1, %0.2
  52918. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52919. BB2
  52920. void Assume %0.3, %0.4
  52921. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  52922. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  52923. real$' %2.3 = LdConst [1] 10
  52924. goto BB3
  52925. BB1
  52926. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  52927. void Deopt %1.0
  52928. BB3
  52929. val %3.0 = Force %2.2, e0.0
  52930. val %3.1 = Mod %3.0, %2.3, e0.0
  52931. real$' %3.2 = LdConst [1] 1
  52932. goto BB4
  52933. BB4
  52934. val %4.0 = Add %3.1, %3.2, e0.0
  52935. void Return %4.0
  52936. ├────── Move environment creation as far as possible: == 582
  52937. test>buildTreeDepth@91[0x7f92445596d0]
  52938. BB0
  52939. val^ %0.0 = LdArg 0
  52940. val^ %0.1 = LdArg 1
  52941. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  52942. val %0.3 = Force! %0.0, e0.2
  52943. real$' %0.4 = LdConst [1] 1
  52944. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  52945. BB2
  52946. t %2.0 = IsObject %0.3
  52947. void AssumeNot %2.0, %0.5
  52948. lgl' %2.2 = Eq %0.3, %0.4, elided
  52949. lgl %2.3 = AsLogical %2.2
  52950. t %2.4 = AsTest %2.3
  52951. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  52952. BB1
  52953. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  52954. void Deopt %1.0
  52955. BB11
  52956. cls %11.0 = LdFun c, e0.2
  52957. prom %11.1 = MkArg missing, Prom(4), e0.2
  52958. val^ %11.2 = Call %11.0(%11.1) e0.2
  52959. goto BB12
  52960. BB3
  52961. cls %3.0 = LdFun vector, e0.2
  52962. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  52963. BB12
  52964. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  52965. val %12.1 = Force %12.0, e0.2
  52966. void Return %12.1
  52967. BB5
  52968. cls' %5.0 = LdConst function (mode = "logical", length = ...
  52969. t %5.1 = Identical %3.0, %5.0
  52970. void Assume %5.1, %3.1
  52971. real$' %5.3 = LdConst [1] 4
  52972. str$' %5.4 = LdConst [1] "list"
  52973. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  52974. void StVar array, %5.5, e0.2
  52975. real$' %5.7 = LdConst [1] 4
  52976. real$' %5.8 = LdConst [1] 1
  52977. val' %5.9 = Colon %5.8, %5.7, elided
  52978. val' %5.10 = SetShared %5.9
  52979. int$' %5.11 = ForSeqSize %5.10
  52980. int$' %5.12 = LdConst [1] 0
  52981. goto BB6
  52982. BB4
  52983. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  52984. void Deopt %4.0
  52985. BB6
  52986. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  52987. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  52988. int$' %6.2 = Inc %6.1
  52989. int$' %6.3 = EnsureNamed %6.2
  52990. lgl' %6.4 = Lt %5.11, %6.3, elided
  52991. t %6.5 = AsTest %6.4
  52992. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  52993. BB10
  52994. goto BB12
  52995. BB7
  52996. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  52997. void StVar i, %7.0, e0.2
  52998. cls %7.2 = LdFun buildTreeDepth, e0.2
  52999. prom %7.3 = MkArg missing, Prom(2), e0.2
  53000. prom %7.4 = MkArg missing, Prom(3), e0.2
  53001. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53002. BB9
  53003. cls' %9.0 = LdConst function (depth, random) { if (d...
  53004. t %9.1 = Identical %7.2, %9.0
  53005. void Assume %9.1, %7.5
  53006. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53007. val^? %9.4 = LdVar array, e0.2
  53008. val %9.5 = Force %9.4, e0.2
  53009. val^? %9.6 = LdVar i, e0.2
  53010. val %9.7 = Force %9.6, e0.2
  53011. val^ %9.8 = EnsureNamed %9.3
  53012. val %9.9 = Force %9.8, e0.2
  53013. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53014. void StVar array, %9.10, e0.2
  53015. goto BB6
  53016. BB8
  53017. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53018. void Deopt %8.0
  53019. Prom 2:
  53020. BB0
  53021. env e0.0 = LdFunctionEnv
  53022. val^? %0.1 = LdVar depth, e0.0
  53023. val %0.2 = Force %0.1, e0.0
  53024. real$' %0.3 = LdConst [1] 1
  53025. goto BB1
  53026. BB1
  53027. val %1.0 = Sub %0.2, %0.3, e0.0
  53028. void Return %1.0
  53029. Prom 3:
  53030. BB0
  53031. env e0.0 = LdFunctionEnv
  53032. val^? %0.1 = LdVar random, e0.0
  53033. val %0.2 = Force %0.1, e0.0
  53034. void Return %0.2
  53035. Prom 4:
  53036. BB0
  53037. env e0.0 = LdFunctionEnv
  53038. cls %0.1 = LdFun nextRandom, e0.0
  53039. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53040. t %0.3 = Identical %0.1, %0.2
  53041. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53042. BB2
  53043. void Assume %0.3, %0.4
  53044. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53045. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53046. real$' %2.3 = LdConst [1] 10
  53047. goto BB3
  53048. BB1
  53049. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53050. void Deopt %1.0
  53051. BB3
  53052. val %3.0 = Force %2.2, e0.0
  53053. val %3.1 = Mod %3.0, %2.3, e0.0
  53054. real$' %3.2 = LdConst [1] 1
  53055. goto BB4
  53056. BB4
  53057. val %4.0 = Add %3.1, %3.2, e0.0
  53058. void Return %4.0
  53059. ├────── Cleanup redundant operations: == 589
  53060. test>buildTreeDepth@91[0x7f92445596d0]
  53061. BB0
  53062. val^ %0.0 = LdArg 0
  53063. val^ %0.1 = LdArg 1
  53064. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53065. val %0.3 = Force! %0.0, e0.2
  53066. real$' %0.4 = LdConst [1] 1
  53067. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53068. BB2
  53069. t %2.0 = IsObject %0.3
  53070. void AssumeNot %2.0, %0.5
  53071. lgl' %2.2 = Eq %0.3, %0.4, elided
  53072. lgl %2.3 = AsLogical %2.2
  53073. t %2.4 = AsTest %2.3
  53074. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53075. BB1
  53076. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53077. void Deopt %1.0
  53078. BB11
  53079. cls %11.0 = LdFun c, e0.2
  53080. prom %11.1 = MkArg missing, Prom(4), e0.2
  53081. val^ %11.2 = Call %11.0(%11.1) e0.2
  53082. goto BB12
  53083. BB3
  53084. cls %3.0 = LdFun vector, e0.2
  53085. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53086. BB12
  53087. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53088. val %12.1 = Force %12.0, e0.2
  53089. void Return %12.1
  53090. BB5
  53091. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53092. t %5.1 = Identical %3.0, %5.0
  53093. void Assume %5.1, %3.1
  53094. real$' %5.3 = LdConst [1] 4
  53095. str$' %5.4 = LdConst [1] "list"
  53096. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  53097. void StVar array, %5.5, e0.2
  53098. real$' %5.7 = LdConst [1] 4
  53099. real$' %5.8 = LdConst [1] 1
  53100. val' %5.9 = Colon %5.8, %5.7, elided
  53101. val' %5.10 = SetShared %5.9
  53102. int$' %5.11 = ForSeqSize %5.10
  53103. int$' %5.12 = LdConst [1] 0
  53104. goto BB6
  53105. BB4
  53106. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53107. void Deopt %4.0
  53108. BB6
  53109. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53110. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53111. int$' %6.2 = Inc %6.1
  53112. int$' %6.3 = EnsureNamed %6.2
  53113. lgl' %6.4 = Lt %5.11, %6.3, elided
  53114. t %6.5 = AsTest %6.4
  53115. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53116. BB10
  53117. goto BB12
  53118. BB7
  53119. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53120. void StVar i, %7.0, e0.2
  53121. cls %7.2 = LdFun buildTreeDepth, e0.2
  53122. prom %7.3 = MkArg missing, Prom(2), e0.2
  53123. prom %7.4 = MkArg missing, Prom(3), e0.2
  53124. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53125. BB9
  53126. cls' %9.0 = LdConst function (depth, random) { if (d...
  53127. t %9.1 = Identical %7.2, %9.0
  53128. void Assume %9.1, %7.5
  53129. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53130. val^? %9.4 = LdVar array, e0.2
  53131. val %9.5 = Force %9.4, e0.2
  53132. val^? %9.6 = LdVar i, e0.2
  53133. val %9.7 = Force %9.6, e0.2
  53134. val^ %9.8 = EnsureNamed %9.3
  53135. val %9.9 = Force %9.8, e0.2
  53136. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53137. void StVar array, %9.10, e0.2
  53138. goto BB6
  53139. BB8
  53140. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53141. void Deopt %8.0
  53142. Prom 2:
  53143. BB0
  53144. env e0.0 = LdFunctionEnv
  53145. val^? %0.1 = LdVar depth, e0.0
  53146. val %0.2 = Force %0.1, e0.0
  53147. real$' %0.3 = LdConst [1] 1
  53148. goto BB1
  53149. BB1
  53150. val %1.0 = Sub %0.2, %0.3, e0.0
  53151. void Return %1.0
  53152. Prom 3:
  53153. BB0
  53154. env e0.0 = LdFunctionEnv
  53155. val^? %0.1 = LdVar random, e0.0
  53156. val %0.2 = Force %0.1, e0.0
  53157. void Return %0.2
  53158. Prom 4:
  53159. BB0
  53160. env e0.0 = LdFunctionEnv
  53161. cls %0.1 = LdFun nextRandom, e0.0
  53162. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53163. t %0.3 = Identical %0.1, %0.2
  53164. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53165. BB2
  53166. void Assume %0.3, %0.4
  53167. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53168. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53169. real$' %2.3 = LdConst [1] 10
  53170. goto BB3
  53171. BB1
  53172. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53173. void Deopt %1.0
  53174. BB3
  53175. val %3.0 = Force %2.2, e0.0
  53176. val %3.1 = Mod %3.0, %2.3, e0.0
  53177. real$' %3.2 = LdConst [1] 1
  53178. goto BB4
  53179. BB4
  53180. val %4.0 = Add %3.1, %3.2, e0.0
  53181. void Return %4.0
  53182. ├────── Inline closures: == 596
  53183. test>buildTreeDepth@91[0x7f92445596d0]
  53184. BB0
  53185. val^ %0.0 = LdArg 0
  53186. val^ %0.1 = LdArg 1
  53187. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53188. val %0.3 = Force! %0.0, e0.2
  53189. real$' %0.4 = LdConst [1] 1
  53190. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53191. BB2
  53192. t %2.0 = IsObject %0.3
  53193. void AssumeNot %2.0, %0.5
  53194. lgl' %2.2 = Eq %0.3, %0.4, elided
  53195. lgl %2.3 = AsLogical %2.2
  53196. t %2.4 = AsTest %2.3
  53197. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53198. BB1
  53199. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53200. void Deopt %1.0
  53201. BB11
  53202. cls %11.0 = LdFun c, e0.2
  53203. prom %11.1 = MkArg missing, Prom(4), e0.2
  53204. val^ %11.2 = Call %11.0(%11.1) e0.2
  53205. goto BB12
  53206. BB3
  53207. cls %3.0 = LdFun vector, e0.2
  53208. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53209. BB12
  53210. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53211. val %12.1 = Force %12.0, e0.2
  53212. void Return %12.1
  53213. BB5
  53214. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53215. t %5.1 = Identical %3.0, %5.0
  53216. void Assume %5.1, %3.1
  53217. real$' %5.3 = LdConst [1] 4
  53218. str$' %5.4 = LdConst [1] "list"
  53219. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  53220. void StVar array, %5.5, e0.2
  53221. real$' %5.7 = LdConst [1] 4
  53222. real$' %5.8 = LdConst [1] 1
  53223. val' %5.9 = Colon %5.8, %5.7, elided
  53224. val' %5.10 = SetShared %5.9
  53225. int$' %5.11 = ForSeqSize %5.10
  53226. int$' %5.12 = LdConst [1] 0
  53227. goto BB6
  53228. BB4
  53229. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53230. void Deopt %4.0
  53231. BB6
  53232. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53233. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53234. int$' %6.2 = Inc %6.1
  53235. int$' %6.3 = EnsureNamed %6.2
  53236. lgl' %6.4 = Lt %5.11, %6.3, elided
  53237. t %6.5 = AsTest %6.4
  53238. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53239. BB10
  53240. goto BB12
  53241. BB7
  53242. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53243. void StVar i, %7.0, e0.2
  53244. cls %7.2 = LdFun buildTreeDepth, e0.2
  53245. prom %7.3 = MkArg missing, Prom(2), e0.2
  53246. prom %7.4 = MkArg missing, Prom(3), e0.2
  53247. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53248. BB9
  53249. cls' %9.0 = LdConst function (depth, random) { if (d...
  53250. t %9.1 = Identical %7.2, %9.0
  53251. void Assume %9.1, %7.5
  53252. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53253. val^? %9.4 = LdVar array, e0.2
  53254. val %9.5 = Force %9.4, e0.2
  53255. val^? %9.6 = LdVar i, e0.2
  53256. val %9.7 = Force %9.6, e0.2
  53257. val^ %9.8 = EnsureNamed %9.3
  53258. val %9.9 = Force %9.8, e0.2
  53259. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53260. void StVar array, %9.10, e0.2
  53261. goto BB6
  53262. BB8
  53263. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53264. void Deopt %8.0
  53265. Prom 2:
  53266. BB0
  53267. env e0.0 = LdFunctionEnv
  53268. val^? %0.1 = LdVar depth, e0.0
  53269. val %0.2 = Force %0.1, e0.0
  53270. real$' %0.3 = LdConst [1] 1
  53271. goto BB1
  53272. BB1
  53273. val %1.0 = Sub %0.2, %0.3, e0.0
  53274. void Return %1.0
  53275. Prom 3:
  53276. BB0
  53277. env e0.0 = LdFunctionEnv
  53278. val^? %0.1 = LdVar random, e0.0
  53279. val %0.2 = Force %0.1, e0.0
  53280. void Return %0.2
  53281. Prom 4:
  53282. BB0
  53283. env e0.0 = LdFunctionEnv
  53284. cls %0.1 = LdFun nextRandom, e0.0
  53285. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53286. t %0.3 = Identical %0.1, %0.2
  53287. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53288. BB2
  53289. void Assume %0.3, %0.4
  53290. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53291. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53292. real$' %2.3 = LdConst [1] 10
  53293. goto BB3
  53294. BB1
  53295. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53296. void Deopt %1.0
  53297. BB3
  53298. val %3.0 = Force %2.2, e0.0
  53299. val %3.1 = Mod %3.0, %2.3, e0.0
  53300. real$' %3.2 = LdConst [1] 1
  53301. goto BB4
  53302. BB4
  53303. val %4.0 = Add %3.1, %3.2, e0.0
  53304. void Return %4.0
  53305. ├────── Inline Promises: == 603
  53306. test>buildTreeDepth@91[0x7f92445596d0]
  53307. BB0
  53308. val^ %0.0 = LdArg 0
  53309. val^ %0.1 = LdArg 1
  53310. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53311. val %0.3 = Force! %0.0, e0.2
  53312. real$' %0.4 = LdConst [1] 1
  53313. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53314. BB2
  53315. t %2.0 = IsObject %0.3
  53316. void AssumeNot %2.0, %0.5
  53317. lgl' %2.2 = Eq %0.3, %0.4, elided
  53318. lgl %2.3 = AsLogical %2.2
  53319. t %2.4 = AsTest %2.3
  53320. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53321. BB1
  53322. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53323. void Deopt %1.0
  53324. BB11
  53325. cls %11.0 = LdFun c, e0.2
  53326. prom %11.1 = MkArg missing, Prom(4), e0.2
  53327. val^ %11.2 = Call %11.0(%11.1) e0.2
  53328. goto BB12
  53329. BB3
  53330. cls %3.0 = LdFun vector, e0.2
  53331. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53332. BB12
  53333. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53334. val %12.1 = Force %12.0, e0.2
  53335. void Return %12.1
  53336. BB5
  53337. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53338. t %5.1 = Identical %3.0, %5.0
  53339. void Assume %5.1, %3.1
  53340. real$' %5.3 = LdConst [1] 4
  53341. str$' %5.4 = LdConst [1] "list"
  53342. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  53343. void StVar array, %5.5, e0.2
  53344. real$' %5.7 = LdConst [1] 4
  53345. real$' %5.8 = LdConst [1] 1
  53346. val' %5.9 = Colon %5.8, %5.7, elided
  53347. val' %5.10 = SetShared %5.9
  53348. int$' %5.11 = ForSeqSize %5.10
  53349. int$' %5.12 = LdConst [1] 0
  53350. goto BB6
  53351. BB4
  53352. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53353. void Deopt %4.0
  53354. BB6
  53355. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53356. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53357. int$' %6.2 = Inc %6.1
  53358. int$' %6.3 = EnsureNamed %6.2
  53359. lgl' %6.4 = Lt %5.11, %6.3, elided
  53360. t %6.5 = AsTest %6.4
  53361. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53362. BB10
  53363. goto BB12
  53364. BB7
  53365. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53366. void StVar i, %7.0, e0.2
  53367. cls %7.2 = LdFun buildTreeDepth, e0.2
  53368. prom %7.3 = MkArg missing, Prom(2), e0.2
  53369. prom %7.4 = MkArg missing, Prom(3), e0.2
  53370. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53371. BB9
  53372. cls' %9.0 = LdConst function (depth, random) { if (d...
  53373. t %9.1 = Identical %7.2, %9.0
  53374. void Assume %9.1, %7.5
  53375. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53376. val^? %9.4 = LdVar array, e0.2
  53377. val %9.5 = Force %9.4, e0.2
  53378. val^? %9.6 = LdVar i, e0.2
  53379. val %9.7 = Force %9.6, e0.2
  53380. val^ %9.8 = EnsureNamed %9.3
  53381. val %9.9 = Force %9.8, e0.2
  53382. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53383. void StVar array, %9.10, e0.2
  53384. goto BB6
  53385. BB8
  53386. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53387. void Deopt %8.0
  53388. Prom 2:
  53389. BB0
  53390. env e0.0 = LdFunctionEnv
  53391. val^? %0.1 = LdVar depth, e0.0
  53392. val %0.2 = Force %0.1, e0.0
  53393. real$' %0.3 = LdConst [1] 1
  53394. goto BB1
  53395. BB1
  53396. val %1.0 = Sub %0.2, %0.3, e0.0
  53397. void Return %1.0
  53398. Prom 3:
  53399. BB0
  53400. env e0.0 = LdFunctionEnv
  53401. val^? %0.1 = LdVar random, e0.0
  53402. val %0.2 = Force %0.1, e0.0
  53403. void Return %0.2
  53404. Prom 4:
  53405. BB0
  53406. env e0.0 = LdFunctionEnv
  53407. cls %0.1 = LdFun nextRandom, e0.0
  53408. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53409. t %0.3 = Identical %0.1, %0.2
  53410. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53411. BB2
  53412. void Assume %0.3, %0.4
  53413. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53414. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53415. real$' %2.3 = LdConst [1] 10
  53416. goto BB3
  53417. BB1
  53418. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53419. void Deopt %1.0
  53420. BB3
  53421. val %3.0 = Force %2.2, e0.0
  53422. val %3.1 = Mod %3.0, %2.3, e0.0
  53423. real$' %3.2 = LdConst [1] 1
  53424. goto BB4
  53425. BB4
  53426. val %4.0 = Add %3.1, %3.2, e0.0
  53427. void Return %4.0
  53428. ├────── Scope resolution: == 610
  53429. test>buildTreeDepth@91[0x7f92445596d0]
  53430. BB0
  53431. val^ %0.0 = LdArg 0
  53432. val^ %0.1 = LdArg 1
  53433. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53434. val %0.3 = Force! %0.0, e0.2
  53435. real$' %0.4 = LdConst [1] 1
  53436. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53437. BB2
  53438. t %2.0 = IsObject %0.3
  53439. void AssumeNot %2.0, %0.5
  53440. lgl' %2.2 = Eq %0.3, %0.4, elided
  53441. lgl %2.3 = AsLogical %2.2
  53442. t %2.4 = AsTest %2.3
  53443. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53444. BB1
  53445. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53446. void Deopt %1.0
  53447. BB11
  53448. cls %11.0 = LdFun c, e0.2
  53449. prom %11.1 = MkArg missing, Prom(4), e0.2
  53450. val^ %11.2 = Call %11.0(%11.1) e0.2
  53451. goto BB12
  53452. BB3
  53453. cls %3.0 = LdFun vector, e0.2
  53454. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53455. BB12
  53456. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53457. val %12.1 = Force %12.0, e0.2
  53458. void Return %12.1
  53459. BB5
  53460. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53461. t %5.1 = Identical %3.0, %5.0
  53462. void Assume %5.1, %3.1
  53463. real$' %5.3 = LdConst [1] 4
  53464. str$' %5.4 = LdConst [1] "list"
  53465. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  53466. void StVar array, %5.5, e0.2
  53467. real$' %5.7 = LdConst [1] 4
  53468. real$' %5.8 = LdConst [1] 1
  53469. val' %5.9 = Colon %5.8, %5.7, elided
  53470. val' %5.10 = SetShared %5.9
  53471. int$' %5.11 = ForSeqSize %5.10
  53472. int$' %5.12 = LdConst [1] 0
  53473. goto BB6
  53474. BB4
  53475. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53476. void Deopt %4.0
  53477. BB6
  53478. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53479. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53480. int$' %6.2 = Inc %6.1
  53481. int$' %6.3 = EnsureNamed %6.2
  53482. lgl' %6.4 = Lt %5.11, %6.3, elided
  53483. t %6.5 = AsTest %6.4
  53484. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53485. BB10
  53486. goto BB12
  53487. BB7
  53488. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53489. void StVar i, %7.0, e0.2
  53490. cls %7.2 = LdFun buildTreeDepth, e0.2
  53491. prom %7.3 = MkArg missing, Prom(2), e0.2
  53492. prom %7.4 = MkArg missing, Prom(3), e0.2
  53493. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53494. BB9
  53495. cls' %9.0 = LdConst function (depth, random) { if (d...
  53496. t %9.1 = Identical %7.2, %9.0
  53497. void Assume %9.1, %7.5
  53498. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53499. val^? %9.4 = LdVar array, e0.2
  53500. val %9.5 = Force %9.4, e0.2
  53501. val^? %9.6 = LdVar i, e0.2
  53502. val %9.7 = Force %9.6, e0.2
  53503. val^ %9.8 = EnsureNamed %9.3
  53504. val %9.9 = Force %9.8, e0.2
  53505. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53506. void StVar array, %9.10, e0.2
  53507. goto BB6
  53508. BB8
  53509. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53510. void Deopt %8.0
  53511. Prom 2:
  53512. BB0
  53513. env e0.0 = LdFunctionEnv
  53514. val^? %0.1 = LdVar depth, e0.0
  53515. val %0.2 = Force %0.1, e0.0
  53516. real$' %0.3 = LdConst [1] 1
  53517. goto BB1
  53518. BB1
  53519. val %1.0 = Sub %0.2, %0.3, e0.0
  53520. void Return %1.0
  53521. Prom 3:
  53522. BB0
  53523. env e0.0 = LdFunctionEnv
  53524. val^? %0.1 = LdVar random, e0.0
  53525. val %0.2 = Force %0.1, e0.0
  53526. void Return %0.2
  53527. Prom 4:
  53528. BB0
  53529. env e0.0 = LdFunctionEnv
  53530. cls %0.1 = LdFun nextRandom, e0.0
  53531. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53532. t %0.3 = Identical %0.1, %0.2
  53533. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53534. BB2
  53535. void Assume %0.3, %0.4
  53536. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53537. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53538. real$' %2.3 = LdConst [1] 10
  53539. goto BB3
  53540. BB1
  53541. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53542. void Deopt %1.0
  53543. BB3
  53544. val %3.0 = Force %2.2, e0.0
  53545. val %3.1 = Mod %3.0, %2.3, e0.0
  53546. real$' %3.2 = LdConst [1] 1
  53547. goto BB4
  53548. BB4
  53549. val %4.0 = Add %3.1, %3.2, e0.0
  53550. void Return %4.0
  53551. ├────── Constant folding: == 617
  53552. test>buildTreeDepth@91[0x7f92445596d0]
  53553. BB0
  53554. val^ %0.0 = LdArg 0
  53555. val^ %0.1 = LdArg 1
  53556. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53557. val %0.3 = Force! %0.0, e0.2
  53558. real$' %0.4 = LdConst [1] 1
  53559. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53560. BB2
  53561. t %2.0 = IsObject %0.3
  53562. void AssumeNot %2.0, %0.5
  53563. lgl' %2.2 = Eq %0.3, %0.4, elided
  53564. lgl %2.3 = AsLogical %2.2
  53565. t %2.4 = AsTest %2.3
  53566. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53567. BB1
  53568. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53569. void Deopt %1.0
  53570. BB11
  53571. cls %11.0 = LdFun c, e0.2
  53572. prom %11.1 = MkArg missing, Prom(4), e0.2
  53573. val^ %11.2 = Call %11.0(%11.1) e0.2
  53574. goto BB12
  53575. BB3
  53576. cls %3.0 = LdFun vector, e0.2
  53577. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53578. BB12
  53579. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53580. val %12.1 = Force %12.0, e0.2
  53581. void Return %12.1
  53582. BB5
  53583. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53584. t %5.1 = Identical %3.0, %5.0
  53585. void Assume %5.1, %3.1
  53586. real$' %5.3 = LdConst [1] 4
  53587. str$' %5.4 = LdConst [1] "list"
  53588. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  53589. void StVar array, %5.5, e0.2
  53590. real$' %5.7 = LdConst [1] 4
  53591. real$' %5.8 = LdConst [1] 1
  53592. val' %5.9 = Colon %5.8, %5.7, elided
  53593. val' %5.10 = SetShared %5.9
  53594. int$' %5.11 = ForSeqSize %5.10
  53595. int$' %5.12 = LdConst [1] 0
  53596. goto BB6
  53597. BB4
  53598. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53599. void Deopt %4.0
  53600. BB6
  53601. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53602. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53603. int$' %6.2 = Inc %6.1
  53604. int$' %6.3 = EnsureNamed %6.2
  53605. lgl' %6.4 = Lt %5.11, %6.3, elided
  53606. t %6.5 = AsTest %6.4
  53607. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53608. BB10
  53609. goto BB12
  53610. BB7
  53611. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53612. void StVar i, %7.0, e0.2
  53613. cls %7.2 = LdFun buildTreeDepth, e0.2
  53614. prom %7.3 = MkArg missing, Prom(2), e0.2
  53615. prom %7.4 = MkArg missing, Prom(3), e0.2
  53616. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53617. BB9
  53618. cls' %9.0 = LdConst function (depth, random) { if (d...
  53619. t %9.1 = Identical %7.2, %9.0
  53620. void Assume %9.1, %7.5
  53621. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53622. val^? %9.4 = LdVar array, e0.2
  53623. val %9.5 = Force %9.4, e0.2
  53624. val^? %9.6 = LdVar i, e0.2
  53625. val %9.7 = Force %9.6, e0.2
  53626. val^ %9.8 = EnsureNamed %9.3
  53627. val %9.9 = Force %9.8, e0.2
  53628. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53629. void StVar array, %9.10, e0.2
  53630. goto BB6
  53631. BB8
  53632. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53633. void Deopt %8.0
  53634. Prom 2:
  53635. BB0
  53636. env e0.0 = LdFunctionEnv
  53637. val^? %0.1 = LdVar depth, e0.0
  53638. val %0.2 = Force %0.1, e0.0
  53639. real$' %0.3 = LdConst [1] 1
  53640. goto BB1
  53641. BB1
  53642. val %1.0 = Sub %0.2, %0.3, e0.0
  53643. void Return %1.0
  53644. Prom 3:
  53645. BB0
  53646. env e0.0 = LdFunctionEnv
  53647. val^? %0.1 = LdVar random, e0.0
  53648. val %0.2 = Force %0.1, e0.0
  53649. void Return %0.2
  53650. Prom 4:
  53651. BB0
  53652. env e0.0 = LdFunctionEnv
  53653. cls %0.1 = LdFun nextRandom, e0.0
  53654. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53655. t %0.3 = Identical %0.1, %0.2
  53656. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53657. BB2
  53658. void Assume %0.3, %0.4
  53659. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53660. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53661. real$' %2.3 = LdConst [1] 10
  53662. goto BB3
  53663. BB1
  53664. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53665. void Deopt %1.0
  53666. BB3
  53667. val %3.0 = Force %2.2, e0.0
  53668. val %3.1 = Mod %3.0, %2.3, e0.0
  53669. real$' %3.2 = LdConst [1] 1
  53670. goto BB4
  53671. BB4
  53672. val %4.0 = Add %3.1, %3.2, e0.0
  53673. void Return %4.0
  53674. ├────── Cleanup redundant operations: == 624
  53675. test>buildTreeDepth@91[0x7f92445596d0]
  53676. BB0
  53677. val^ %0.0 = LdArg 0
  53678. val^ %0.1 = LdArg 1
  53679. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53680. val %0.3 = Force! %0.0, e0.2
  53681. real$' %0.4 = LdConst [1] 1
  53682. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53683. BB2
  53684. t %2.0 = IsObject %0.3
  53685. void AssumeNot %2.0, %0.5
  53686. lgl' %2.2 = Eq %0.3, %0.4, elided
  53687. lgl %2.3 = AsLogical %2.2
  53688. t %2.4 = AsTest %2.3
  53689. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53690. BB1
  53691. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53692. void Deopt %1.0
  53693. BB11
  53694. cls %11.0 = LdFun c, e0.2
  53695. prom %11.1 = MkArg missing, Prom(4), e0.2
  53696. val^ %11.2 = Call %11.0(%11.1) e0.2
  53697. goto BB12
  53698. BB3
  53699. cls %3.0 = LdFun vector, e0.2
  53700. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53701. BB12
  53702. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53703. val %12.1 = Force %12.0, e0.2
  53704. void Return %12.1
  53705. BB5
  53706. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53707. t %5.1 = Identical %3.0, %5.0
  53708. void Assume %5.1, %3.1
  53709. real$' %5.3 = LdConst [1] 4
  53710. str$' %5.4 = LdConst [1] "list"
  53711. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  53712. void StVar array, %5.5, e0.2
  53713. real$' %5.7 = LdConst [1] 4
  53714. real$' %5.8 = LdConst [1] 1
  53715. val' %5.9 = Colon %5.8, %5.7, elided
  53716. val' %5.10 = SetShared %5.9
  53717. int$' %5.11 = ForSeqSize %5.10
  53718. int$' %5.12 = LdConst [1] 0
  53719. goto BB6
  53720. BB4
  53721. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53722. void Deopt %4.0
  53723. BB6
  53724. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53725. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53726. int$' %6.2 = Inc %6.1
  53727. int$' %6.3 = EnsureNamed %6.2
  53728. lgl' %6.4 = Lt %5.11, %6.3, elided
  53729. t %6.5 = AsTest %6.4
  53730. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53731. BB10
  53732. goto BB12
  53733. BB7
  53734. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53735. void StVar i, %7.0, e0.2
  53736. cls %7.2 = LdFun buildTreeDepth, e0.2
  53737. prom %7.3 = MkArg missing, Prom(2), e0.2
  53738. prom %7.4 = MkArg missing, Prom(3), e0.2
  53739. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53740. BB9
  53741. cls' %9.0 = LdConst function (depth, random) { if (d...
  53742. t %9.1 = Identical %7.2, %9.0
  53743. void Assume %9.1, %7.5
  53744. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53745. val^? %9.4 = LdVar array, e0.2
  53746. val %9.5 = Force %9.4, e0.2
  53747. val^? %9.6 = LdVar i, e0.2
  53748. val %9.7 = Force %9.6, e0.2
  53749. val^ %9.8 = EnsureNamed %9.3
  53750. val %9.9 = Force %9.8, e0.2
  53751. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53752. void StVar array, %9.10, e0.2
  53753. goto BB6
  53754. BB8
  53755. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53756. void Deopt %8.0
  53757. Prom 2:
  53758. BB0
  53759. env e0.0 = LdFunctionEnv
  53760. val^? %0.1 = LdVar depth, e0.0
  53761. val %0.2 = Force %0.1, e0.0
  53762. real$' %0.3 = LdConst [1] 1
  53763. goto BB1
  53764. BB1
  53765. val %1.0 = Sub %0.2, %0.3, e0.0
  53766. void Return %1.0
  53767. Prom 3:
  53768. BB0
  53769. env e0.0 = LdFunctionEnv
  53770. val^? %0.1 = LdVar random, e0.0
  53771. val %0.2 = Force %0.1, e0.0
  53772. void Return %0.2
  53773. Prom 4:
  53774. BB0
  53775. env e0.0 = LdFunctionEnv
  53776. cls %0.1 = LdFun nextRandom, e0.0
  53777. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53778. t %0.3 = Identical %0.1, %0.2
  53779. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53780. BB2
  53781. void Assume %0.3, %0.4
  53782. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53783. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53784. real$' %2.3 = LdConst [1] 10
  53785. goto BB3
  53786. BB1
  53787. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53788. void Deopt %1.0
  53789. BB3
  53790. val %3.0 = Force %2.2, e0.0
  53791. val %3.1 = Mod %3.0, %2.3, e0.0
  53792. real$' %3.2 = LdConst [1] 1
  53793. goto BB4
  53794. BB4
  53795. val %4.0 = Add %3.1, %3.2, e0.0
  53796. void Return %4.0
  53797. ├────── Delay instructions: == 631
  53798. test>buildTreeDepth@91[0x7f92445596d0]
  53799. BB0
  53800. val^ %0.0 = LdArg 0
  53801. val^ %0.1 = LdArg 1
  53802. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53803. val %0.3 = Force! %0.0, e0.2
  53804. real$' %0.4 = LdConst [1] 1
  53805. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53806. BB2
  53807. t %2.0 = IsObject %0.3
  53808. void AssumeNot %2.0, %0.5
  53809. lgl' %2.2 = Eq %0.3, %0.4, elided
  53810. lgl %2.3 = AsLogical %2.2
  53811. t %2.4 = AsTest %2.3
  53812. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53813. BB1
  53814. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53815. void Deopt %1.0
  53816. BB11
  53817. cls %11.0 = LdFun c, e0.2
  53818. prom %11.1 = MkArg missing, Prom(4), e0.2
  53819. val^ %11.2 = Call %11.0(%11.1) e0.2
  53820. goto BB12
  53821. BB3
  53822. cls %3.0 = LdFun vector, e0.2
  53823. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53824. BB12
  53825. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53826. val %12.1 = Force %12.0, e0.2
  53827. void Return %12.1
  53828. BB5
  53829. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53830. t %5.1 = Identical %3.0, %5.0
  53831. void Assume %5.1, %3.1
  53832. str$' %5.3 = LdConst [1] "list"
  53833. real$' %5.4 = LdConst [1] 4
  53834. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  53835. void StVar array, %5.5, e0.2
  53836. real$' %5.7 = LdConst [1] 1
  53837. real$' %5.8 = LdConst [1] 4
  53838. val' %5.9 = Colon %5.7, %5.8, elided
  53839. val' %5.10 = SetShared %5.9
  53840. int$' %5.11 = ForSeqSize %5.10
  53841. int$' %5.12 = LdConst [1] 0
  53842. goto BB6
  53843. BB4
  53844. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53845. void Deopt %4.0
  53846. BB6
  53847. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53848. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53849. int$' %6.2 = Inc %6.1
  53850. int$' %6.3 = EnsureNamed %6.2
  53851. lgl' %6.4 = Lt %5.11, %6.3, elided
  53852. t %6.5 = AsTest %6.4
  53853. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53854. BB10
  53855. goto BB12
  53856. BB7
  53857. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53858. void StVar i, %7.0, e0.2
  53859. cls %7.2 = LdFun buildTreeDepth, e0.2
  53860. prom %7.3 = MkArg missing, Prom(2), e0.2
  53861. prom %7.4 = MkArg missing, Prom(3), e0.2
  53862. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53863. BB9
  53864. cls' %9.0 = LdConst function (depth, random) { if (d...
  53865. t %9.1 = Identical %7.2, %9.0
  53866. void Assume %9.1, %7.5
  53867. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53868. val^? %9.4 = LdVar array, e0.2
  53869. val %9.5 = Force %9.4, e0.2
  53870. val^? %9.6 = LdVar i, e0.2
  53871. val %9.7 = Force %9.6, e0.2
  53872. val^ %9.8 = EnsureNamed %9.3
  53873. val %9.9 = Force %9.8, e0.2
  53874. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53875. void StVar array, %9.10, e0.2
  53876. goto BB6
  53877. BB8
  53878. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  53879. void Deopt %8.0
  53880. Prom 2:
  53881. BB0
  53882. env e0.0 = LdFunctionEnv
  53883. val^? %0.1 = LdVar depth, e0.0
  53884. val %0.2 = Force %0.1, e0.0
  53885. real$' %0.3 = LdConst [1] 1
  53886. goto BB1
  53887. BB1
  53888. val %1.0 = Sub %0.2, %0.3, e0.0
  53889. void Return %1.0
  53890. Prom 3:
  53891. BB0
  53892. env e0.0 = LdFunctionEnv
  53893. val^? %0.1 = LdVar random, e0.0
  53894. val %0.2 = Force %0.1, e0.0
  53895. void Return %0.2
  53896. Prom 4:
  53897. BB0
  53898. env e0.0 = LdFunctionEnv
  53899. cls %0.1 = LdFun nextRandom, e0.0
  53900. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  53901. t %0.3 = Identical %0.1, %0.2
  53902. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53903. BB2
  53904. void Assume %0.3, %0.4
  53905. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  53906. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  53907. real$' %2.3 = LdConst [1] 10
  53908. goto BB3
  53909. BB1
  53910. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  53911. void Deopt %1.0
  53912. BB3
  53913. val %3.0 = Force %2.2, e0.0
  53914. val %3.1 = Mod %3.0, %2.3, e0.0
  53915. real$' %3.2 = LdConst [1] 1
  53916. goto BB4
  53917. BB4
  53918. val %4.0 = Add %3.1, %3.2, e0.0
  53919. void Return %4.0
  53920. ├────── Elide environments not needed: == 638
  53921. test>buildTreeDepth@91[0x7f92445596d0]
  53922. BB0
  53923. val^ %0.0 = LdArg 0
  53924. val^ %0.1 = LdArg 1
  53925. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  53926. val %0.3 = Force! %0.0, e0.2
  53927. real$' %0.4 = LdConst [1] 1
  53928. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  53929. BB2
  53930. t %2.0 = IsObject %0.3
  53931. void AssumeNot %2.0, %0.5
  53932. lgl' %2.2 = Eq %0.3, %0.4, elided
  53933. lgl %2.3 = AsLogical %2.2
  53934. t %2.4 = AsTest %2.3
  53935. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  53936. BB1
  53937. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  53938. void Deopt %1.0
  53939. BB11
  53940. cls %11.0 = LdFun c, e0.2
  53941. prom %11.1 = MkArg missing, Prom(4), e0.2
  53942. val^ %11.2 = Call %11.0(%11.1) e0.2
  53943. goto BB12
  53944. BB3
  53945. cls %3.0 = LdFun vector, e0.2
  53946. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  53947. BB12
  53948. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  53949. val %12.1 = Force %12.0, e0.2
  53950. void Return %12.1
  53951. BB5
  53952. cls' %5.0 = LdConst function (mode = "logical", length = ...
  53953. t %5.1 = Identical %3.0, %5.0
  53954. void Assume %5.1, %3.1
  53955. str$' %5.3 = LdConst [1] "list"
  53956. real$' %5.4 = LdConst [1] 4
  53957. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  53958. void StVar array, %5.5, e0.2
  53959. real$' %5.7 = LdConst [1] 1
  53960. real$' %5.8 = LdConst [1] 4
  53961. val' %5.9 = Colon %5.7, %5.8, elided
  53962. val' %5.10 = SetShared %5.9
  53963. int$' %5.11 = ForSeqSize %5.10
  53964. int$' %5.12 = LdConst [1] 0
  53965. goto BB6
  53966. BB4
  53967. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  53968. void Deopt %4.0
  53969. BB6
  53970. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  53971. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  53972. int$' %6.2 = Inc %6.1
  53973. int$' %6.3 = EnsureNamed %6.2
  53974. lgl' %6.4 = Lt %5.11, %6.3, elided
  53975. t %6.5 = AsTest %6.4
  53976. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  53977. BB10
  53978. goto BB12
  53979. BB7
  53980. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  53981. void StVar i, %7.0, e0.2
  53982. cls %7.2 = LdFun buildTreeDepth, e0.2
  53983. prom %7.3 = MkArg missing, Prom(2), e0.2
  53984. prom %7.4 = MkArg missing, Prom(3), e0.2
  53985. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  53986. BB9
  53987. cls' %9.0 = LdConst function (depth, random) { if (d...
  53988. t %9.1 = Identical %7.2, %9.0
  53989. void Assume %9.1, %7.5
  53990. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  53991. val^? %9.4 = LdVar array, e0.2
  53992. val %9.5 = Force %9.4, e0.2
  53993. val^? %9.6 = LdVar i, e0.2
  53994. val %9.7 = Force %9.6, e0.2
  53995. val^ %9.8 = EnsureNamed %9.3
  53996. val %9.9 = Force %9.8, e0.2
  53997. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  53998. void StVar array, %9.10, e0.2
  53999. goto BB6
  54000. BB8
  54001. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54002. void Deopt %8.0
  54003. Prom 2:
  54004. BB0
  54005. env e0.0 = LdFunctionEnv
  54006. val^? %0.1 = LdVar depth, e0.0
  54007. val %0.2 = Force %0.1, e0.0
  54008. real$' %0.3 = LdConst [1] 1
  54009. goto BB1
  54010. BB1
  54011. val %1.0 = Sub %0.2, %0.3, e0.0
  54012. void Return %1.0
  54013. Prom 3:
  54014. BB0
  54015. env e0.0 = LdFunctionEnv
  54016. val^? %0.1 = LdVar random, e0.0
  54017. val %0.2 = Force %0.1, e0.0
  54018. void Return %0.2
  54019. Prom 4:
  54020. BB0
  54021. env e0.0 = LdFunctionEnv
  54022. cls %0.1 = LdFun nextRandom, e0.0
  54023. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54024. t %0.3 = Identical %0.1, %0.2
  54025. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54026. BB2
  54027. void Assume %0.3, %0.4
  54028. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54029. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54030. real$' %2.3 = LdConst [1] 10
  54031. goto BB3
  54032. BB1
  54033. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54034. void Deopt %1.0
  54035. BB3
  54036. val %3.0 = Force %2.2, e0.0
  54037. val %3.1 = Mod %3.0, %2.3, e0.0
  54038. real$' %3.2 = LdConst [1] 1
  54039. goto BB4
  54040. BB4
  54041. val %4.0 = Add %3.1, %3.2, e0.0
  54042. void Return %4.0
  54043. ├────── Move environment creation as far as possible: == 645
  54044. test>buildTreeDepth@91[0x7f92445596d0]
  54045. BB0
  54046. val^ %0.0 = LdArg 0
  54047. val^ %0.1 = LdArg 1
  54048. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54049. val %0.3 = Force! %0.0, e0.2
  54050. real$' %0.4 = LdConst [1] 1
  54051. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54052. BB2
  54053. t %2.0 = IsObject %0.3
  54054. void AssumeNot %2.0, %0.5
  54055. lgl' %2.2 = Eq %0.3, %0.4, elided
  54056. lgl %2.3 = AsLogical %2.2
  54057. t %2.4 = AsTest %2.3
  54058. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54059. BB1
  54060. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54061. void Deopt %1.0
  54062. BB11
  54063. cls %11.0 = LdFun c, e0.2
  54064. prom %11.1 = MkArg missing, Prom(4), e0.2
  54065. val^ %11.2 = Call %11.0(%11.1) e0.2
  54066. goto BB12
  54067. BB3
  54068. cls %3.0 = LdFun vector, e0.2
  54069. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54070. BB12
  54071. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54072. val %12.1 = Force %12.0, e0.2
  54073. void Return %12.1
  54074. BB5
  54075. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54076. t %5.1 = Identical %3.0, %5.0
  54077. void Assume %5.1, %3.1
  54078. str$' %5.3 = LdConst [1] "list"
  54079. real$' %5.4 = LdConst [1] 4
  54080. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  54081. void StVar array, %5.5, e0.2
  54082. real$' %5.7 = LdConst [1] 1
  54083. real$' %5.8 = LdConst [1] 4
  54084. val' %5.9 = Colon %5.7, %5.8, elided
  54085. val' %5.10 = SetShared %5.9
  54086. int$' %5.11 = ForSeqSize %5.10
  54087. int$' %5.12 = LdConst [1] 0
  54088. goto BB6
  54089. BB4
  54090. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54091. void Deopt %4.0
  54092. BB6
  54093. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54094. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54095. int$' %6.2 = Inc %6.1
  54096. int$' %6.3 = EnsureNamed %6.2
  54097. lgl' %6.4 = Lt %5.11, %6.3, elided
  54098. t %6.5 = AsTest %6.4
  54099. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54100. BB10
  54101. goto BB12
  54102. BB7
  54103. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54104. void StVar i, %7.0, e0.2
  54105. cls %7.2 = LdFun buildTreeDepth, e0.2
  54106. prom %7.3 = MkArg missing, Prom(2), e0.2
  54107. prom %7.4 = MkArg missing, Prom(3), e0.2
  54108. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54109. BB9
  54110. cls' %9.0 = LdConst function (depth, random) { if (d...
  54111. t %9.1 = Identical %7.2, %9.0
  54112. void Assume %9.1, %7.5
  54113. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54114. val^? %9.4 = LdVar array, e0.2
  54115. val %9.5 = Force %9.4, e0.2
  54116. val^? %9.6 = LdVar i, e0.2
  54117. val %9.7 = Force %9.6, e0.2
  54118. val^ %9.8 = EnsureNamed %9.3
  54119. val %9.9 = Force %9.8, e0.2
  54120. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54121. void StVar array, %9.10, e0.2
  54122. goto BB6
  54123. BB8
  54124. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54125. void Deopt %8.0
  54126. Prom 2:
  54127. BB0
  54128. env e0.0 = LdFunctionEnv
  54129. val^? %0.1 = LdVar depth, e0.0
  54130. val %0.2 = Force %0.1, e0.0
  54131. real$' %0.3 = LdConst [1] 1
  54132. goto BB1
  54133. BB1
  54134. val %1.0 = Sub %0.2, %0.3, e0.0
  54135. void Return %1.0
  54136. Prom 3:
  54137. BB0
  54138. env e0.0 = LdFunctionEnv
  54139. val^? %0.1 = LdVar random, e0.0
  54140. val %0.2 = Force %0.1, e0.0
  54141. void Return %0.2
  54142. Prom 4:
  54143. BB0
  54144. env e0.0 = LdFunctionEnv
  54145. cls %0.1 = LdFun nextRandom, e0.0
  54146. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54147. t %0.3 = Identical %0.1, %0.2
  54148. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54149. BB2
  54150. void Assume %0.3, %0.4
  54151. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54152. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54153. real$' %2.3 = LdConst [1] 10
  54154. goto BB3
  54155. BB1
  54156. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54157. void Deopt %1.0
  54158. BB3
  54159. val %3.0 = Force %2.2, e0.0
  54160. val %3.1 = Mod %3.0, %2.3, e0.0
  54161. real$' %3.2 = LdConst [1] 1
  54162. goto BB4
  54163. BB4
  54164. val %4.0 = Add %3.1, %3.2, e0.0
  54165. void Return %4.0
  54166. ├────── Cleanup redundant operations: == 652
  54167. test>buildTreeDepth@91[0x7f92445596d0]
  54168. BB0
  54169. val^ %0.0 = LdArg 0
  54170. val^ %0.1 = LdArg 1
  54171. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54172. val %0.3 = Force! %0.0, e0.2
  54173. real$' %0.4 = LdConst [1] 1
  54174. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54175. BB2
  54176. t %2.0 = IsObject %0.3
  54177. void AssumeNot %2.0, %0.5
  54178. lgl' %2.2 = Eq %0.3, %0.4, elided
  54179. lgl %2.3 = AsLogical %2.2
  54180. t %2.4 = AsTest %2.3
  54181. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54182. BB1
  54183. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54184. void Deopt %1.0
  54185. BB11
  54186. cls %11.0 = LdFun c, e0.2
  54187. prom %11.1 = MkArg missing, Prom(4), e0.2
  54188. val^ %11.2 = Call %11.0(%11.1) e0.2
  54189. goto BB12
  54190. BB3
  54191. cls %3.0 = LdFun vector, e0.2
  54192. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54193. BB12
  54194. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54195. val %12.1 = Force %12.0, e0.2
  54196. void Return %12.1
  54197. BB5
  54198. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54199. t %5.1 = Identical %3.0, %5.0
  54200. void Assume %5.1, %3.1
  54201. str$' %5.3 = LdConst [1] "list"
  54202. real$' %5.4 = LdConst [1] 4
  54203. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  54204. void StVar array, %5.5, e0.2
  54205. real$' %5.7 = LdConst [1] 1
  54206. real$' %5.8 = LdConst [1] 4
  54207. val' %5.9 = Colon %5.7, %5.8, elided
  54208. val' %5.10 = SetShared %5.9
  54209. int$' %5.11 = ForSeqSize %5.10
  54210. int$' %5.12 = LdConst [1] 0
  54211. goto BB6
  54212. BB4
  54213. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54214. void Deopt %4.0
  54215. BB6
  54216. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54217. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54218. int$' %6.2 = Inc %6.1
  54219. int$' %6.3 = EnsureNamed %6.2
  54220. lgl' %6.4 = Lt %5.11, %6.3, elided
  54221. t %6.5 = AsTest %6.4
  54222. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54223. BB10
  54224. goto BB12
  54225. BB7
  54226. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54227. void StVar i, %7.0, e0.2
  54228. cls %7.2 = LdFun buildTreeDepth, e0.2
  54229. prom %7.3 = MkArg missing, Prom(2), e0.2
  54230. prom %7.4 = MkArg missing, Prom(3), e0.2
  54231. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54232. BB9
  54233. cls' %9.0 = LdConst function (depth, random) { if (d...
  54234. t %9.1 = Identical %7.2, %9.0
  54235. void Assume %9.1, %7.5
  54236. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54237. val^? %9.4 = LdVar array, e0.2
  54238. val %9.5 = Force %9.4, e0.2
  54239. val^? %9.6 = LdVar i, e0.2
  54240. val %9.7 = Force %9.6, e0.2
  54241. val^ %9.8 = EnsureNamed %9.3
  54242. val %9.9 = Force %9.8, e0.2
  54243. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54244. void StVar array, %9.10, e0.2
  54245. goto BB6
  54246. BB8
  54247. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54248. void Deopt %8.0
  54249. Prom 2:
  54250. BB0
  54251. env e0.0 = LdFunctionEnv
  54252. val^? %0.1 = LdVar depth, e0.0
  54253. val %0.2 = Force %0.1, e0.0
  54254. real$' %0.3 = LdConst [1] 1
  54255. goto BB1
  54256. BB1
  54257. val %1.0 = Sub %0.2, %0.3, e0.0
  54258. void Return %1.0
  54259. Prom 3:
  54260. BB0
  54261. env e0.0 = LdFunctionEnv
  54262. val^? %0.1 = LdVar random, e0.0
  54263. val %0.2 = Force %0.1, e0.0
  54264. void Return %0.2
  54265. Prom 4:
  54266. BB0
  54267. env e0.0 = LdFunctionEnv
  54268. cls %0.1 = LdFun nextRandom, e0.0
  54269. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54270. t %0.3 = Identical %0.1, %0.2
  54271. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54272. BB2
  54273. void Assume %0.3, %0.4
  54274. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54275. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54276. real$' %2.3 = LdConst [1] 10
  54277. goto BB3
  54278. BB1
  54279. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54280. void Deopt %1.0
  54281. BB3
  54282. val %3.0 = Force %2.2, e0.0
  54283. val %3.1 = Mod %3.0, %2.3, e0.0
  54284. real$' %3.2 = LdConst [1] 1
  54285. goto BB4
  54286. BB4
  54287. val %4.0 = Add %3.1, %3.2, e0.0
  54288. void Return %4.0
  54289. ├────── Inline closures: == 659
  54290. test>buildTreeDepth@91[0x7f92445596d0]
  54291. BB0
  54292. val^ %0.0 = LdArg 0
  54293. val^ %0.1 = LdArg 1
  54294. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54295. val %0.3 = Force! %0.0, e0.2
  54296. real$' %0.4 = LdConst [1] 1
  54297. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54298. BB2
  54299. t %2.0 = IsObject %0.3
  54300. void AssumeNot %2.0, %0.5
  54301. lgl' %2.2 = Eq %0.3, %0.4, elided
  54302. lgl %2.3 = AsLogical %2.2
  54303. t %2.4 = AsTest %2.3
  54304. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54305. BB1
  54306. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54307. void Deopt %1.0
  54308. BB11
  54309. cls %11.0 = LdFun c, e0.2
  54310. prom %11.1 = MkArg missing, Prom(4), e0.2
  54311. val^ %11.2 = Call %11.0(%11.1) e0.2
  54312. goto BB12
  54313. BB3
  54314. cls %3.0 = LdFun vector, e0.2
  54315. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54316. BB12
  54317. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54318. val %12.1 = Force %12.0, e0.2
  54319. void Return %12.1
  54320. BB5
  54321. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54322. t %5.1 = Identical %3.0, %5.0
  54323. void Assume %5.1, %3.1
  54324. str$' %5.3 = LdConst [1] "list"
  54325. real$' %5.4 = LdConst [1] 4
  54326. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  54327. void StVar array, %5.5, e0.2
  54328. real$' %5.7 = LdConst [1] 1
  54329. real$' %5.8 = LdConst [1] 4
  54330. val' %5.9 = Colon %5.7, %5.8, elided
  54331. val' %5.10 = SetShared %5.9
  54332. int$' %5.11 = ForSeqSize %5.10
  54333. int$' %5.12 = LdConst [1] 0
  54334. goto BB6
  54335. BB4
  54336. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54337. void Deopt %4.0
  54338. BB6
  54339. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54340. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54341. int$' %6.2 = Inc %6.1
  54342. int$' %6.3 = EnsureNamed %6.2
  54343. lgl' %6.4 = Lt %5.11, %6.3, elided
  54344. t %6.5 = AsTest %6.4
  54345. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54346. BB10
  54347. goto BB12
  54348. BB7
  54349. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54350. void StVar i, %7.0, e0.2
  54351. cls %7.2 = LdFun buildTreeDepth, e0.2
  54352. prom %7.3 = MkArg missing, Prom(2), e0.2
  54353. prom %7.4 = MkArg missing, Prom(3), e0.2
  54354. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54355. BB9
  54356. cls' %9.0 = LdConst function (depth, random) { if (d...
  54357. t %9.1 = Identical %7.2, %9.0
  54358. void Assume %9.1, %7.5
  54359. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54360. val^? %9.4 = LdVar array, e0.2
  54361. val %9.5 = Force %9.4, e0.2
  54362. val^? %9.6 = LdVar i, e0.2
  54363. val %9.7 = Force %9.6, e0.2
  54364. val^ %9.8 = EnsureNamed %9.3
  54365. val %9.9 = Force %9.8, e0.2
  54366. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54367. void StVar array, %9.10, e0.2
  54368. goto BB6
  54369. BB8
  54370. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54371. void Deopt %8.0
  54372. Prom 2:
  54373. BB0
  54374. env e0.0 = LdFunctionEnv
  54375. val^? %0.1 = LdVar depth, e0.0
  54376. val %0.2 = Force %0.1, e0.0
  54377. real$' %0.3 = LdConst [1] 1
  54378. goto BB1
  54379. BB1
  54380. val %1.0 = Sub %0.2, %0.3, e0.0
  54381. void Return %1.0
  54382. Prom 3:
  54383. BB0
  54384. env e0.0 = LdFunctionEnv
  54385. val^? %0.1 = LdVar random, e0.0
  54386. val %0.2 = Force %0.1, e0.0
  54387. void Return %0.2
  54388. Prom 4:
  54389. BB0
  54390. env e0.0 = LdFunctionEnv
  54391. cls %0.1 = LdFun nextRandom, e0.0
  54392. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54393. t %0.3 = Identical %0.1, %0.2
  54394. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54395. BB2
  54396. void Assume %0.3, %0.4
  54397. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54398. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54399. real$' %2.3 = LdConst [1] 10
  54400. goto BB3
  54401. BB1
  54402. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54403. void Deopt %1.0
  54404. BB3
  54405. val %3.0 = Force %2.2, e0.0
  54406. val %3.1 = Mod %3.0, %2.3, e0.0
  54407. real$' %3.2 = LdConst [1] 1
  54408. goto BB4
  54409. BB4
  54410. val %4.0 = Add %3.1, %3.2, e0.0
  54411. void Return %4.0
  54412. ├────── Inline Promises: == 666
  54413. test>buildTreeDepth@91[0x7f92445596d0]
  54414. BB0
  54415. val^ %0.0 = LdArg 0
  54416. val^ %0.1 = LdArg 1
  54417. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54418. val %0.3 = Force! %0.0, e0.2
  54419. real$' %0.4 = LdConst [1] 1
  54420. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54421. BB2
  54422. t %2.0 = IsObject %0.3
  54423. void AssumeNot %2.0, %0.5
  54424. lgl' %2.2 = Eq %0.3, %0.4, elided
  54425. lgl %2.3 = AsLogical %2.2
  54426. t %2.4 = AsTest %2.3
  54427. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54428. BB1
  54429. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54430. void Deopt %1.0
  54431. BB11
  54432. cls %11.0 = LdFun c, e0.2
  54433. prom %11.1 = MkArg missing, Prom(4), e0.2
  54434. val^ %11.2 = Call %11.0(%11.1) e0.2
  54435. goto BB12
  54436. BB3
  54437. cls %3.0 = LdFun vector, e0.2
  54438. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54439. BB12
  54440. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54441. val %12.1 = Force %12.0, e0.2
  54442. void Return %12.1
  54443. BB5
  54444. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54445. t %5.1 = Identical %3.0, %5.0
  54446. void Assume %5.1, %3.1
  54447. str$' %5.3 = LdConst [1] "list"
  54448. real$' %5.4 = LdConst [1] 4
  54449. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  54450. void StVar array, %5.5, e0.2
  54451. real$' %5.7 = LdConst [1] 1
  54452. real$' %5.8 = LdConst [1] 4
  54453. val' %5.9 = Colon %5.7, %5.8, elided
  54454. val' %5.10 = SetShared %5.9
  54455. int$' %5.11 = ForSeqSize %5.10
  54456. int$' %5.12 = LdConst [1] 0
  54457. goto BB6
  54458. BB4
  54459. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54460. void Deopt %4.0
  54461. BB6
  54462. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54463. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54464. int$' %6.2 = Inc %6.1
  54465. int$' %6.3 = EnsureNamed %6.2
  54466. lgl' %6.4 = Lt %5.11, %6.3, elided
  54467. t %6.5 = AsTest %6.4
  54468. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54469. BB10
  54470. goto BB12
  54471. BB7
  54472. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54473. void StVar i, %7.0, e0.2
  54474. cls %7.2 = LdFun buildTreeDepth, e0.2
  54475. prom %7.3 = MkArg missing, Prom(2), e0.2
  54476. prom %7.4 = MkArg missing, Prom(3), e0.2
  54477. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54478. BB9
  54479. cls' %9.0 = LdConst function (depth, random) { if (d...
  54480. t %9.1 = Identical %7.2, %9.0
  54481. void Assume %9.1, %7.5
  54482. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54483. val^? %9.4 = LdVar array, e0.2
  54484. val %9.5 = Force %9.4, e0.2
  54485. val^? %9.6 = LdVar i, e0.2
  54486. val %9.7 = Force %9.6, e0.2
  54487. val^ %9.8 = EnsureNamed %9.3
  54488. val %9.9 = Force %9.8, e0.2
  54489. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54490. void StVar array, %9.10, e0.2
  54491. goto BB6
  54492. BB8
  54493. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54494. void Deopt %8.0
  54495. Prom 2:
  54496. BB0
  54497. env e0.0 = LdFunctionEnv
  54498. val^? %0.1 = LdVar depth, e0.0
  54499. val %0.2 = Force %0.1, e0.0
  54500. real$' %0.3 = LdConst [1] 1
  54501. goto BB1
  54502. BB1
  54503. val %1.0 = Sub %0.2, %0.3, e0.0
  54504. void Return %1.0
  54505. Prom 3:
  54506. BB0
  54507. env e0.0 = LdFunctionEnv
  54508. val^? %0.1 = LdVar random, e0.0
  54509. val %0.2 = Force %0.1, e0.0
  54510. void Return %0.2
  54511. Prom 4:
  54512. BB0
  54513. env e0.0 = LdFunctionEnv
  54514. cls %0.1 = LdFun nextRandom, e0.0
  54515. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54516. t %0.3 = Identical %0.1, %0.2
  54517. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54518. BB2
  54519. void Assume %0.3, %0.4
  54520. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54521. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54522. real$' %2.3 = LdConst [1] 10
  54523. goto BB3
  54524. BB1
  54525. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54526. void Deopt %1.0
  54527. BB3
  54528. val %3.0 = Force %2.2, e0.0
  54529. val %3.1 = Mod %3.0, %2.3, e0.0
  54530. real$' %3.2 = LdConst [1] 1
  54531. goto BB4
  54532. BB4
  54533. val %4.0 = Add %3.1, %3.2, e0.0
  54534. void Return %4.0
  54535. ├────── Scope resolution: == 673
  54536. test>buildTreeDepth@91[0x7f92445596d0]
  54537. BB0
  54538. val^ %0.0 = LdArg 0
  54539. val^ %0.1 = LdArg 1
  54540. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54541. val %0.3 = Force! %0.0, e0.2
  54542. real$' %0.4 = LdConst [1] 1
  54543. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54544. BB2
  54545. t %2.0 = IsObject %0.3
  54546. void AssumeNot %2.0, %0.5
  54547. lgl' %2.2 = Eq %0.3, %0.4, elided
  54548. lgl %2.3 = AsLogical %2.2
  54549. t %2.4 = AsTest %2.3
  54550. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54551. BB1
  54552. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54553. void Deopt %1.0
  54554. BB11
  54555. cls %11.0 = LdFun c, e0.2
  54556. prom %11.1 = MkArg missing, Prom(4), e0.2
  54557. val^ %11.2 = Call %11.0(%11.1) e0.2
  54558. goto BB12
  54559. BB3
  54560. cls %3.0 = LdFun vector, e0.2
  54561. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54562. BB12
  54563. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54564. val %12.1 = Force %12.0, e0.2
  54565. void Return %12.1
  54566. BB5
  54567. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54568. t %5.1 = Identical %3.0, %5.0
  54569. void Assume %5.1, %3.1
  54570. str$' %5.3 = LdConst [1] "list"
  54571. real$' %5.4 = LdConst [1] 4
  54572. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  54573. void StVar array, %5.5, e0.2
  54574. real$' %5.7 = LdConst [1] 1
  54575. real$' %5.8 = LdConst [1] 4
  54576. val' %5.9 = Colon %5.7, %5.8, elided
  54577. val' %5.10 = SetShared %5.9
  54578. int$' %5.11 = ForSeqSize %5.10
  54579. int$' %5.12 = LdConst [1] 0
  54580. goto BB6
  54581. BB4
  54582. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54583. void Deopt %4.0
  54584. BB6
  54585. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54586. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54587. int$' %6.2 = Inc %6.1
  54588. int$' %6.3 = EnsureNamed %6.2
  54589. lgl' %6.4 = Lt %5.11, %6.3, elided
  54590. t %6.5 = AsTest %6.4
  54591. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54592. BB10
  54593. goto BB12
  54594. BB7
  54595. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54596. void StVar i, %7.0, e0.2
  54597. cls %7.2 = LdFun buildTreeDepth, e0.2
  54598. prom %7.3 = MkArg missing, Prom(2), e0.2
  54599. prom %7.4 = MkArg missing, Prom(3), e0.2
  54600. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54601. BB9
  54602. cls' %9.0 = LdConst function (depth, random) { if (d...
  54603. t %9.1 = Identical %7.2, %9.0
  54604. void Assume %9.1, %7.5
  54605. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54606. val^? %9.4 = LdVar array, e0.2
  54607. val %9.5 = Force %9.4, e0.2
  54608. val^? %9.6 = LdVar i, e0.2
  54609. val %9.7 = Force %9.6, e0.2
  54610. val^ %9.8 = EnsureNamed %9.3
  54611. val %9.9 = Force %9.8, e0.2
  54612. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54613. void StVar array, %9.10, e0.2
  54614. goto BB6
  54615. BB8
  54616. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54617. void Deopt %8.0
  54618. Prom 2:
  54619. BB0
  54620. env e0.0 = LdFunctionEnv
  54621. val^? %0.1 = LdVar depth, e0.0
  54622. val %0.2 = Force %0.1, e0.0
  54623. real$' %0.3 = LdConst [1] 1
  54624. goto BB1
  54625. BB1
  54626. val %1.0 = Sub %0.2, %0.3, e0.0
  54627. void Return %1.0
  54628. Prom 3:
  54629. BB0
  54630. env e0.0 = LdFunctionEnv
  54631. val^? %0.1 = LdVar random, e0.0
  54632. val %0.2 = Force %0.1, e0.0
  54633. void Return %0.2
  54634. Prom 4:
  54635. BB0
  54636. env e0.0 = LdFunctionEnv
  54637. cls %0.1 = LdFun nextRandom, e0.0
  54638. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54639. t %0.3 = Identical %0.1, %0.2
  54640. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54641. BB2
  54642. void Assume %0.3, %0.4
  54643. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54644. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54645. real$' %2.3 = LdConst [1] 10
  54646. goto BB3
  54647. BB1
  54648. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54649. void Deopt %1.0
  54650. BB3
  54651. val %3.0 = Force %2.2, e0.0
  54652. val %3.1 = Mod %3.0, %2.3, e0.0
  54653. real$' %3.2 = LdConst [1] 1
  54654. goto BB4
  54655. BB4
  54656. val %4.0 = Add %3.1, %3.2, e0.0
  54657. void Return %4.0
  54658. ├────── Constant folding: == 680
  54659. test>buildTreeDepth@91[0x7f92445596d0]
  54660. BB0
  54661. val^ %0.0 = LdArg 0
  54662. val^ %0.1 = LdArg 1
  54663. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54664. val %0.3 = Force! %0.0, e0.2
  54665. real$' %0.4 = LdConst [1] 1
  54666. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54667. BB2
  54668. t %2.0 = IsObject %0.3
  54669. void AssumeNot %2.0, %0.5
  54670. lgl' %2.2 = Eq %0.3, %0.4, elided
  54671. lgl %2.3 = AsLogical %2.2
  54672. t %2.4 = AsTest %2.3
  54673. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54674. BB1
  54675. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54676. void Deopt %1.0
  54677. BB11
  54678. cls %11.0 = LdFun c, e0.2
  54679. prom %11.1 = MkArg missing, Prom(4), e0.2
  54680. val^ %11.2 = Call %11.0(%11.1) e0.2
  54681. goto BB12
  54682. BB3
  54683. cls %3.0 = LdFun vector, e0.2
  54684. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54685. BB12
  54686. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54687. val %12.1 = Force %12.0, e0.2
  54688. void Return %12.1
  54689. BB5
  54690. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54691. t %5.1 = Identical %3.0, %5.0
  54692. void Assume %5.1, %3.1
  54693. str$' %5.3 = LdConst [1] "list"
  54694. real$' %5.4 = LdConst [1] 4
  54695. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  54696. void StVar array, %5.5, e0.2
  54697. real$' %5.7 = LdConst [1] 1
  54698. real$' %5.8 = LdConst [1] 4
  54699. val' %5.9 = Colon %5.7, %5.8, elided
  54700. val' %5.10 = SetShared %5.9
  54701. int$' %5.11 = ForSeqSize %5.10
  54702. int$' %5.12 = LdConst [1] 0
  54703. goto BB6
  54704. BB4
  54705. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54706. void Deopt %4.0
  54707. BB6
  54708. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54709. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54710. int$' %6.2 = Inc %6.1
  54711. int$' %6.3 = EnsureNamed %6.2
  54712. lgl' %6.4 = Lt %5.11, %6.3, elided
  54713. t %6.5 = AsTest %6.4
  54714. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54715. BB10
  54716. goto BB12
  54717. BB7
  54718. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54719. void StVar i, %7.0, e0.2
  54720. cls %7.2 = LdFun buildTreeDepth, e0.2
  54721. prom %7.3 = MkArg missing, Prom(2), e0.2
  54722. prom %7.4 = MkArg missing, Prom(3), e0.2
  54723. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54724. BB9
  54725. cls' %9.0 = LdConst function (depth, random) { if (d...
  54726. t %9.1 = Identical %7.2, %9.0
  54727. void Assume %9.1, %7.5
  54728. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54729. val^? %9.4 = LdVar array, e0.2
  54730. val %9.5 = Force %9.4, e0.2
  54731. val^? %9.6 = LdVar i, e0.2
  54732. val %9.7 = Force %9.6, e0.2
  54733. val^ %9.8 = EnsureNamed %9.3
  54734. val %9.9 = Force %9.8, e0.2
  54735. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54736. void StVar array, %9.10, e0.2
  54737. goto BB6
  54738. BB8
  54739. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54740. void Deopt %8.0
  54741. Prom 2:
  54742. BB0
  54743. env e0.0 = LdFunctionEnv
  54744. val^? %0.1 = LdVar depth, e0.0
  54745. val %0.2 = Force %0.1, e0.0
  54746. real$' %0.3 = LdConst [1] 1
  54747. goto BB1
  54748. BB1
  54749. val %1.0 = Sub %0.2, %0.3, e0.0
  54750. void Return %1.0
  54751. Prom 3:
  54752. BB0
  54753. env e0.0 = LdFunctionEnv
  54754. val^? %0.1 = LdVar random, e0.0
  54755. val %0.2 = Force %0.1, e0.0
  54756. void Return %0.2
  54757. Prom 4:
  54758. BB0
  54759. env e0.0 = LdFunctionEnv
  54760. cls %0.1 = LdFun nextRandom, e0.0
  54761. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54762. t %0.3 = Identical %0.1, %0.2
  54763. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54764. BB2
  54765. void Assume %0.3, %0.4
  54766. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54767. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54768. real$' %2.3 = LdConst [1] 10
  54769. goto BB3
  54770. BB1
  54771. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54772. void Deopt %1.0
  54773. BB3
  54774. val %3.0 = Force %2.2, e0.0
  54775. val %3.1 = Mod %3.0, %2.3, e0.0
  54776. real$' %3.2 = LdConst [1] 1
  54777. goto BB4
  54778. BB4
  54779. val %4.0 = Add %3.1, %3.2, e0.0
  54780. void Return %4.0
  54781. ├────── Cleanup redundant operations: == 687
  54782. test>buildTreeDepth@91[0x7f92445596d0]
  54783. BB0
  54784. val^ %0.0 = LdArg 0
  54785. val^ %0.1 = LdArg 1
  54786. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54787. val %0.3 = Force! %0.0, e0.2
  54788. real$' %0.4 = LdConst [1] 1
  54789. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54790. BB2
  54791. t %2.0 = IsObject %0.3
  54792. void AssumeNot %2.0, %0.5
  54793. lgl' %2.2 = Eq %0.3, %0.4, elided
  54794. lgl %2.3 = AsLogical %2.2
  54795. t %2.4 = AsTest %2.3
  54796. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54797. BB1
  54798. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54799. void Deopt %1.0
  54800. BB11
  54801. cls %11.0 = LdFun c, e0.2
  54802. prom %11.1 = MkArg missing, Prom(4), e0.2
  54803. val^ %11.2 = Call %11.0(%11.1) e0.2
  54804. goto BB12
  54805. BB3
  54806. cls %3.0 = LdFun vector, e0.2
  54807. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54808. BB12
  54809. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54810. val %12.1 = Force %12.0, e0.2
  54811. void Return %12.1
  54812. BB5
  54813. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54814. t %5.1 = Identical %3.0, %5.0
  54815. void Assume %5.1, %3.1
  54816. str$' %5.3 = LdConst [1] "list"
  54817. real$' %5.4 = LdConst [1] 4
  54818. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  54819. void StVar array, %5.5, e0.2
  54820. real$' %5.7 = LdConst [1] 1
  54821. real$' %5.8 = LdConst [1] 4
  54822. val' %5.9 = Colon %5.7, %5.8, elided
  54823. val' %5.10 = SetShared %5.9
  54824. int$' %5.11 = ForSeqSize %5.10
  54825. int$' %5.12 = LdConst [1] 0
  54826. goto BB6
  54827. BB4
  54828. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54829. void Deopt %4.0
  54830. BB6
  54831. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54832. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54833. int$' %6.2 = Inc %6.1
  54834. int$' %6.3 = EnsureNamed %6.2
  54835. lgl' %6.4 = Lt %5.11, %6.3, elided
  54836. t %6.5 = AsTest %6.4
  54837. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54838. BB10
  54839. goto BB12
  54840. BB7
  54841. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54842. void StVar i, %7.0, e0.2
  54843. cls %7.2 = LdFun buildTreeDepth, e0.2
  54844. prom %7.3 = MkArg missing, Prom(2), e0.2
  54845. prom %7.4 = MkArg missing, Prom(3), e0.2
  54846. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54847. BB9
  54848. cls' %9.0 = LdConst function (depth, random) { if (d...
  54849. t %9.1 = Identical %7.2, %9.0
  54850. void Assume %9.1, %7.5
  54851. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54852. val^? %9.4 = LdVar array, e0.2
  54853. val %9.5 = Force %9.4, e0.2
  54854. val^? %9.6 = LdVar i, e0.2
  54855. val %9.7 = Force %9.6, e0.2
  54856. val^ %9.8 = EnsureNamed %9.3
  54857. val %9.9 = Force %9.8, e0.2
  54858. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54859. void StVar array, %9.10, e0.2
  54860. goto BB6
  54861. BB8
  54862. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54863. void Deopt %8.0
  54864. Prom 2:
  54865. BB0
  54866. env e0.0 = LdFunctionEnv
  54867. val^? %0.1 = LdVar depth, e0.0
  54868. val %0.2 = Force %0.1, e0.0
  54869. real$' %0.3 = LdConst [1] 1
  54870. goto BB1
  54871. BB1
  54872. val %1.0 = Sub %0.2, %0.3, e0.0
  54873. void Return %1.0
  54874. Prom 3:
  54875. BB0
  54876. env e0.0 = LdFunctionEnv
  54877. val^? %0.1 = LdVar random, e0.0
  54878. val %0.2 = Force %0.1, e0.0
  54879. void Return %0.2
  54880. Prom 4:
  54881. BB0
  54882. env e0.0 = LdFunctionEnv
  54883. cls %0.1 = LdFun nextRandom, e0.0
  54884. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  54885. t %0.3 = Identical %0.1, %0.2
  54886. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54887. BB2
  54888. void Assume %0.3, %0.4
  54889. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  54890. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  54891. real$' %2.3 = LdConst [1] 10
  54892. goto BB3
  54893. BB1
  54894. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  54895. void Deopt %1.0
  54896. BB3
  54897. val %3.0 = Force %2.2, e0.0
  54898. val %3.1 = Mod %3.0, %2.3, e0.0
  54899. real$' %3.2 = LdConst [1] 1
  54900. goto BB4
  54901. BB4
  54902. val %4.0 = Add %3.1, %3.2, e0.0
  54903. void Return %4.0
  54904. ├────── Delay instructions: == 694
  54905. test>buildTreeDepth@91[0x7f92445596d0]
  54906. BB0
  54907. val^ %0.0 = LdArg 0
  54908. val^ %0.1 = LdArg 1
  54909. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  54910. val %0.3 = Force! %0.0, e0.2
  54911. real$' %0.4 = LdConst [1] 1
  54912. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  54913. BB2
  54914. t %2.0 = IsObject %0.3
  54915. void AssumeNot %2.0, %0.5
  54916. lgl' %2.2 = Eq %0.3, %0.4, elided
  54917. lgl %2.3 = AsLogical %2.2
  54918. t %2.4 = AsTest %2.3
  54919. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  54920. BB1
  54921. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  54922. void Deopt %1.0
  54923. BB11
  54924. cls %11.0 = LdFun c, e0.2
  54925. prom %11.1 = MkArg missing, Prom(4), e0.2
  54926. val^ %11.2 = Call %11.0(%11.1) e0.2
  54927. goto BB12
  54928. BB3
  54929. cls %3.0 = LdFun vector, e0.2
  54930. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  54931. BB12
  54932. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  54933. val %12.1 = Force %12.0, e0.2
  54934. void Return %12.1
  54935. BB5
  54936. cls' %5.0 = LdConst function (mode = "logical", length = ...
  54937. t %5.1 = Identical %3.0, %5.0
  54938. void Assume %5.1, %3.1
  54939. real$' %5.3 = LdConst [1] 4
  54940. str$' %5.4 = LdConst [1] "list"
  54941. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  54942. void StVar array, %5.5, e0.2
  54943. real$' %5.7 = LdConst [1] 4
  54944. real$' %5.8 = LdConst [1] 1
  54945. val' %5.9 = Colon %5.8, %5.7, elided
  54946. val' %5.10 = SetShared %5.9
  54947. int$' %5.11 = ForSeqSize %5.10
  54948. int$' %5.12 = LdConst [1] 0
  54949. goto BB6
  54950. BB4
  54951. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  54952. void Deopt %4.0
  54953. BB6
  54954. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  54955. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  54956. int$' %6.2 = Inc %6.1
  54957. int$' %6.3 = EnsureNamed %6.2
  54958. lgl' %6.4 = Lt %5.11, %6.3, elided
  54959. t %6.5 = AsTest %6.4
  54960. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  54961. BB10
  54962. goto BB12
  54963. BB7
  54964. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  54965. void StVar i, %7.0, e0.2
  54966. cls %7.2 = LdFun buildTreeDepth, e0.2
  54967. prom %7.3 = MkArg missing, Prom(2), e0.2
  54968. prom %7.4 = MkArg missing, Prom(3), e0.2
  54969. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  54970. BB9
  54971. cls' %9.0 = LdConst function (depth, random) { if (d...
  54972. t %9.1 = Identical %7.2, %9.0
  54973. void Assume %9.1, %7.5
  54974. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  54975. val^? %9.4 = LdVar array, e0.2
  54976. val %9.5 = Force %9.4, e0.2
  54977. val^? %9.6 = LdVar i, e0.2
  54978. val %9.7 = Force %9.6, e0.2
  54979. val^ %9.8 = EnsureNamed %9.3
  54980. val %9.9 = Force %9.8, e0.2
  54981. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  54982. void StVar array, %9.10, e0.2
  54983. goto BB6
  54984. BB8
  54985. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  54986. void Deopt %8.0
  54987. Prom 2:
  54988. BB0
  54989. env e0.0 = LdFunctionEnv
  54990. val^? %0.1 = LdVar depth, e0.0
  54991. val %0.2 = Force %0.1, e0.0
  54992. real$' %0.3 = LdConst [1] 1
  54993. goto BB1
  54994. BB1
  54995. val %1.0 = Sub %0.2, %0.3, e0.0
  54996. void Return %1.0
  54997. Prom 3:
  54998. BB0
  54999. env e0.0 = LdFunctionEnv
  55000. val^? %0.1 = LdVar random, e0.0
  55001. val %0.2 = Force %0.1, e0.0
  55002. void Return %0.2
  55003. Prom 4:
  55004. BB0
  55005. env e0.0 = LdFunctionEnv
  55006. cls %0.1 = LdFun nextRandom, e0.0
  55007. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55008. t %0.3 = Identical %0.1, %0.2
  55009. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55010. BB2
  55011. void Assume %0.3, %0.4
  55012. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55013. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55014. real$' %2.3 = LdConst [1] 10
  55015. goto BB3
  55016. BB1
  55017. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55018. void Deopt %1.0
  55019. BB3
  55020. val %3.0 = Force %2.2, e0.0
  55021. val %3.1 = Mod %3.0, %2.3, e0.0
  55022. real$' %3.2 = LdConst [1] 1
  55023. goto BB4
  55024. BB4
  55025. val %4.0 = Add %3.1, %3.2, e0.0
  55026. void Return %4.0
  55027. ├────── Elide environments not needed: == 701
  55028. test>buildTreeDepth@91[0x7f92445596d0]
  55029. BB0
  55030. val^ %0.0 = LdArg 0
  55031. val^ %0.1 = LdArg 1
  55032. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55033. val %0.3 = Force! %0.0, e0.2
  55034. real$' %0.4 = LdConst [1] 1
  55035. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55036. BB2
  55037. t %2.0 = IsObject %0.3
  55038. void AssumeNot %2.0, %0.5
  55039. lgl' %2.2 = Eq %0.3, %0.4, elided
  55040. lgl %2.3 = AsLogical %2.2
  55041. t %2.4 = AsTest %2.3
  55042. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55043. BB1
  55044. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55045. void Deopt %1.0
  55046. BB11
  55047. cls %11.0 = LdFun c, e0.2
  55048. prom %11.1 = MkArg missing, Prom(4), e0.2
  55049. val^ %11.2 = Call %11.0(%11.1) e0.2
  55050. goto BB12
  55051. BB3
  55052. cls %3.0 = LdFun vector, e0.2
  55053. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55054. BB12
  55055. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55056. val %12.1 = Force %12.0, e0.2
  55057. void Return %12.1
  55058. BB5
  55059. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55060. t %5.1 = Identical %3.0, %5.0
  55061. void Assume %5.1, %3.1
  55062. real$' %5.3 = LdConst [1] 4
  55063. str$' %5.4 = LdConst [1] "list"
  55064. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55065. void StVar array, %5.5, e0.2
  55066. real$' %5.7 = LdConst [1] 4
  55067. real$' %5.8 = LdConst [1] 1
  55068. val' %5.9 = Colon %5.8, %5.7, elided
  55069. val' %5.10 = SetShared %5.9
  55070. int$' %5.11 = ForSeqSize %5.10
  55071. int$' %5.12 = LdConst [1] 0
  55072. goto BB6
  55073. BB4
  55074. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55075. void Deopt %4.0
  55076. BB6
  55077. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55078. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55079. int$' %6.2 = Inc %6.1
  55080. int$' %6.3 = EnsureNamed %6.2
  55081. lgl' %6.4 = Lt %5.11, %6.3, elided
  55082. t %6.5 = AsTest %6.4
  55083. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55084. BB10
  55085. goto BB12
  55086. BB7
  55087. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55088. void StVar i, %7.0, e0.2
  55089. cls %7.2 = LdFun buildTreeDepth, e0.2
  55090. prom %7.3 = MkArg missing, Prom(2), e0.2
  55091. prom %7.4 = MkArg missing, Prom(3), e0.2
  55092. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55093. BB9
  55094. cls' %9.0 = LdConst function (depth, random) { if (d...
  55095. t %9.1 = Identical %7.2, %9.0
  55096. void Assume %9.1, %7.5
  55097. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55098. val^? %9.4 = LdVar array, e0.2
  55099. val %9.5 = Force %9.4, e0.2
  55100. val^? %9.6 = LdVar i, e0.2
  55101. val %9.7 = Force %9.6, e0.2
  55102. val^ %9.8 = EnsureNamed %9.3
  55103. val %9.9 = Force %9.8, e0.2
  55104. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55105. void StVar array, %9.10, e0.2
  55106. goto BB6
  55107. BB8
  55108. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55109. void Deopt %8.0
  55110. Prom 2:
  55111. BB0
  55112. env e0.0 = LdFunctionEnv
  55113. val^? %0.1 = LdVar depth, e0.0
  55114. val %0.2 = Force %0.1, e0.0
  55115. real$' %0.3 = LdConst [1] 1
  55116. goto BB1
  55117. BB1
  55118. val %1.0 = Sub %0.2, %0.3, e0.0
  55119. void Return %1.0
  55120. Prom 3:
  55121. BB0
  55122. env e0.0 = LdFunctionEnv
  55123. val^? %0.1 = LdVar random, e0.0
  55124. val %0.2 = Force %0.1, e0.0
  55125. void Return %0.2
  55126. Prom 4:
  55127. BB0
  55128. env e0.0 = LdFunctionEnv
  55129. cls %0.1 = LdFun nextRandom, e0.0
  55130. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55131. t %0.3 = Identical %0.1, %0.2
  55132. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55133. BB2
  55134. void Assume %0.3, %0.4
  55135. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55136. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55137. real$' %2.3 = LdConst [1] 10
  55138. goto BB3
  55139. BB1
  55140. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55141. void Deopt %1.0
  55142. BB3
  55143. val %3.0 = Force %2.2, e0.0
  55144. val %3.1 = Mod %3.0, %2.3, e0.0
  55145. real$' %3.2 = LdConst [1] 1
  55146. goto BB4
  55147. BB4
  55148. val %4.0 = Add %3.1, %3.2, e0.0
  55149. void Return %4.0
  55150. ├────── Move environment creation as far as possible: == 708
  55151. test>buildTreeDepth@91[0x7f92445596d0]
  55152. BB0
  55153. val^ %0.0 = LdArg 0
  55154. val^ %0.1 = LdArg 1
  55155. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55156. val %0.3 = Force! %0.0, e0.2
  55157. real$' %0.4 = LdConst [1] 1
  55158. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55159. BB2
  55160. t %2.0 = IsObject %0.3
  55161. void AssumeNot %2.0, %0.5
  55162. lgl' %2.2 = Eq %0.3, %0.4, elided
  55163. lgl %2.3 = AsLogical %2.2
  55164. t %2.4 = AsTest %2.3
  55165. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55166. BB1
  55167. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55168. void Deopt %1.0
  55169. BB11
  55170. cls %11.0 = LdFun c, e0.2
  55171. prom %11.1 = MkArg missing, Prom(4), e0.2
  55172. val^ %11.2 = Call %11.0(%11.1) e0.2
  55173. goto BB12
  55174. BB3
  55175. cls %3.0 = LdFun vector, e0.2
  55176. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55177. BB12
  55178. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55179. val %12.1 = Force %12.0, e0.2
  55180. void Return %12.1
  55181. BB5
  55182. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55183. t %5.1 = Identical %3.0, %5.0
  55184. void Assume %5.1, %3.1
  55185. real$' %5.3 = LdConst [1] 4
  55186. str$' %5.4 = LdConst [1] "list"
  55187. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55188. void StVar array, %5.5, e0.2
  55189. real$' %5.7 = LdConst [1] 4
  55190. real$' %5.8 = LdConst [1] 1
  55191. val' %5.9 = Colon %5.8, %5.7, elided
  55192. val' %5.10 = SetShared %5.9
  55193. int$' %5.11 = ForSeqSize %5.10
  55194. int$' %5.12 = LdConst [1] 0
  55195. goto BB6
  55196. BB4
  55197. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55198. void Deopt %4.0
  55199. BB6
  55200. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55201. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55202. int$' %6.2 = Inc %6.1
  55203. int$' %6.3 = EnsureNamed %6.2
  55204. lgl' %6.4 = Lt %5.11, %6.3, elided
  55205. t %6.5 = AsTest %6.4
  55206. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55207. BB10
  55208. goto BB12
  55209. BB7
  55210. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55211. void StVar i, %7.0, e0.2
  55212. cls %7.2 = LdFun buildTreeDepth, e0.2
  55213. prom %7.3 = MkArg missing, Prom(2), e0.2
  55214. prom %7.4 = MkArg missing, Prom(3), e0.2
  55215. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55216. BB9
  55217. cls' %9.0 = LdConst function (depth, random) { if (d...
  55218. t %9.1 = Identical %7.2, %9.0
  55219. void Assume %9.1, %7.5
  55220. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55221. val^? %9.4 = LdVar array, e0.2
  55222. val %9.5 = Force %9.4, e0.2
  55223. val^? %9.6 = LdVar i, e0.2
  55224. val %9.7 = Force %9.6, e0.2
  55225. val^ %9.8 = EnsureNamed %9.3
  55226. val %9.9 = Force %9.8, e0.2
  55227. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55228. void StVar array, %9.10, e0.2
  55229. goto BB6
  55230. BB8
  55231. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55232. void Deopt %8.0
  55233. Prom 2:
  55234. BB0
  55235. env e0.0 = LdFunctionEnv
  55236. val^? %0.1 = LdVar depth, e0.0
  55237. val %0.2 = Force %0.1, e0.0
  55238. real$' %0.3 = LdConst [1] 1
  55239. goto BB1
  55240. BB1
  55241. val %1.0 = Sub %0.2, %0.3, e0.0
  55242. void Return %1.0
  55243. Prom 3:
  55244. BB0
  55245. env e0.0 = LdFunctionEnv
  55246. val^? %0.1 = LdVar random, e0.0
  55247. val %0.2 = Force %0.1, e0.0
  55248. void Return %0.2
  55249. Prom 4:
  55250. BB0
  55251. env e0.0 = LdFunctionEnv
  55252. cls %0.1 = LdFun nextRandom, e0.0
  55253. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55254. t %0.3 = Identical %0.1, %0.2
  55255. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55256. BB2
  55257. void Assume %0.3, %0.4
  55258. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55259. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55260. real$' %2.3 = LdConst [1] 10
  55261. goto BB3
  55262. BB1
  55263. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55264. void Deopt %1.0
  55265. BB3
  55266. val %3.0 = Force %2.2, e0.0
  55267. val %3.1 = Mod %3.0, %2.3, e0.0
  55268. real$' %3.2 = LdConst [1] 1
  55269. goto BB4
  55270. BB4
  55271. val %4.0 = Add %3.1, %3.2, e0.0
  55272. void Return %4.0
  55273. ├────── Cleanup redundant operations: == 715
  55274. test>buildTreeDepth@91[0x7f92445596d0]
  55275. BB0
  55276. val^ %0.0 = LdArg 0
  55277. val^ %0.1 = LdArg 1
  55278. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55279. val %0.3 = Force! %0.0, e0.2
  55280. real$' %0.4 = LdConst [1] 1
  55281. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55282. BB2
  55283. t %2.0 = IsObject %0.3
  55284. void AssumeNot %2.0, %0.5
  55285. lgl' %2.2 = Eq %0.3, %0.4, elided
  55286. lgl %2.3 = AsLogical %2.2
  55287. t %2.4 = AsTest %2.3
  55288. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55289. BB1
  55290. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55291. void Deopt %1.0
  55292. BB11
  55293. cls %11.0 = LdFun c, e0.2
  55294. prom %11.1 = MkArg missing, Prom(4), e0.2
  55295. val^ %11.2 = Call %11.0(%11.1) e0.2
  55296. goto BB12
  55297. BB3
  55298. cls %3.0 = LdFun vector, e0.2
  55299. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55300. BB12
  55301. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55302. val %12.1 = Force %12.0, e0.2
  55303. void Return %12.1
  55304. BB5
  55305. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55306. t %5.1 = Identical %3.0, %5.0
  55307. void Assume %5.1, %3.1
  55308. real$' %5.3 = LdConst [1] 4
  55309. str$' %5.4 = LdConst [1] "list"
  55310. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55311. void StVar array, %5.5, e0.2
  55312. real$' %5.7 = LdConst [1] 4
  55313. real$' %5.8 = LdConst [1] 1
  55314. val' %5.9 = Colon %5.8, %5.7, elided
  55315. val' %5.10 = SetShared %5.9
  55316. int$' %5.11 = ForSeqSize %5.10
  55317. int$' %5.12 = LdConst [1] 0
  55318. goto BB6
  55319. BB4
  55320. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55321. void Deopt %4.0
  55322. BB6
  55323. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55324. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55325. int$' %6.2 = Inc %6.1
  55326. int$' %6.3 = EnsureNamed %6.2
  55327. lgl' %6.4 = Lt %5.11, %6.3, elided
  55328. t %6.5 = AsTest %6.4
  55329. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55330. BB10
  55331. goto BB12
  55332. BB7
  55333. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55334. void StVar i, %7.0, e0.2
  55335. cls %7.2 = LdFun buildTreeDepth, e0.2
  55336. prom %7.3 = MkArg missing, Prom(2), e0.2
  55337. prom %7.4 = MkArg missing, Prom(3), e0.2
  55338. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55339. BB9
  55340. cls' %9.0 = LdConst function (depth, random) { if (d...
  55341. t %9.1 = Identical %7.2, %9.0
  55342. void Assume %9.1, %7.5
  55343. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55344. val^? %9.4 = LdVar array, e0.2
  55345. val %9.5 = Force %9.4, e0.2
  55346. val^? %9.6 = LdVar i, e0.2
  55347. val %9.7 = Force %9.6, e0.2
  55348. val^ %9.8 = EnsureNamed %9.3
  55349. val %9.9 = Force %9.8, e0.2
  55350. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55351. void StVar array, %9.10, e0.2
  55352. goto BB6
  55353. BB8
  55354. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55355. void Deopt %8.0
  55356. Prom 2:
  55357. BB0
  55358. env e0.0 = LdFunctionEnv
  55359. val^? %0.1 = LdVar depth, e0.0
  55360. val %0.2 = Force %0.1, e0.0
  55361. real$' %0.3 = LdConst [1] 1
  55362. goto BB1
  55363. BB1
  55364. val %1.0 = Sub %0.2, %0.3, e0.0
  55365. void Return %1.0
  55366. Prom 3:
  55367. BB0
  55368. env e0.0 = LdFunctionEnv
  55369. val^? %0.1 = LdVar random, e0.0
  55370. val %0.2 = Force %0.1, e0.0
  55371. void Return %0.2
  55372. Prom 4:
  55373. BB0
  55374. env e0.0 = LdFunctionEnv
  55375. cls %0.1 = LdFun nextRandom, e0.0
  55376. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55377. t %0.3 = Identical %0.1, %0.2
  55378. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55379. BB2
  55380. void Assume %0.3, %0.4
  55381. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55382. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55383. real$' %2.3 = LdConst [1] 10
  55384. goto BB3
  55385. BB1
  55386. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55387. void Deopt %1.0
  55388. BB3
  55389. val %3.0 = Force %2.2, e0.0
  55390. val %3.1 = Mod %3.0, %2.3, e0.0
  55391. real$' %3.2 = LdConst [1] 1
  55392. goto BB4
  55393. BB4
  55394. val %4.0 = Add %3.1, %3.2, e0.0
  55395. void Return %4.0
  55396. ├────── Inline closures: == 722
  55397. test>buildTreeDepth@91[0x7f92445596d0]
  55398. BB0
  55399. val^ %0.0 = LdArg 0
  55400. val^ %0.1 = LdArg 1
  55401. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55402. val %0.3 = Force! %0.0, e0.2
  55403. real$' %0.4 = LdConst [1] 1
  55404. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55405. BB2
  55406. t %2.0 = IsObject %0.3
  55407. void AssumeNot %2.0, %0.5
  55408. lgl' %2.2 = Eq %0.3, %0.4, elided
  55409. lgl %2.3 = AsLogical %2.2
  55410. t %2.4 = AsTest %2.3
  55411. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55412. BB1
  55413. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55414. void Deopt %1.0
  55415. BB11
  55416. cls %11.0 = LdFun c, e0.2
  55417. prom %11.1 = MkArg missing, Prom(4), e0.2
  55418. val^ %11.2 = Call %11.0(%11.1) e0.2
  55419. goto BB12
  55420. BB3
  55421. cls %3.0 = LdFun vector, e0.2
  55422. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55423. BB12
  55424. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55425. val %12.1 = Force %12.0, e0.2
  55426. void Return %12.1
  55427. BB5
  55428. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55429. t %5.1 = Identical %3.0, %5.0
  55430. void Assume %5.1, %3.1
  55431. real$' %5.3 = LdConst [1] 4
  55432. str$' %5.4 = LdConst [1] "list"
  55433. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55434. void StVar array, %5.5, e0.2
  55435. real$' %5.7 = LdConst [1] 4
  55436. real$' %5.8 = LdConst [1] 1
  55437. val' %5.9 = Colon %5.8, %5.7, elided
  55438. val' %5.10 = SetShared %5.9
  55439. int$' %5.11 = ForSeqSize %5.10
  55440. int$' %5.12 = LdConst [1] 0
  55441. goto BB6
  55442. BB4
  55443. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55444. void Deopt %4.0
  55445. BB6
  55446. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55447. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55448. int$' %6.2 = Inc %6.1
  55449. int$' %6.3 = EnsureNamed %6.2
  55450. lgl' %6.4 = Lt %5.11, %6.3, elided
  55451. t %6.5 = AsTest %6.4
  55452. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55453. BB10
  55454. goto BB12
  55455. BB7
  55456. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55457. void StVar i, %7.0, e0.2
  55458. cls %7.2 = LdFun buildTreeDepth, e0.2
  55459. prom %7.3 = MkArg missing, Prom(2), e0.2
  55460. prom %7.4 = MkArg missing, Prom(3), e0.2
  55461. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55462. BB9
  55463. cls' %9.0 = LdConst function (depth, random) { if (d...
  55464. t %9.1 = Identical %7.2, %9.0
  55465. void Assume %9.1, %7.5
  55466. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55467. val^? %9.4 = LdVar array, e0.2
  55468. val %9.5 = Force %9.4, e0.2
  55469. val^? %9.6 = LdVar i, e0.2
  55470. val %9.7 = Force %9.6, e0.2
  55471. val^ %9.8 = EnsureNamed %9.3
  55472. val %9.9 = Force %9.8, e0.2
  55473. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55474. void StVar array, %9.10, e0.2
  55475. goto BB6
  55476. BB8
  55477. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55478. void Deopt %8.0
  55479. Prom 2:
  55480. BB0
  55481. env e0.0 = LdFunctionEnv
  55482. val^? %0.1 = LdVar depth, e0.0
  55483. val %0.2 = Force %0.1, e0.0
  55484. real$' %0.3 = LdConst [1] 1
  55485. goto BB1
  55486. BB1
  55487. val %1.0 = Sub %0.2, %0.3, e0.0
  55488. void Return %1.0
  55489. Prom 3:
  55490. BB0
  55491. env e0.0 = LdFunctionEnv
  55492. val^? %0.1 = LdVar random, e0.0
  55493. val %0.2 = Force %0.1, e0.0
  55494. void Return %0.2
  55495. Prom 4:
  55496. BB0
  55497. env e0.0 = LdFunctionEnv
  55498. cls %0.1 = LdFun nextRandom, e0.0
  55499. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55500. t %0.3 = Identical %0.1, %0.2
  55501. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55502. BB2
  55503. void Assume %0.3, %0.4
  55504. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55505. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55506. real$' %2.3 = LdConst [1] 10
  55507. goto BB3
  55508. BB1
  55509. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55510. void Deopt %1.0
  55511. BB3
  55512. val %3.0 = Force %2.2, e0.0
  55513. val %3.1 = Mod %3.0, %2.3, e0.0
  55514. real$' %3.2 = LdConst [1] 1
  55515. goto BB4
  55516. BB4
  55517. val %4.0 = Add %3.1, %3.2, e0.0
  55518. void Return %4.0
  55519. ├────── Inline Promises: == 729
  55520. test>buildTreeDepth@91[0x7f92445596d0]
  55521. BB0
  55522. val^ %0.0 = LdArg 0
  55523. val^ %0.1 = LdArg 1
  55524. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55525. val %0.3 = Force! %0.0, e0.2
  55526. real$' %0.4 = LdConst [1] 1
  55527. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55528. BB2
  55529. t %2.0 = IsObject %0.3
  55530. void AssumeNot %2.0, %0.5
  55531. lgl' %2.2 = Eq %0.3, %0.4, elided
  55532. lgl %2.3 = AsLogical %2.2
  55533. t %2.4 = AsTest %2.3
  55534. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55535. BB1
  55536. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55537. void Deopt %1.0
  55538. BB11
  55539. cls %11.0 = LdFun c, e0.2
  55540. prom %11.1 = MkArg missing, Prom(4), e0.2
  55541. val^ %11.2 = Call %11.0(%11.1) e0.2
  55542. goto BB12
  55543. BB3
  55544. cls %3.0 = LdFun vector, e0.2
  55545. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55546. BB12
  55547. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55548. val %12.1 = Force %12.0, e0.2
  55549. void Return %12.1
  55550. BB5
  55551. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55552. t %5.1 = Identical %3.0, %5.0
  55553. void Assume %5.1, %3.1
  55554. real$' %5.3 = LdConst [1] 4
  55555. str$' %5.4 = LdConst [1] "list"
  55556. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55557. void StVar array, %5.5, e0.2
  55558. real$' %5.7 = LdConst [1] 4
  55559. real$' %5.8 = LdConst [1] 1
  55560. val' %5.9 = Colon %5.8, %5.7, elided
  55561. val' %5.10 = SetShared %5.9
  55562. int$' %5.11 = ForSeqSize %5.10
  55563. int$' %5.12 = LdConst [1] 0
  55564. goto BB6
  55565. BB4
  55566. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55567. void Deopt %4.0
  55568. BB6
  55569. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55570. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55571. int$' %6.2 = Inc %6.1
  55572. int$' %6.3 = EnsureNamed %6.2
  55573. lgl' %6.4 = Lt %5.11, %6.3, elided
  55574. t %6.5 = AsTest %6.4
  55575. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55576. BB10
  55577. goto BB12
  55578. BB7
  55579. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55580. void StVar i, %7.0, e0.2
  55581. cls %7.2 = LdFun buildTreeDepth, e0.2
  55582. prom %7.3 = MkArg missing, Prom(2), e0.2
  55583. prom %7.4 = MkArg missing, Prom(3), e0.2
  55584. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55585. BB9
  55586. cls' %9.0 = LdConst function (depth, random) { if (d...
  55587. t %9.1 = Identical %7.2, %9.0
  55588. void Assume %9.1, %7.5
  55589. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55590. val^? %9.4 = LdVar array, e0.2
  55591. val %9.5 = Force %9.4, e0.2
  55592. val^? %9.6 = LdVar i, e0.2
  55593. val %9.7 = Force %9.6, e0.2
  55594. val^ %9.8 = EnsureNamed %9.3
  55595. val %9.9 = Force %9.8, e0.2
  55596. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55597. void StVar array, %9.10, e0.2
  55598. goto BB6
  55599. BB8
  55600. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55601. void Deopt %8.0
  55602. Prom 2:
  55603. BB0
  55604. env e0.0 = LdFunctionEnv
  55605. val^? %0.1 = LdVar depth, e0.0
  55606. val %0.2 = Force %0.1, e0.0
  55607. real$' %0.3 = LdConst [1] 1
  55608. goto BB1
  55609. BB1
  55610. val %1.0 = Sub %0.2, %0.3, e0.0
  55611. void Return %1.0
  55612. Prom 3:
  55613. BB0
  55614. env e0.0 = LdFunctionEnv
  55615. val^? %0.1 = LdVar random, e0.0
  55616. val %0.2 = Force %0.1, e0.0
  55617. void Return %0.2
  55618. Prom 4:
  55619. BB0
  55620. env e0.0 = LdFunctionEnv
  55621. cls %0.1 = LdFun nextRandom, e0.0
  55622. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55623. t %0.3 = Identical %0.1, %0.2
  55624. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55625. BB2
  55626. void Assume %0.3, %0.4
  55627. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55628. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55629. real$' %2.3 = LdConst [1] 10
  55630. goto BB3
  55631. BB1
  55632. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55633. void Deopt %1.0
  55634. BB3
  55635. val %3.0 = Force %2.2, e0.0
  55636. val %3.1 = Mod %3.0, %2.3, e0.0
  55637. real$' %3.2 = LdConst [1] 1
  55638. goto BB4
  55639. BB4
  55640. val %4.0 = Add %3.1, %3.2, e0.0
  55641. void Return %4.0
  55642. ├────── Scope resolution: == 736
  55643. test>buildTreeDepth@91[0x7f92445596d0]
  55644. BB0
  55645. val^ %0.0 = LdArg 0
  55646. val^ %0.1 = LdArg 1
  55647. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55648. val %0.3 = Force! %0.0, e0.2
  55649. real$' %0.4 = LdConst [1] 1
  55650. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55651. BB2
  55652. t %2.0 = IsObject %0.3
  55653. void AssumeNot %2.0, %0.5
  55654. lgl' %2.2 = Eq %0.3, %0.4, elided
  55655. lgl %2.3 = AsLogical %2.2
  55656. t %2.4 = AsTest %2.3
  55657. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55658. BB1
  55659. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55660. void Deopt %1.0
  55661. BB11
  55662. cls %11.0 = LdFun c, e0.2
  55663. prom %11.1 = MkArg missing, Prom(4), e0.2
  55664. val^ %11.2 = Call %11.0(%11.1) e0.2
  55665. goto BB12
  55666. BB3
  55667. cls %3.0 = LdFun vector, e0.2
  55668. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55669. BB12
  55670. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55671. val %12.1 = Force %12.0, e0.2
  55672. void Return %12.1
  55673. BB5
  55674. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55675. t %5.1 = Identical %3.0, %5.0
  55676. void Assume %5.1, %3.1
  55677. real$' %5.3 = LdConst [1] 4
  55678. str$' %5.4 = LdConst [1] "list"
  55679. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55680. void StVar array, %5.5, e0.2
  55681. real$' %5.7 = LdConst [1] 4
  55682. real$' %5.8 = LdConst [1] 1
  55683. val' %5.9 = Colon %5.8, %5.7, elided
  55684. val' %5.10 = SetShared %5.9
  55685. int$' %5.11 = ForSeqSize %5.10
  55686. int$' %5.12 = LdConst [1] 0
  55687. goto BB6
  55688. BB4
  55689. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55690. void Deopt %4.0
  55691. BB6
  55692. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55693. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55694. int$' %6.2 = Inc %6.1
  55695. int$' %6.3 = EnsureNamed %6.2
  55696. lgl' %6.4 = Lt %5.11, %6.3, elided
  55697. t %6.5 = AsTest %6.4
  55698. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55699. BB10
  55700. goto BB12
  55701. BB7
  55702. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55703. void StVar i, %7.0, e0.2
  55704. cls %7.2 = LdFun buildTreeDepth, e0.2
  55705. prom %7.3 = MkArg missing, Prom(2), e0.2
  55706. prom %7.4 = MkArg missing, Prom(3), e0.2
  55707. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55708. BB9
  55709. cls' %9.0 = LdConst function (depth, random) { if (d...
  55710. t %9.1 = Identical %7.2, %9.0
  55711. void Assume %9.1, %7.5
  55712. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55713. val^? %9.4 = LdVar array, e0.2
  55714. val %9.5 = Force %9.4, e0.2
  55715. val^? %9.6 = LdVar i, e0.2
  55716. val %9.7 = Force %9.6, e0.2
  55717. val^ %9.8 = EnsureNamed %9.3
  55718. val %9.9 = Force %9.8, e0.2
  55719. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55720. void StVar array, %9.10, e0.2
  55721. goto BB6
  55722. BB8
  55723. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55724. void Deopt %8.0
  55725. Prom 2:
  55726. BB0
  55727. env e0.0 = LdFunctionEnv
  55728. val^? %0.1 = LdVar depth, e0.0
  55729. val %0.2 = Force %0.1, e0.0
  55730. real$' %0.3 = LdConst [1] 1
  55731. goto BB1
  55732. BB1
  55733. val %1.0 = Sub %0.2, %0.3, e0.0
  55734. void Return %1.0
  55735. Prom 3:
  55736. BB0
  55737. env e0.0 = LdFunctionEnv
  55738. val^? %0.1 = LdVar random, e0.0
  55739. val %0.2 = Force %0.1, e0.0
  55740. void Return %0.2
  55741. Prom 4:
  55742. BB0
  55743. env e0.0 = LdFunctionEnv
  55744. cls %0.1 = LdFun nextRandom, e0.0
  55745. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55746. t %0.3 = Identical %0.1, %0.2
  55747. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55748. BB2
  55749. void Assume %0.3, %0.4
  55750. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55751. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55752. real$' %2.3 = LdConst [1] 10
  55753. goto BB3
  55754. BB1
  55755. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55756. void Deopt %1.0
  55757. BB3
  55758. val %3.0 = Force %2.2, e0.0
  55759. val %3.1 = Mod %3.0, %2.3, e0.0
  55760. real$' %3.2 = LdConst [1] 1
  55761. goto BB4
  55762. BB4
  55763. val %4.0 = Add %3.1, %3.2, e0.0
  55764. void Return %4.0
  55765. ├────── Constant folding: == 743
  55766. test>buildTreeDepth@91[0x7f92445596d0]
  55767. BB0
  55768. val^ %0.0 = LdArg 0
  55769. val^ %0.1 = LdArg 1
  55770. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55771. val %0.3 = Force! %0.0, e0.2
  55772. real$' %0.4 = LdConst [1] 1
  55773. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55774. BB2
  55775. t %2.0 = IsObject %0.3
  55776. void AssumeNot %2.0, %0.5
  55777. lgl' %2.2 = Eq %0.3, %0.4, elided
  55778. lgl %2.3 = AsLogical %2.2
  55779. t %2.4 = AsTest %2.3
  55780. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55781. BB1
  55782. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55783. void Deopt %1.0
  55784. BB11
  55785. cls %11.0 = LdFun c, e0.2
  55786. prom %11.1 = MkArg missing, Prom(4), e0.2
  55787. val^ %11.2 = Call %11.0(%11.1) e0.2
  55788. goto BB12
  55789. BB3
  55790. cls %3.0 = LdFun vector, e0.2
  55791. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55792. BB12
  55793. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55794. val %12.1 = Force %12.0, e0.2
  55795. void Return %12.1
  55796. BB5
  55797. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55798. t %5.1 = Identical %3.0, %5.0
  55799. void Assume %5.1, %3.1
  55800. real$' %5.3 = LdConst [1] 4
  55801. str$' %5.4 = LdConst [1] "list"
  55802. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55803. void StVar array, %5.5, e0.2
  55804. real$' %5.7 = LdConst [1] 4
  55805. real$' %5.8 = LdConst [1] 1
  55806. val' %5.9 = Colon %5.8, %5.7, elided
  55807. val' %5.10 = SetShared %5.9
  55808. int$' %5.11 = ForSeqSize %5.10
  55809. int$' %5.12 = LdConst [1] 0
  55810. goto BB6
  55811. BB4
  55812. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55813. void Deopt %4.0
  55814. BB6
  55815. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55816. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55817. int$' %6.2 = Inc %6.1
  55818. int$' %6.3 = EnsureNamed %6.2
  55819. lgl' %6.4 = Lt %5.11, %6.3, elided
  55820. t %6.5 = AsTest %6.4
  55821. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55822. BB10
  55823. goto BB12
  55824. BB7
  55825. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55826. void StVar i, %7.0, e0.2
  55827. cls %7.2 = LdFun buildTreeDepth, e0.2
  55828. prom %7.3 = MkArg missing, Prom(2), e0.2
  55829. prom %7.4 = MkArg missing, Prom(3), e0.2
  55830. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55831. BB9
  55832. cls' %9.0 = LdConst function (depth, random) { if (d...
  55833. t %9.1 = Identical %7.2, %9.0
  55834. void Assume %9.1, %7.5
  55835. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55836. val^? %9.4 = LdVar array, e0.2
  55837. val %9.5 = Force %9.4, e0.2
  55838. val^? %9.6 = LdVar i, e0.2
  55839. val %9.7 = Force %9.6, e0.2
  55840. val^ %9.8 = EnsureNamed %9.3
  55841. val %9.9 = Force %9.8, e0.2
  55842. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55843. void StVar array, %9.10, e0.2
  55844. goto BB6
  55845. BB8
  55846. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55847. void Deopt %8.0
  55848. Prom 2:
  55849. BB0
  55850. env e0.0 = LdFunctionEnv
  55851. val^? %0.1 = LdVar depth, e0.0
  55852. val %0.2 = Force %0.1, e0.0
  55853. real$' %0.3 = LdConst [1] 1
  55854. goto BB1
  55855. BB1
  55856. val %1.0 = Sub %0.2, %0.3, e0.0
  55857. void Return %1.0
  55858. Prom 3:
  55859. BB0
  55860. env e0.0 = LdFunctionEnv
  55861. val^? %0.1 = LdVar random, e0.0
  55862. val %0.2 = Force %0.1, e0.0
  55863. void Return %0.2
  55864. Prom 4:
  55865. BB0
  55866. env e0.0 = LdFunctionEnv
  55867. cls %0.1 = LdFun nextRandom, e0.0
  55868. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55869. t %0.3 = Identical %0.1, %0.2
  55870. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55871. BB2
  55872. void Assume %0.3, %0.4
  55873. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55874. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55875. real$' %2.3 = LdConst [1] 10
  55876. goto BB3
  55877. BB1
  55878. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  55879. void Deopt %1.0
  55880. BB3
  55881. val %3.0 = Force %2.2, e0.0
  55882. val %3.1 = Mod %3.0, %2.3, e0.0
  55883. real$' %3.2 = LdConst [1] 1
  55884. goto BB4
  55885. BB4
  55886. val %4.0 = Add %3.1, %3.2, e0.0
  55887. void Return %4.0
  55888. ├────── Cleanup redundant operations: == 750
  55889. test>buildTreeDepth@91[0x7f92445596d0]
  55890. BB0
  55891. val^ %0.0 = LdArg 0
  55892. val^ %0.1 = LdArg 1
  55893. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  55894. val %0.3 = Force! %0.0, e0.2
  55895. real$' %0.4 = LdConst [1] 1
  55896. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55897. BB2
  55898. t %2.0 = IsObject %0.3
  55899. void AssumeNot %2.0, %0.5
  55900. lgl' %2.2 = Eq %0.3, %0.4, elided
  55901. lgl %2.3 = AsLogical %2.2
  55902. t %2.4 = AsTest %2.3
  55903. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  55904. BB1
  55905. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  55906. void Deopt %1.0
  55907. BB11
  55908. cls %11.0 = LdFun c, e0.2
  55909. prom %11.1 = MkArg missing, Prom(4), e0.2
  55910. val^ %11.2 = Call %11.0(%11.1) e0.2
  55911. goto BB12
  55912. BB3
  55913. cls %3.0 = LdFun vector, e0.2
  55914. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  55915. BB12
  55916. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  55917. val %12.1 = Force %12.0, e0.2
  55918. void Return %12.1
  55919. BB5
  55920. cls' %5.0 = LdConst function (mode = "logical", length = ...
  55921. t %5.1 = Identical %3.0, %5.0
  55922. void Assume %5.1, %3.1
  55923. real$' %5.3 = LdConst [1] 4
  55924. str$' %5.4 = LdConst [1] "list"
  55925. val %5.5 = CallSafeBuiltin vector(%5.4, %5.3)
  55926. void StVar array, %5.5, e0.2
  55927. real$' %5.7 = LdConst [1] 4
  55928. real$' %5.8 = LdConst [1] 1
  55929. val' %5.9 = Colon %5.8, %5.7, elided
  55930. val' %5.10 = SetShared %5.9
  55931. int$' %5.11 = ForSeqSize %5.10
  55932. int$' %5.12 = LdConst [1] 0
  55933. goto BB6
  55934. BB4
  55935. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  55936. void Deopt %4.0
  55937. BB6
  55938. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  55939. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  55940. int$' %6.2 = Inc %6.1
  55941. int$' %6.3 = EnsureNamed %6.2
  55942. lgl' %6.4 = Lt %5.11, %6.3, elided
  55943. t %6.5 = AsTest %6.4
  55944. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  55945. BB10
  55946. goto BB12
  55947. BB7
  55948. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  55949. void StVar i, %7.0, e0.2
  55950. cls %7.2 = LdFun buildTreeDepth, e0.2
  55951. prom %7.3 = MkArg missing, Prom(2), e0.2
  55952. prom %7.4 = MkArg missing, Prom(3), e0.2
  55953. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  55954. BB9
  55955. cls' %9.0 = LdConst function (depth, random) { if (d...
  55956. t %9.1 = Identical %7.2, %9.0
  55957. void Assume %9.1, %7.5
  55958. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  55959. val^? %9.4 = LdVar array, e0.2
  55960. val %9.5 = Force %9.4, e0.2
  55961. val^? %9.6 = LdVar i, e0.2
  55962. val %9.7 = Force %9.6, e0.2
  55963. val^ %9.8 = EnsureNamed %9.3
  55964. val %9.9 = Force %9.8, e0.2
  55965. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  55966. void StVar array, %9.10, e0.2
  55967. goto BB6
  55968. BB8
  55969. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  55970. void Deopt %8.0
  55971. Prom 2:
  55972. BB0
  55973. env e0.0 = LdFunctionEnv
  55974. val^? %0.1 = LdVar depth, e0.0
  55975. val %0.2 = Force %0.1, e0.0
  55976. real$' %0.3 = LdConst [1] 1
  55977. goto BB1
  55978. BB1
  55979. val %1.0 = Sub %0.2, %0.3, e0.0
  55980. void Return %1.0
  55981. Prom 3:
  55982. BB0
  55983. env e0.0 = LdFunctionEnv
  55984. val^? %0.1 = LdVar random, e0.0
  55985. val %0.2 = Force %0.1, e0.0
  55986. void Return %0.2
  55987. Prom 4:
  55988. BB0
  55989. env e0.0 = LdFunctionEnv
  55990. cls %0.1 = LdFun nextRandom, e0.0
  55991. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  55992. t %0.3 = Identical %0.1, %0.2
  55993. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  55994. BB2
  55995. void Assume %0.3, %0.4
  55996. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  55997. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  55998. real$' %2.3 = LdConst [1] 10
  55999. goto BB3
  56000. BB1
  56001. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56002. void Deopt %1.0
  56003. BB3
  56004. val %3.0 = Force %2.2, e0.0
  56005. val %3.1 = Mod %3.0, %2.3, e0.0
  56006. real$' %3.2 = LdConst [1] 1
  56007. goto BB4
  56008. BB4
  56009. val %4.0 = Add %3.1, %3.2, e0.0
  56010. void Return %4.0
  56011. ├────── Delay instructions: == 757
  56012. test>buildTreeDepth@91[0x7f92445596d0]
  56013. BB0
  56014. val^ %0.0 = LdArg 0
  56015. val^ %0.1 = LdArg 1
  56016. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  56017. val %0.3 = Force! %0.0, e0.2
  56018. real$' %0.4 = LdConst [1] 1
  56019. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56020. BB2
  56021. t %2.0 = IsObject %0.3
  56022. void AssumeNot %2.0, %0.5
  56023. lgl' %2.2 = Eq %0.3, %0.4, elided
  56024. lgl %2.3 = AsLogical %2.2
  56025. t %2.4 = AsTest %2.3
  56026. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  56027. BB1
  56028. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  56029. void Deopt %1.0
  56030. BB11
  56031. cls %11.0 = LdFun c, e0.2
  56032. prom %11.1 = MkArg missing, Prom(4), e0.2
  56033. val^ %11.2 = Call %11.0(%11.1) e0.2
  56034. goto BB12
  56035. BB3
  56036. cls %3.0 = LdFun vector, e0.2
  56037. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  56038. BB12
  56039. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  56040. val %12.1 = Force %12.0, e0.2
  56041. void Return %12.1
  56042. BB5
  56043. cls' %5.0 = LdConst function (mode = "logical", length = ...
  56044. t %5.1 = Identical %3.0, %5.0
  56045. void Assume %5.1, %3.1
  56046. str$' %5.3 = LdConst [1] "list"
  56047. real$' %5.4 = LdConst [1] 4
  56048. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  56049. void StVar array, %5.5, e0.2
  56050. real$' %5.7 = LdConst [1] 1
  56051. real$' %5.8 = LdConst [1] 4
  56052. val' %5.9 = Colon %5.7, %5.8, elided
  56053. val' %5.10 = SetShared %5.9
  56054. int$' %5.11 = ForSeqSize %5.10
  56055. int$' %5.12 = LdConst [1] 0
  56056. goto BB6
  56057. BB4
  56058. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  56059. void Deopt %4.0
  56060. BB6
  56061. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  56062. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  56063. int$' %6.2 = Inc %6.1
  56064. int$' %6.3 = EnsureNamed %6.2
  56065. lgl' %6.4 = Lt %5.11, %6.3, elided
  56066. t %6.5 = AsTest %6.4
  56067. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  56068. BB10
  56069. goto BB12
  56070. BB7
  56071. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  56072. void StVar i, %7.0, e0.2
  56073. cls %7.2 = LdFun buildTreeDepth, e0.2
  56074. prom %7.3 = MkArg missing, Prom(2), e0.2
  56075. prom %7.4 = MkArg missing, Prom(3), e0.2
  56076. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  56077. BB9
  56078. cls' %9.0 = LdConst function (depth, random) { if (d...
  56079. t %9.1 = Identical %7.2, %9.0
  56080. void Assume %9.1, %7.5
  56081. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  56082. val^? %9.4 = LdVar array, e0.2
  56083. val %9.5 = Force %9.4, e0.2
  56084. val^? %9.6 = LdVar i, e0.2
  56085. val %9.7 = Force %9.6, e0.2
  56086. val^ %9.8 = EnsureNamed %9.3
  56087. val %9.9 = Force %9.8, e0.2
  56088. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  56089. void StVar array, %9.10, e0.2
  56090. goto BB6
  56091. BB8
  56092. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  56093. void Deopt %8.0
  56094. Prom 2:
  56095. BB0
  56096. env e0.0 = LdFunctionEnv
  56097. val^? %0.1 = LdVar depth, e0.0
  56098. val %0.2 = Force %0.1, e0.0
  56099. real$' %0.3 = LdConst [1] 1
  56100. goto BB1
  56101. BB1
  56102. val %1.0 = Sub %0.2, %0.3, e0.0
  56103. void Return %1.0
  56104. Prom 3:
  56105. BB0
  56106. env e0.0 = LdFunctionEnv
  56107. val^? %0.1 = LdVar random, e0.0
  56108. val %0.2 = Force %0.1, e0.0
  56109. void Return %0.2
  56110. Prom 4:
  56111. BB0
  56112. env e0.0 = LdFunctionEnv
  56113. cls %0.1 = LdFun nextRandom, e0.0
  56114. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  56115. t %0.3 = Identical %0.1, %0.2
  56116. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56117. BB2
  56118. void Assume %0.3, %0.4
  56119. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  56120. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  56121. real$' %2.3 = LdConst [1] 10
  56122. goto BB3
  56123. BB1
  56124. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56125. void Deopt %1.0
  56126. BB3
  56127. val %3.0 = Force %2.2, e0.0
  56128. val %3.1 = Mod %3.0, %2.3, e0.0
  56129. real$' %3.2 = LdConst [1] 1
  56130. goto BB4
  56131. BB4
  56132. val %4.0 = Add %3.1, %3.2, e0.0
  56133. void Return %4.0
  56134. ├────── Elide environments not needed: == 764
  56135. test>buildTreeDepth@91[0x7f92445596d0]
  56136. BB0
  56137. val^ %0.0 = LdArg 0
  56138. val^ %0.1 = LdArg 1
  56139. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  56140. val %0.3 = Force! %0.0, e0.2
  56141. real$' %0.4 = LdConst [1] 1
  56142. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56143. BB2
  56144. t %2.0 = IsObject %0.3
  56145. void AssumeNot %2.0, %0.5
  56146. lgl' %2.2 = Eq %0.3, %0.4, elided
  56147. lgl %2.3 = AsLogical %2.2
  56148. t %2.4 = AsTest %2.3
  56149. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  56150. BB1
  56151. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  56152. void Deopt %1.0
  56153. BB11
  56154. cls %11.0 = LdFun c, e0.2
  56155. prom %11.1 = MkArg missing, Prom(4), e0.2
  56156. val^ %11.2 = Call %11.0(%11.1) e0.2
  56157. goto BB12
  56158. BB3
  56159. cls %3.0 = LdFun vector, e0.2
  56160. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  56161. BB12
  56162. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  56163. val %12.1 = Force %12.0, e0.2
  56164. void Return %12.1
  56165. BB5
  56166. cls' %5.0 = LdConst function (mode = "logical", length = ...
  56167. t %5.1 = Identical %3.0, %5.0
  56168. void Assume %5.1, %3.1
  56169. str$' %5.3 = LdConst [1] "list"
  56170. real$' %5.4 = LdConst [1] 4
  56171. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  56172. void StVar array, %5.5, e0.2
  56173. real$' %5.7 = LdConst [1] 1
  56174. real$' %5.8 = LdConst [1] 4
  56175. val' %5.9 = Colon %5.7, %5.8, elided
  56176. val' %5.10 = SetShared %5.9
  56177. int$' %5.11 = ForSeqSize %5.10
  56178. int$' %5.12 = LdConst [1] 0
  56179. goto BB6
  56180. BB4
  56181. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  56182. void Deopt %4.0
  56183. BB6
  56184. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  56185. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  56186. int$' %6.2 = Inc %6.1
  56187. int$' %6.3 = EnsureNamed %6.2
  56188. lgl' %6.4 = Lt %5.11, %6.3, elided
  56189. t %6.5 = AsTest %6.4
  56190. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  56191. BB10
  56192. goto BB12
  56193. BB7
  56194. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  56195. void StVar i, %7.0, e0.2
  56196. cls %7.2 = LdFun buildTreeDepth, e0.2
  56197. prom %7.3 = MkArg missing, Prom(2), e0.2
  56198. prom %7.4 = MkArg missing, Prom(3), e0.2
  56199. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  56200. BB9
  56201. cls' %9.0 = LdConst function (depth, random) { if (d...
  56202. t %9.1 = Identical %7.2, %9.0
  56203. void Assume %9.1, %7.5
  56204. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  56205. val^? %9.4 = LdVar array, e0.2
  56206. val %9.5 = Force %9.4, e0.2
  56207. val^? %9.6 = LdVar i, e0.2
  56208. val %9.7 = Force %9.6, e0.2
  56209. val^ %9.8 = EnsureNamed %9.3
  56210. val %9.9 = Force %9.8, e0.2
  56211. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  56212. void StVar array, %9.10, e0.2
  56213. goto BB6
  56214. BB8
  56215. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  56216. void Deopt %8.0
  56217. Prom 2:
  56218. BB0
  56219. env e0.0 = LdFunctionEnv
  56220. val^? %0.1 = LdVar depth, e0.0
  56221. val %0.2 = Force %0.1, e0.0
  56222. real$' %0.3 = LdConst [1] 1
  56223. goto BB1
  56224. BB1
  56225. val %1.0 = Sub %0.2, %0.3, e0.0
  56226. void Return %1.0
  56227. Prom 3:
  56228. BB0
  56229. env e0.0 = LdFunctionEnv
  56230. val^? %0.1 = LdVar random, e0.0
  56231. val %0.2 = Force %0.1, e0.0
  56232. void Return %0.2
  56233. Prom 4:
  56234. BB0
  56235. env e0.0 = LdFunctionEnv
  56236. cls %0.1 = LdFun nextRandom, e0.0
  56237. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  56238. t %0.3 = Identical %0.1, %0.2
  56239. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56240. BB2
  56241. void Assume %0.3, %0.4
  56242. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  56243. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  56244. real$' %2.3 = LdConst [1] 10
  56245. goto BB3
  56246. BB1
  56247. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56248. void Deopt %1.0
  56249. BB3
  56250. val %3.0 = Force %2.2, e0.0
  56251. val %3.1 = Mod %3.0, %2.3, e0.0
  56252. real$' %3.2 = LdConst [1] 1
  56253. goto BB4
  56254. BB4
  56255. val %4.0 = Add %3.1, %3.2, e0.0
  56256. void Return %4.0
  56257. ├────── Move environment creation as far as possible: == 771
  56258. test>buildTreeDepth@91[0x7f92445596d0]
  56259. BB0
  56260. val^ %0.0 = LdArg 0
  56261. val^ %0.1 = LdArg 1
  56262. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  56263. val %0.3 = Force! %0.0, e0.2
  56264. real$' %0.4 = LdConst [1] 1
  56265. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56266. BB2
  56267. t %2.0 = IsObject %0.3
  56268. void AssumeNot %2.0, %0.5
  56269. lgl' %2.2 = Eq %0.3, %0.4, elided
  56270. lgl %2.3 = AsLogical %2.2
  56271. t %2.4 = AsTest %2.3
  56272. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  56273. BB1
  56274. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  56275. void Deopt %1.0
  56276. BB11
  56277. cls %11.0 = LdFun c, e0.2
  56278. prom %11.1 = MkArg missing, Prom(4), e0.2
  56279. val^ %11.2 = Call %11.0(%11.1) e0.2
  56280. goto BB12
  56281. BB3
  56282. cls %3.0 = LdFun vector, e0.2
  56283. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  56284. BB12
  56285. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  56286. val %12.1 = Force %12.0, e0.2
  56287. void Return %12.1
  56288. BB5
  56289. cls' %5.0 = LdConst function (mode = "logical", length = ...
  56290. t %5.1 = Identical %3.0, %5.0
  56291. void Assume %5.1, %3.1
  56292. str$' %5.3 = LdConst [1] "list"
  56293. real$' %5.4 = LdConst [1] 4
  56294. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  56295. void StVar array, %5.5, e0.2
  56296. real$' %5.7 = LdConst [1] 1
  56297. real$' %5.8 = LdConst [1] 4
  56298. val' %5.9 = Colon %5.7, %5.8, elided
  56299. val' %5.10 = SetShared %5.9
  56300. int$' %5.11 = ForSeqSize %5.10
  56301. int$' %5.12 = LdConst [1] 0
  56302. goto BB6
  56303. BB4
  56304. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  56305. void Deopt %4.0
  56306. BB6
  56307. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  56308. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  56309. int$' %6.2 = Inc %6.1
  56310. int$' %6.3 = EnsureNamed %6.2
  56311. lgl' %6.4 = Lt %5.11, %6.3, elided
  56312. t %6.5 = AsTest %6.4
  56313. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  56314. BB10
  56315. goto BB12
  56316. BB7
  56317. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  56318. void StVar i, %7.0, e0.2
  56319. cls %7.2 = LdFun buildTreeDepth, e0.2
  56320. prom %7.3 = MkArg missing, Prom(2), e0.2
  56321. prom %7.4 = MkArg missing, Prom(3), e0.2
  56322. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  56323. BB9
  56324. cls' %9.0 = LdConst function (depth, random) { if (d...
  56325. t %9.1 = Identical %7.2, %9.0
  56326. void Assume %9.1, %7.5
  56327. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  56328. val^? %9.4 = LdVar array, e0.2
  56329. val %9.5 = Force %9.4, e0.2
  56330. val^? %9.6 = LdVar i, e0.2
  56331. val %9.7 = Force %9.6, e0.2
  56332. val^ %9.8 = EnsureNamed %9.3
  56333. val %9.9 = Force %9.8, e0.2
  56334. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  56335. void StVar array, %9.10, e0.2
  56336. goto BB6
  56337. BB8
  56338. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  56339. void Deopt %8.0
  56340. Prom 2:
  56341. BB0
  56342. env e0.0 = LdFunctionEnv
  56343. val^? %0.1 = LdVar depth, e0.0
  56344. val %0.2 = Force %0.1, e0.0
  56345. real$' %0.3 = LdConst [1] 1
  56346. goto BB1
  56347. BB1
  56348. val %1.0 = Sub %0.2, %0.3, e0.0
  56349. void Return %1.0
  56350. Prom 3:
  56351. BB0
  56352. env e0.0 = LdFunctionEnv
  56353. val^? %0.1 = LdVar random, e0.0
  56354. val %0.2 = Force %0.1, e0.0
  56355. void Return %0.2
  56356. Prom 4:
  56357. BB0
  56358. env e0.0 = LdFunctionEnv
  56359. cls %0.1 = LdFun nextRandom, e0.0
  56360. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  56361. t %0.3 = Identical %0.1, %0.2
  56362. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56363. BB2
  56364. void Assume %0.3, %0.4
  56365. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  56366. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  56367. real$' %2.3 = LdConst [1] 10
  56368. goto BB3
  56369. BB1
  56370. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56371. void Deopt %1.0
  56372. BB3
  56373. val %3.0 = Force %2.2, e0.0
  56374. val %3.1 = Mod %3.0, %2.3, e0.0
  56375. real$' %3.2 = LdConst [1] 1
  56376. goto BB4
  56377. BB4
  56378. val %4.0 = Add %3.1, %3.2, e0.0
  56379. void Return %4.0
  56380. ├────── Cleanup redundant operations: == 778
  56381. test>buildTreeDepth@91[0x7f92445596d0]
  56382. BB0
  56383. val^ %0.0 = LdArg 0
  56384. val^ %0.1 = LdArg 1
  56385. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  56386. val %0.3 = Force! %0.0, e0.2
  56387. real$' %0.4 = LdConst [1] 1
  56388. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56389. BB2
  56390. t %2.0 = IsObject %0.3
  56391. void AssumeNot %2.0, %0.5
  56392. lgl' %2.2 = Eq %0.3, %0.4, elided
  56393. lgl %2.3 = AsLogical %2.2
  56394. t %2.4 = AsTest %2.3
  56395. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  56396. BB1
  56397. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  56398. void Deopt %1.0
  56399. BB11
  56400. cls %11.0 = LdFun c, e0.2
  56401. prom %11.1 = MkArg missing, Prom(4), e0.2
  56402. val^ %11.2 = Call %11.0(%11.1) e0.2
  56403. goto BB12
  56404. BB3
  56405. cls %3.0 = LdFun vector, e0.2
  56406. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  56407. BB12
  56408. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  56409. val %12.1 = Force %12.0, e0.2
  56410. void Return %12.1
  56411. BB5
  56412. cls' %5.0 = LdConst function (mode = "logical", length = ...
  56413. t %5.1 = Identical %3.0, %5.0
  56414. void Assume %5.1, %3.1
  56415. str$' %5.3 = LdConst [1] "list"
  56416. real$' %5.4 = LdConst [1] 4
  56417. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  56418. void StVar array, %5.5, e0.2
  56419. real$' %5.7 = LdConst [1] 1
  56420. real$' %5.8 = LdConst [1] 4
  56421. val' %5.9 = Colon %5.7, %5.8, elided
  56422. val' %5.10 = SetShared %5.9
  56423. int$' %5.11 = ForSeqSize %5.10
  56424. int$' %5.12 = LdConst [1] 0
  56425. goto BB6
  56426. BB4
  56427. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  56428. void Deopt %4.0
  56429. BB6
  56430. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  56431. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  56432. int$' %6.2 = Inc %6.1
  56433. int$' %6.3 = EnsureNamed %6.2
  56434. lgl' %6.4 = Lt %5.11, %6.3, elided
  56435. t %6.5 = AsTest %6.4
  56436. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  56437. BB10
  56438. goto BB12
  56439. BB7
  56440. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  56441. void StVar i, %7.0, e0.2
  56442. cls %7.2 = LdFun buildTreeDepth, e0.2
  56443. prom %7.3 = MkArg missing, Prom(2), e0.2
  56444. prom %7.4 = MkArg missing, Prom(3), e0.2
  56445. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  56446. BB9
  56447. cls' %9.0 = LdConst function (depth, random) { if (d...
  56448. t %9.1 = Identical %7.2, %9.0
  56449. void Assume %9.1, %7.5
  56450. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  56451. val^? %9.4 = LdVar array, e0.2
  56452. val %9.5 = Force %9.4, e0.2
  56453. val^? %9.6 = LdVar i, e0.2
  56454. val %9.7 = Force %9.6, e0.2
  56455. val^ %9.8 = EnsureNamed %9.3
  56456. val %9.9 = Force %9.8, e0.2
  56457. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  56458. void StVar array, %9.10, e0.2
  56459. goto BB6
  56460. BB8
  56461. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  56462. void Deopt %8.0
  56463. Prom 2:
  56464. BB0
  56465. env e0.0 = LdFunctionEnv
  56466. val^? %0.1 = LdVar depth, e0.0
  56467. val %0.2 = Force %0.1, e0.0
  56468. real$' %0.3 = LdConst [1] 1
  56469. goto BB1
  56470. BB1
  56471. val %1.0 = Sub %0.2, %0.3, e0.0
  56472. void Return %1.0
  56473. Prom 3:
  56474. BB0
  56475. env e0.0 = LdFunctionEnv
  56476. val^? %0.1 = LdVar random, e0.0
  56477. val %0.2 = Force %0.1, e0.0
  56478. void Return %0.2
  56479. Prom 4:
  56480. BB0
  56481. env e0.0 = LdFunctionEnv
  56482. cls %0.1 = LdFun nextRandom, e0.0
  56483. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  56484. t %0.3 = Identical %0.1, %0.2
  56485. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56486. BB2
  56487. void Assume %0.3, %0.4
  56488. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  56489. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  56490. real$' %2.3 = LdConst [1] 10
  56491. goto BB3
  56492. BB1
  56493. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56494. void Deopt %1.0
  56495. BB3
  56496. val %3.0 = Force %2.2, e0.0
  56497. val %3.1 = Mod %3.0, %2.3, e0.0
  56498. real$' %3.2 = LdConst [1] 1
  56499. goto BB4
  56500. BB4
  56501. val %4.0 = Add %3.1, %3.2, e0.0
  56502. void Return %4.0
  56503. ├────── Inline closures: == 785
  56504. test>buildTreeDepth@91[0x7f92445596d0]
  56505. BB0
  56506. val^ %0.0 = LdArg 0
  56507. val^ %0.1 = LdArg 1
  56508. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  56509. val %0.3 = Force! %0.0, e0.2
  56510. real$' %0.4 = LdConst [1] 1
  56511. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56512. BB2
  56513. t %2.0 = IsObject %0.3
  56514. void AssumeNot %2.0, %0.5
  56515. lgl' %2.2 = Eq %0.3, %0.4, elided
  56516. lgl %2.3 = AsLogical %2.2
  56517. t %2.4 = AsTest %2.3
  56518. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  56519. BB1
  56520. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  56521. void Deopt %1.0
  56522. BB11
  56523. cls %11.0 = LdFun c, e0.2
  56524. prom %11.1 = MkArg missing, Prom(4), e0.2
  56525. val^ %11.2 = Call %11.0(%11.1) e0.2
  56526. goto BB12
  56527. BB3
  56528. cls %3.0 = LdFun vector, e0.2
  56529. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  56530. BB12
  56531. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  56532. val %12.1 = Force %12.0, e0.2
  56533. void Return %12.1
  56534. BB5
  56535. cls' %5.0 = LdConst function (mode = "logical", length = ...
  56536. t %5.1 = Identical %3.0, %5.0
  56537. void Assume %5.1, %3.1
  56538. str$' %5.3 = LdConst [1] "list"
  56539. real$' %5.4 = LdConst [1] 4
  56540. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  56541. void StVar array, %5.5, e0.2
  56542. real$' %5.7 = LdConst [1] 1
  56543. real$' %5.8 = LdConst [1] 4
  56544. val' %5.9 = Colon %5.7, %5.8, elided
  56545. val' %5.10 = SetShared %5.9
  56546. int$' %5.11 = ForSeqSize %5.10
  56547. int$' %5.12 = LdConst [1] 0
  56548. goto BB6
  56549. BB4
  56550. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  56551. void Deopt %4.0
  56552. BB6
  56553. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  56554. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  56555. int$' %6.2 = Inc %6.1
  56556. int$' %6.3 = EnsureNamed %6.2
  56557. lgl' %6.4 = Lt %5.11, %6.3, elided
  56558. t %6.5 = AsTest %6.4
  56559. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  56560. BB10
  56561. goto BB12
  56562. BB7
  56563. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  56564. void StVar i, %7.0, e0.2
  56565. cls %7.2 = LdFun buildTreeDepth, e0.2
  56566. prom %7.3 = MkArg missing, Prom(2), e0.2
  56567. prom %7.4 = MkArg missing, Prom(3), e0.2
  56568. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  56569. BB9
  56570. cls' %9.0 = LdConst function (depth, random) { if (d...
  56571. t %9.1 = Identical %7.2, %9.0
  56572. void Assume %9.1, %7.5
  56573. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  56574. val^? %9.4 = LdVar array, e0.2
  56575. val %9.5 = Force %9.4, e0.2
  56576. val^? %9.6 = LdVar i, e0.2
  56577. val %9.7 = Force %9.6, e0.2
  56578. val^ %9.8 = EnsureNamed %9.3
  56579. val %9.9 = Force %9.8, e0.2
  56580. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  56581. void StVar array, %9.10, e0.2
  56582. goto BB6
  56583. BB8
  56584. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  56585. void Deopt %8.0
  56586. Prom 2:
  56587. BB0
  56588. env e0.0 = LdFunctionEnv
  56589. val^? %0.1 = LdVar depth, e0.0
  56590. val %0.2 = Force %0.1, e0.0
  56591. real$' %0.3 = LdConst [1] 1
  56592. goto BB1
  56593. BB1
  56594. val %1.0 = Sub %0.2, %0.3, e0.0
  56595. void Return %1.0
  56596. Prom 3:
  56597. BB0
  56598. env e0.0 = LdFunctionEnv
  56599. val^? %0.1 = LdVar random, e0.0
  56600. val %0.2 = Force %0.1, e0.0
  56601. void Return %0.2
  56602. Prom 4:
  56603. BB0
  56604. env e0.0 = LdFunctionEnv
  56605. cls %0.1 = LdFun nextRandom, e0.0
  56606. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  56607. t %0.3 = Identical %0.1, %0.2
  56608. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56609. BB2
  56610. void Assume %0.3, %0.4
  56611. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  56612. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  56613. real$' %2.3 = LdConst [1] 10
  56614. goto BB3
  56615. BB1
  56616. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56617. void Deopt %1.0
  56618. BB3
  56619. val %3.0 = Force %2.2, e0.0
  56620. val %3.1 = Mod %3.0, %2.3, e0.0
  56621. real$' %3.2 = LdConst [1] 1
  56622. goto BB4
  56623. BB4
  56624. val %4.0 = Add %3.1, %3.2, e0.0
  56625. void Return %4.0
  56626. ├────── Speculate on values to elide environments: == 792
  56627. test>buildTreeDepth@91[0x7f92445596d0]
  56628. BB0
  56629. val^ %0.0 = LdArg 0
  56630. val^ %0.1 = LdArg 1
  56631. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  56632. val %0.3 = Force! %0.0, e0.2
  56633. real$' %0.4 = LdConst [1] 1
  56634. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56635. BB2
  56636. t %2.0 = IsObject %0.3
  56637. void AssumeNot %2.0, %0.5
  56638. lgl' %2.2 = Eq %0.3, %0.4, elided
  56639. lgl %2.3 = AsLogical %2.2
  56640. t %2.4 = AsTest %2.3
  56641. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  56642. BB1
  56643. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  56644. void Deopt %1.0
  56645. BB11
  56646. cls %11.0 = LdFun c, e0.2
  56647. prom %11.1 = MkArg missing, Prom(4), e0.2
  56648. val^ %11.2 = Call %11.0(%11.1) e0.2
  56649. goto BB12
  56650. BB3
  56651. cls %3.0 = LdFun vector, e0.2
  56652. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  56653. BB12
  56654. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  56655. val %12.1 = Force %12.0, e0.2
  56656. void Return %12.1
  56657. BB5
  56658. cls' %5.0 = LdConst function (mode = "logical", length = ...
  56659. t %5.1 = Identical %3.0, %5.0
  56660. void Assume %5.1, %3.1
  56661. str$' %5.3 = LdConst [1] "list"
  56662. real$' %5.4 = LdConst [1] 4
  56663. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  56664. void StVar array, %5.5, e0.2
  56665. real$' %5.7 = LdConst [1] 1
  56666. real$' %5.8 = LdConst [1] 4
  56667. val' %5.9 = Colon %5.7, %5.8, elided
  56668. val' %5.10 = SetShared %5.9
  56669. int$' %5.11 = ForSeqSize %5.10
  56670. int$' %5.12 = LdConst [1] 0
  56671. goto BB6
  56672. BB4
  56673. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  56674. void Deopt %4.0
  56675. BB6
  56676. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  56677. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  56678. int$' %6.2 = Inc %6.1
  56679. int$' %6.3 = EnsureNamed %6.2
  56680. lgl' %6.4 = Lt %5.11, %6.3, elided
  56681. t %6.5 = AsTest %6.4
  56682. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  56683. BB10
  56684. goto BB12
  56685. BB7
  56686. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  56687. void StVar i, %7.0, e0.2
  56688. cls %7.2 = LdFun buildTreeDepth, e0.2
  56689. prom %7.3 = MkArg missing, Prom(2), e0.2
  56690. prom %7.4 = MkArg missing, Prom(3), e0.2
  56691. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  56692. BB9
  56693. cls' %9.0 = LdConst function (depth, random) { if (d...
  56694. t %9.1 = Identical %7.2, %9.0
  56695. void Assume %9.1, %7.5
  56696. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  56697. val^? %9.4 = LdVar array, e0.2
  56698. val %9.5 = Force %9.4, e0.2
  56699. val^? %9.6 = LdVar i, e0.2
  56700. val %9.7 = Force %9.6, e0.2
  56701. val^ %9.8 = EnsureNamed %9.3
  56702. val %9.9 = Force %9.8, e0.2
  56703. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  56704. void StVar array, %9.10, e0.2
  56705. goto BB6
  56706. BB8
  56707. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  56708. void Deopt %8.0
  56709. Prom 2:
  56710. BB0
  56711. env e0.0 = LdFunctionEnv
  56712. val^? %0.1 = LdVar depth, e0.0
  56713. val %0.2 = Force %0.1, e0.0
  56714. real$' %0.3 = LdConst [1] 1
  56715. goto BB1
  56716. BB1
  56717. val %1.0 = Sub %0.2, %0.3, e0.0
  56718. void Return %1.0
  56719. Prom 3:
  56720. BB0
  56721. env e0.0 = LdFunctionEnv
  56722. val^? %0.1 = LdVar random, e0.0
  56723. val %0.2 = Force %0.1, e0.0
  56724. void Return %0.2
  56725. Prom 4:
  56726. BB0
  56727. env e0.0 = LdFunctionEnv
  56728. cls %0.1 = LdFun nextRandom, e0.0
  56729. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  56730. t %0.3 = Identical %0.1, %0.2
  56731. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56732. BB2
  56733. void Assume %0.3, %0.4
  56734. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  56735. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  56736. real$' %2.3 = LdConst [1] 10
  56737. goto BB3
  56738. BB1
  56739. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56740. void Deopt %1.0
  56741. BB3
  56742. val %3.0 = Force %2.2, e0.0
  56743. val %3.1 = Mod %3.0, %2.3, e0.0
  56744. real$' %3.2 = LdConst [1] 1
  56745. goto BB4
  56746. BB4
  56747. val %4.0 = Add %3.1, %3.2, e0.0
  56748. void Return %4.0
  56749. ├────── Cleanup unused checkpoints: == 799
  56750. test>buildTreeDepth@91[0x7f92445596d0]
  56751. BB0
  56752. val^ %0.0 = LdArg 0
  56753. val^ %0.1 = LdArg 1
  56754. env e0.2 = MkEnv depth=%0.0, random=%0.1, parent=?
  56755. val %0.3 = Force! %0.0, e0.2
  56756. real$' %0.4 = LdConst [1] 1
  56757. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56758. BB2
  56759. t %2.0 = IsObject %0.3
  56760. void AssumeNot %2.0, %0.5
  56761. lgl' %2.2 = Eq %0.3, %0.4, elided
  56762. lgl %2.3 = AsLogical %2.2
  56763. t %2.4 = AsTest %2.3
  56764. void Branch %2.4 -> BB11 (if true) | BB3 (if false)
  56765. BB1
  56766. fs %1.0 = FrameState 0x7f924457f3d0+58: [%0.3, %0.4], env=e0.2
  56767. void Deopt %1.0
  56768. BB11
  56769. cls %11.0 = LdFun c, e0.2
  56770. prom %11.1 = MkArg missing, Prom(4), e0.2
  56771. val^ %11.2 = Call %11.0(%11.1) e0.2
  56772. goto BB12
  56773. BB3
  56774. cls %3.0 = LdFun vector, e0.2
  56775. cp %3.1 = Checkpoint -> BB5 (by default) | BB4 (if coming from expect)
  56776. BB12
  56777. val^ %12.0 = Phi %6.0:BB10, %11.2:BB11
  56778. val %12.1 = Force %12.0, e0.2
  56779. void Return %12.1
  56780. BB5
  56781. cls' %5.0 = LdConst function (mode = "logical", length = ...
  56782. t %5.1 = Identical %3.0, %5.0
  56783. void Assume %5.1, %3.1
  56784. str$' %5.3 = LdConst [1] "list"
  56785. real$' %5.4 = LdConst [1] 4
  56786. val %5.5 = CallSafeBuiltin vector(%5.3, %5.4)
  56787. void StVar array, %5.5, e0.2
  56788. real$' %5.7 = LdConst [1] 1
  56789. real$' %5.8 = LdConst [1] 4
  56790. val' %5.9 = Colon %5.7, %5.8, elided
  56791. val' %5.10 = SetShared %5.9
  56792. int$' %5.11 = ForSeqSize %5.10
  56793. int$' %5.12 = LdConst [1] 0
  56794. goto BB6
  56795. BB4
  56796. fs %4.0 = FrameState 0x7f924457f3d0+113: [%3.0], env=e0.2
  56797. void Deopt %4.0
  56798. BB6
  56799. val %6.0 = Phi %5.5:BB5, %9.10:BB9
  56800. int$' %6.1 = Phi %5.12:BB5, %6.3:BB9
  56801. int$' %6.2 = Inc %6.1
  56802. int$' %6.3 = EnsureNamed %6.2
  56803. lgl' %6.4 = Lt %5.11, %6.3, elided
  56804. t %6.5 = AsTest %6.4
  56805. void Branch %6.5 -> BB10 (if true) | BB7 (if false)
  56806. BB10
  56807. goto BB12
  56808. BB7
  56809. val$' %7.0 = Extract2_1D %5.10, %6.3, elided
  56810. void StVar i, %7.0, e0.2
  56811. cls %7.2 = LdFun buildTreeDepth, e0.2
  56812. prom %7.3 = MkArg missing, Prom(2), e0.2
  56813. prom %7.4 = MkArg missing, Prom(3), e0.2
  56814. cp %7.5 = Checkpoint -> BB9 (by default) | BB8 (if coming from expect)
  56815. BB9
  56816. cls' %9.0 = LdConst function (depth, random) { if (d...
  56817. t %9.1 = Identical %7.2, %9.0
  56818. void Assume %9.1, %7.5
  56819. val^ %9.3 = StaticCall buildTreeDepth[0x7f92446010b0](%7.3, %7.4) e0.2
  56820. val^? %9.4 = LdVar array, e0.2
  56821. val %9.5 = Force %9.4, e0.2
  56822. val^? %9.6 = LdVar i, e0.2
  56823. val %9.7 = Force %9.6, e0.2
  56824. val^ %9.8 = EnsureNamed %9.3
  56825. val %9.9 = Force %9.8, e0.2
  56826. val %9.10 = Subassign2_1D %9.9, %9.5, %9.7, e0.2
  56827. void StVar array, %9.10, e0.2
  56828. goto BB6
  56829. BB8
  56830. fs %8.0 = FrameState 0x7f924457f3d0+273: [%5.10, %5.11, %6.3, %7.2], env=e0.2
  56831. void Deopt %8.0
  56832. Prom 2:
  56833. BB0
  56834. env e0.0 = LdFunctionEnv
  56835. val^? %0.1 = LdVar depth, e0.0
  56836. val %0.2 = Force %0.1, e0.0
  56837. real$' %0.3 = LdConst [1] 1
  56838. goto BB1
  56839. BB1
  56840. val %1.0 = Sub %0.2, %0.3, e0.0
  56841. void Return %1.0
  56842. Prom 3:
  56843. BB0
  56844. env e0.0 = LdFunctionEnv
  56845. val^? %0.1 = LdVar random, e0.0
  56846. val %0.2 = Force %0.1, e0.0
  56847. void Return %0.2
  56848. Prom 4:
  56849. BB0
  56850. env e0.0 = LdFunctionEnv
  56851. cls %0.1 = LdFun nextRandom, e0.0
  56852. cls' %0.2 = LdConst function () { seed <<- bitwAnd((...
  56853. t %0.3 = Identical %0.1, %0.2
  56854. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  56855. BB2
  56856. void Assume %0.3, %0.4
  56857. fs %2.1 = FrameState 0x7f9244580470+57: [], env=e0.0
  56858. val^ %2.2 = StaticCall nextRandom[0x7f9244606500]() e0.0
  56859. real$' %2.3 = LdConst [1] 10
  56860. goto BB3
  56861. BB1
  56862. fs %1.0 = FrameState 0x7f9244580470+48: [%0.1], env=e0.0
  56863. void Deopt %1.0
  56864. BB3
  56865. val %3.0 = Force %2.2, e0.0
  56866. val %3.1 = Mod %3.0, %2.3, e0.0
  56867. real$' %3.2 = LdConst [1] 1
  56868. goto BB4
  56869. BB4
  56870. val %4.0 = Add %3.1, %3.2, e0.0
  56871. void Return %4.0
  56872. │ test>buildTreeDepth@91[0x7f92445596d0] │
  56873. └──────────────────────────────────────────────────────────────────────────────┘
  56874.  
  56875. ┌──────────────────────────────────────────────────────────────────────────────┐
  56876. │ test>nextRandom@53[0x7f9244559020] │
  56877. ├────── Inline Promises: == 5
  56878. test>nextRandom@53[0x7f9244559020]
  56879. BB0
  56880. env e0.0 = MkEnv parent=?
  56881. cls %0.1 = LdFun bitwAnd, e0.0
  56882. prom %0.2 = MkArg missing, Prom(0), e0.0
  56883. real$' %0.3 = LdConst [1] 65535
  56884. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  56885. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  56886. t %0.6 = Identical %0.1, %0.5
  56887. cp %0.7 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  56888. BB1
  56889. void Assume %0.6, %0.7
  56890. fs %1.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  56891. val^ %1.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %1.1, e0.0
  56892. val^ %1.3 = SetShared %1.2
  56893. val %1.4 = Force %1.3, e0.0
  56894. void StVarSuper seed, %1.4, e0.0
  56895. val^? %1.6 = LdVar seed, e0.0
  56896. val %1.7 = Force %1.6, e0.0
  56897. void Return %1.7
  56898. BB2
  56899. fs %2.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  56900. void Deopt %2.0
  56901. Prom 0:
  56902. BB0
  56903. env e0.0 = LdFunctionEnv
  56904. val^? %0.1 = LdVar seed, e0.0
  56905. val %0.2 = Force %0.1, e0.0
  56906. real$' %0.3 = LdConst [1] 1309
  56907. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  56908. BB1
  56909. val %1.0 = Mul %0.2, %0.3, e0.0
  56910. real$' %1.1 = LdConst [1] 13849
  56911. cp %1.2 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  56912. BB2
  56913. fs %2.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  56914. void Deopt %2.0
  56915. BB3
  56916. val %3.0 = Add %1.0, %1.1, e0.0
  56917. void Return %3.0
  56918. BB4
  56919. fs %4.0 = FrameState 0x7f92445874c0+74: [%1.0, %1.1], env=e0.0
  56920. void Deopt %4.0
  56921. Prom 1:
  56922. BB0
  56923. env e0.0 = LdFunctionEnv
  56924. real$' %0.1 = LdConst [1] 65535
  56925. void Return %0.1
  56926. ├────── Scope resolution: == 12
  56927. test>nextRandom@53[0x7f9244559020]
  56928. BB0
  56929. env e0.0 = MkEnv parent=?
  56930. cls %0.1 = LdFun bitwAnd, e0.0
  56931. prom %0.2 = MkArg missing, Prom(0), e0.0
  56932. real$' %0.3 = LdConst [1] 65535
  56933. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  56934. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  56935. t %0.6 = Identical %0.1, %0.5
  56936. cp %0.7 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  56937. BB1
  56938. void Assume %0.6, %0.7
  56939. fs %1.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  56940. val^ %1.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %1.1, e0.0
  56941. val^ %1.3 = SetShared %1.2
  56942. val %1.4 = Force %1.3, e0.0
  56943. void StVarSuper seed, %1.4, e0.0
  56944. val^? %1.6 = LdVar seed, e0.0
  56945. val %1.7 = Force %1.6, e0.0
  56946. void Return %1.7
  56947. BB2
  56948. fs %2.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  56949. void Deopt %2.0
  56950. Prom 0:
  56951. BB0
  56952. env e0.0 = LdFunctionEnv
  56953. val^? %0.1 = LdVar seed, e0.0
  56954. val %0.2 = Force %0.1, e0.0
  56955. real$' %0.3 = LdConst [1] 1309
  56956. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  56957. BB1
  56958. val %1.0 = Mul %0.2, %0.3, e0.0
  56959. real$' %1.1 = LdConst [1] 13849
  56960. cp %1.2 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  56961. BB2
  56962. fs %2.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  56963. void Deopt %2.0
  56964. BB3
  56965. val %3.0 = Add %1.0, %1.1, e0.0
  56966. void Return %3.0
  56967. BB4
  56968. fs %4.0 = FrameState 0x7f92445874c0+74: [%1.0, %1.1], env=e0.0
  56969. void Deopt %4.0
  56970. Prom 1:
  56971. BB0
  56972. env e0.0 = LdFunctionEnv
  56973. real$' %0.1 = LdConst [1] 65535
  56974. void Return %0.1
  56975. ├────── Constant folding: == 19
  56976. test>nextRandom@53[0x7f9244559020]
  56977. BB0
  56978. env e0.0 = MkEnv parent=?
  56979. cls %0.1 = LdFun bitwAnd, e0.0
  56980. prom %0.2 = MkArg missing, Prom(0), e0.0
  56981. real$' %0.3 = LdConst [1] 65535
  56982. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  56983. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  56984. t %0.6 = Identical %0.1, %0.5
  56985. cp %0.7 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  56986. BB1
  56987. void Assume %0.6, %0.7
  56988. fs %1.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  56989. val^ %1.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %1.1, e0.0
  56990. val^ %1.3 = SetShared %1.2
  56991. val %1.4 = Force %1.3, e0.0
  56992. void StVarSuper seed, %1.4, e0.0
  56993. val^? %1.6 = LdVar seed, e0.0
  56994. val %1.7 = Force %1.6, e0.0
  56995. void Return %1.7
  56996. BB2
  56997. fs %2.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  56998. void Deopt %2.0
  56999. Prom 0:
  57000. BB0
  57001. env e0.0 = LdFunctionEnv
  57002. val^? %0.1 = LdVar seed, e0.0
  57003. val %0.2 = Force %0.1, e0.0
  57004. real$' %0.3 = LdConst [1] 1309
  57005. cp %0.4 = Checkpoint -> BB1 (by default) | BB2 (if coming from expect)
  57006. BB1
  57007. val %1.0 = Mul %0.2, %0.3, e0.0
  57008. real$' %1.1 = LdConst [1] 13849
  57009. cp %1.2 = Checkpoint -> BB3 (by default) | BB4 (if coming from expect)
  57010. BB2
  57011. fs %2.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57012. void Deopt %2.0
  57013. BB3
  57014. val %3.0 = Add %1.0, %1.1, e0.0
  57015. void Return %3.0
  57016. BB4
  57017. fs %4.0 = FrameState 0x7f92445874c0+74: [%1.0, %1.1], env=e0.0
  57018. void Deopt %4.0
  57019. Prom 1:
  57020. BB0
  57021. env e0.0 = LdFunctionEnv
  57022. real$' %0.1 = LdConst [1] 65535
  57023. void Return %0.1
  57024. ├────── Cleanup redundant operations: == 26
  57025. test>nextRandom@53[0x7f9244559020]
  57026. BB0
  57027. env e0.0 = MkEnv parent=?
  57028. cls %0.1 = LdFun bitwAnd, e0.0
  57029. prom %0.2 = MkArg missing, Prom(0), e0.0
  57030. real$' %0.3 = LdConst [1] 65535
  57031. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57032. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57033. t %0.6 = Identical %0.1, %0.5
  57034. cp %0.7 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57035. BB2
  57036. void Assume %0.6, %0.7
  57037. fs %2.1 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57038. val^ %2.2 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.1, e0.0
  57039. val^ %2.3 = SetShared %2.2
  57040. val %2.4 = Force %2.3, e0.0
  57041. void StVarSuper seed, %2.4, e0.0
  57042. val^? %2.6 = LdVar seed, e0.0
  57043. val %2.7 = Force %2.6, e0.0
  57044. void Return %2.7
  57045. BB1
  57046. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57047. void Deopt %1.0
  57048. Prom 0:
  57049. BB0
  57050. env e0.0 = LdFunctionEnv
  57051. val^? %0.1 = LdVar seed, e0.0
  57052. val %0.2 = Force %0.1, e0.0
  57053. real$' %0.3 = LdConst [1] 1309
  57054. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57055. BB2
  57056. val %2.0 = Mul %0.2, %0.3, e0.0
  57057. real$' %2.1 = LdConst [1] 13849
  57058. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57059. BB1
  57060. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57061. void Deopt %1.0
  57062. BB4
  57063. val %4.0 = Add %2.0, %2.1, e0.0
  57064. void Return %4.0
  57065. BB3
  57066. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57067. void Deopt %3.0
  57068. Prom 1:
  57069. BB0
  57070. env e0.0 = LdFunctionEnv
  57071. real$' %0.1 = LdConst [1] 65535
  57072. void Return %0.1
  57073. ├────── Delay instructions: == 33
  57074. test>nextRandom@53[0x7f9244559020]
  57075. BB0
  57076. env e0.0 = MkEnv parent=?
  57077. cls %0.1 = LdFun bitwAnd, e0.0
  57078. prom %0.2 = MkArg missing, Prom(0), e0.0
  57079. real$' %0.3 = LdConst [1] 65535
  57080. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57081. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57082. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57083. BB2
  57084. t %2.0 = Identical %0.1, %0.5
  57085. void Assume %2.0, %0.6
  57086. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57087. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  57088. val^ %2.4 = SetShared %2.3
  57089. val %2.5 = Force %2.4, e0.0
  57090. void StVarSuper seed, %2.5, e0.0
  57091. val^? %2.7 = LdVar seed, e0.0
  57092. val %2.8 = Force %2.7, e0.0
  57093. void Return %2.8
  57094. BB1
  57095. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57096. void Deopt %1.0
  57097. Prom 0:
  57098. BB0
  57099. env e0.0 = LdFunctionEnv
  57100. val^? %0.1 = LdVar seed, e0.0
  57101. val %0.2 = Force %0.1, e0.0
  57102. real$' %0.3 = LdConst [1] 1309
  57103. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57104. BB2
  57105. val %2.0 = Mul %0.2, %0.3, e0.0
  57106. real$' %2.1 = LdConst [1] 13849
  57107. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57108. BB1
  57109. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57110. void Deopt %1.0
  57111. BB4
  57112. val %4.0 = Add %2.0, %2.1, e0.0
  57113. void Return %4.0
  57114. BB3
  57115. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57116. void Deopt %3.0
  57117. Prom 1:
  57118. BB0
  57119. env e0.0 = LdFunctionEnv
  57120. real$' %0.1 = LdConst [1] 65535
  57121. void Return %0.1
  57122. ├────── Elide environments not needed: == 40
  57123. test>nextRandom@53[0x7f9244559020]
  57124. BB0
  57125. env e0.0 = MkEnv parent=?
  57126. cls %0.1 = LdFun bitwAnd, e0.0
  57127. prom %0.2 = MkArg missing, Prom(0), e0.0
  57128. real$' %0.3 = LdConst [1] 65535
  57129. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57130. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57131. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57132. BB2
  57133. t %2.0 = Identical %0.1, %0.5
  57134. void Assume %2.0, %0.6
  57135. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57136. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  57137. val^ %2.4 = SetShared %2.3
  57138. val %2.5 = Force %2.4, e0.0
  57139. void StVarSuper seed, %2.5, e0.0
  57140. val^? %2.7 = LdVar seed, e0.0
  57141. val %2.8 = Force %2.7, e0.0
  57142. void Return %2.8
  57143. BB1
  57144. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57145. void Deopt %1.0
  57146. Prom 0:
  57147. BB0
  57148. env e0.0 = LdFunctionEnv
  57149. val^? %0.1 = LdVar seed, e0.0
  57150. val %0.2 = Force %0.1, e0.0
  57151. real$' %0.3 = LdConst [1] 1309
  57152. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57153. BB2
  57154. val %2.0 = Mul %0.2, %0.3, e0.0
  57155. real$' %2.1 = LdConst [1] 13849
  57156. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57157. BB1
  57158. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57159. void Deopt %1.0
  57160. BB4
  57161. val %4.0 = Add %2.0, %2.1, e0.0
  57162. void Return %4.0
  57163. BB3
  57164. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57165. void Deopt %3.0
  57166. Prom 1:
  57167. BB0
  57168. env e0.0 = LdFunctionEnv
  57169. real$' %0.1 = LdConst [1] 65535
  57170. void Return %0.1
  57171. ├────── Move environment creation as far as possible: == 47
  57172. test>nextRandom@53[0x7f9244559020]
  57173. BB0
  57174. env e0.0 = MkEnv parent=?
  57175. cls %0.1 = LdFun bitwAnd, e0.0
  57176. prom %0.2 = MkArg missing, Prom(0), e0.0
  57177. real$' %0.3 = LdConst [1] 65535
  57178. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57179. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57180. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57181. BB2
  57182. t %2.0 = Identical %0.1, %0.5
  57183. void Assume %2.0, %0.6
  57184. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57185. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  57186. val^ %2.4 = SetShared %2.3
  57187. val %2.5 = Force %2.4, e0.0
  57188. void StVarSuper seed, %2.5, e0.0
  57189. val^? %2.7 = LdVar seed, e0.0
  57190. val %2.8 = Force %2.7, e0.0
  57191. void Return %2.8
  57192. BB1
  57193. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57194. void Deopt %1.0
  57195. Prom 0:
  57196. BB0
  57197. env e0.0 = LdFunctionEnv
  57198. val^? %0.1 = LdVar seed, e0.0
  57199. val %0.2 = Force %0.1, e0.0
  57200. real$' %0.3 = LdConst [1] 1309
  57201. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57202. BB2
  57203. val %2.0 = Mul %0.2, %0.3, e0.0
  57204. real$' %2.1 = LdConst [1] 13849
  57205. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57206. BB1
  57207. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57208. void Deopt %1.0
  57209. BB4
  57210. val %4.0 = Add %2.0, %2.1, e0.0
  57211. void Return %4.0
  57212. BB3
  57213. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57214. void Deopt %3.0
  57215. Prom 1:
  57216. BB0
  57217. env e0.0 = LdFunctionEnv
  57218. real$' %0.1 = LdConst [1] 65535
  57219. void Return %0.1
  57220. ├────── Cleanup redundant operations: == 54
  57221. test>nextRandom@53[0x7f9244559020]
  57222. BB0
  57223. env e0.0 = MkEnv parent=?
  57224. cls %0.1 = LdFun bitwAnd, e0.0
  57225. prom %0.2 = MkArg missing, Prom(0), e0.0
  57226. real$' %0.3 = LdConst [1] 65535
  57227. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57228. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57229. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57230. BB2
  57231. t %2.0 = Identical %0.1, %0.5
  57232. void Assume %2.0, %0.6
  57233. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57234. val^ %2.3 = StaticCall bitwAnd[0x7f92445706c0](%0.2, %0.4) %2.2, e0.0
  57235. val^ %2.4 = SetShared %2.3
  57236. val %2.5 = Force %2.4, e0.0
  57237. void StVarSuper seed, %2.5, e0.0
  57238. val^? %2.7 = LdVar seed, e0.0
  57239. val %2.8 = Force %2.7, e0.0
  57240. void Return %2.8
  57241. BB1
  57242. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57243. void Deopt %1.0
  57244. Prom 0:
  57245. BB0
  57246. env e0.0 = LdFunctionEnv
  57247. val^? %0.1 = LdVar seed, e0.0
  57248. val %0.2 = Force %0.1, e0.0
  57249. real$' %0.3 = LdConst [1] 1309
  57250. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57251. BB2
  57252. val %2.0 = Mul %0.2, %0.3, e0.0
  57253. real$' %2.1 = LdConst [1] 13849
  57254. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57255. BB1
  57256. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57257. void Deopt %1.0
  57258. BB4
  57259. val %4.0 = Add %2.0, %2.1, e0.0
  57260. void Return %4.0
  57261. BB3
  57262. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57263. void Deopt %3.0
  57264. Prom 1:
  57265. BB0
  57266. env e0.0 = LdFunctionEnv
  57267. real$' %0.1 = LdConst [1] 65535
  57268. void Return %0.1
  57269. ├────── Inline closures: == 61
  57270. test>nextRandom@53[0x7f9244559020]
  57271. BB0
  57272. env e0.0 = MkEnv parent=?
  57273. cls %0.1 = LdFun bitwAnd, e0.0
  57274. prom %0.2 = MkArg missing, Prom(0), e0.0
  57275. real$' %0.3 = LdConst [1] 65535
  57276. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57277. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57278. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57279. BB2
  57280. t %2.0 = Identical %0.1, %0.5
  57281. void Assume %2.0, %0.6
  57282. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57283. goto BB4
  57284. BB1
  57285. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57286. void Deopt %1.0
  57287. BB4
  57288. val^? %4.0 = CastType %0.2
  57289. val^? %4.1 = CastType %0.4
  57290. env e4.2 = MkEnv a=%4.0, b=%4.1, parent=<environment: namespace:base>
  57291. val %4.3 = Force %4.0, e4.2
  57292. val^? %4.4 = LdVar b, e4.2
  57293. val %4.5 = Force %4.4, e4.2
  57294. val^ %4.6 = CallBuiltin bitwiseAnd(%4.3, %4.5) e4.2
  57295. val %4.7 = Force %4.6, e4.2
  57296. goto BB3
  57297. BB3
  57298. val^ %3.0 = SetShared %4.7
  57299. val %3.1 = Force %3.0, e0.0
  57300. void StVarSuper seed, %3.1, e0.0
  57301. val^? %3.3 = LdVar seed, e0.0
  57302. val %3.4 = Force %3.3, e0.0
  57303. void Return %3.4
  57304. Prom 0:
  57305. BB0
  57306. env e0.0 = LdFunctionEnv
  57307. val^? %0.1 = LdVar seed, e0.0
  57308. val %0.2 = Force %0.1, e0.0
  57309. real$' %0.3 = LdConst [1] 1309
  57310. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57311. BB2
  57312. val %2.0 = Mul %0.2, %0.3, e0.0
  57313. real$' %2.1 = LdConst [1] 13849
  57314. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57315. BB1
  57316. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57317. void Deopt %1.0
  57318. BB4
  57319. val %4.0 = Add %2.0, %2.1, e0.0
  57320. void Return %4.0
  57321. BB3
  57322. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57323. void Deopt %3.0
  57324. Prom 1:
  57325. BB0
  57326. env e0.0 = LdFunctionEnv
  57327. real$' %0.1 = LdConst [1] 65535
  57328. void Return %0.1
  57329. ├────── Inline Promises: == 68
  57330. test>nextRandom@53[0x7f9244559020]
  57331. BB0
  57332. env e0.0 = MkEnv parent=?
  57333. cls %0.1 = LdFun bitwAnd, e0.0
  57334. prom %0.2 = MkArg missing, Prom(0), e0.0
  57335. real$' %0.3 = LdConst [1] 65535
  57336. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57337. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57338. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57339. BB2
  57340. t %2.0 = Identical %0.1, %0.5
  57341. void Assume %2.0, %0.6
  57342. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57343. goto BB4
  57344. BB1
  57345. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57346. void Deopt %1.0
  57347. BB4
  57348. val^? %4.0 = CastType %0.2
  57349. env e4.1 = MkEnv a=%4.0, b=%0.3, parent=<environment: namespace:base>
  57350. val %4.2 = Force! %4.0, e4.1
  57351. val^? %4.3 = LdVar b, e4.1
  57352. val %4.4 = Force %4.3, e4.1
  57353. val^ %4.5 = CallBuiltin bitwiseAnd(%4.2, %4.4) e4.1
  57354. val %4.6 = Force %4.5, e4.1
  57355. goto BB3
  57356. BB3
  57357. val^ %3.0 = SetShared %4.6
  57358. val %3.1 = Force %3.0, e0.0
  57359. void StVarSuper seed, %3.1, e0.0
  57360. val^? %3.3 = LdVar seed, e0.0
  57361. val %3.4 = Force %3.3, e0.0
  57362. void Return %3.4
  57363. Prom 0:
  57364. BB0
  57365. env e0.0 = LdFunctionEnv
  57366. val^? %0.1 = LdVar seed, e0.0
  57367. val %0.2 = Force %0.1, e0.0
  57368. real$' %0.3 = LdConst [1] 1309
  57369. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57370. BB2
  57371. val %2.0 = Mul %0.2, %0.3, e0.0
  57372. real$' %2.1 = LdConst [1] 13849
  57373. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57374. BB1
  57375. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57376. void Deopt %1.0
  57377. BB4
  57378. val %4.0 = Add %2.0, %2.1, e0.0
  57379. void Return %4.0
  57380. BB3
  57381. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57382. void Deopt %3.0
  57383. Prom 1:
  57384. BB0
  57385. env e0.0 = LdFunctionEnv
  57386. real$' %0.1 = LdConst [1] 65535
  57387. void Return %0.1
  57388. ├────── Scope resolution: == 75
  57389. test>nextRandom@53[0x7f9244559020]
  57390. BB0
  57391. env e0.0 = MkEnv parent=?
  57392. cls %0.1 = LdFun bitwAnd, e0.0
  57393. prom %0.2 = MkArg missing, Prom(0), e0.0
  57394. real$' %0.3 = LdConst [1] 65535
  57395. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57396. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57397. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57398. BB2
  57399. t %2.0 = Identical %0.1, %0.5
  57400. void Assume %2.0, %0.6
  57401. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57402. goto BB4
  57403. BB1
  57404. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57405. void Deopt %1.0
  57406. BB4
  57407. val^? %4.0 = CastType %0.2
  57408. env e4.1 = MkEnv a=%4.0, b=%0.3, parent=<environment: namespace:base>
  57409. val %4.2 = Force! %4.0, e4.1
  57410. val^ %4.3 = CallBuiltin bitwiseAnd(%4.2, %0.3) e4.1
  57411. val %4.4 = Force %4.3, e4.1
  57412. goto BB3
  57413. BB3
  57414. val^ %3.0 = SetShared %4.4
  57415. val %3.1 = Force %3.0, e0.0
  57416. void StVarSuper seed, %3.1, e0.0
  57417. val^? %3.3 = LdVar seed, e0.0
  57418. val %3.4 = Force %3.3, e0.0
  57419. void Return %3.4
  57420. Prom 0:
  57421. BB0
  57422. env e0.0 = LdFunctionEnv
  57423. val^? %0.1 = LdVar seed, e0.0
  57424. val %0.2 = Force %0.1, e0.0
  57425. real$' %0.3 = LdConst [1] 1309
  57426. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57427. BB2
  57428. val %2.0 = Mul %0.2, %0.3, e0.0
  57429. real$' %2.1 = LdConst [1] 13849
  57430. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57431. BB1
  57432. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57433. void Deopt %1.0
  57434. BB4
  57435. val %4.0 = Add %2.0, %2.1, e0.0
  57436. void Return %4.0
  57437. BB3
  57438. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57439. void Deopt %3.0
  57440. Prom 1:
  57441. BB0
  57442. env e0.0 = LdFunctionEnv
  57443. real$' %0.1 = LdConst [1] 65535
  57444. void Return %0.1
  57445. ├────── Constant folding: == 82
  57446. test>nextRandom@53[0x7f9244559020]
  57447. BB0
  57448. env e0.0 = MkEnv parent=?
  57449. cls %0.1 = LdFun bitwAnd, e0.0
  57450. prom %0.2 = MkArg missing, Prom(0), e0.0
  57451. real$' %0.3 = LdConst [1] 65535
  57452. prom %0.4 = MkArg %0.3, Prom(1), e0.0
  57453. cls' %0.5 = LdConst function (a, b) .Internal(bitwiseAnd...
  57454. cp %0.6 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57455. BB2
  57456. t %2.0 = Identical %0.1, %0.5
  57457. void Assume %2.0, %0.6
  57458. fs %2.2 = FrameState 0x7f924450b7b0+65: [], env=e0.0
  57459. goto BB4
  57460. BB1
  57461. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57462. void Deopt %1.0
  57463. BB4
  57464. val^? %4.0 = CastType %0.2
  57465. env e4.1 = MkEnv a=%4.0, b=%0.3, parent=<environment: namespace:base>
  57466. val %4.2 = Force! %4.0, e4.1
  57467. val^ %4.3 = CallBuiltin bitwiseAnd(%4.2, %0.3) e4.1
  57468. val %4.4 = Force %4.3, e4.1
  57469. goto BB3
  57470. BB3
  57471. val^ %3.0 = SetShared %4.4
  57472. val %3.1 = Force %3.0, e0.0
  57473. void StVarSuper seed, %3.1, e0.0
  57474. val^? %3.3 = LdVar seed, e0.0
  57475. val %3.4 = Force %3.3, e0.0
  57476. void Return %3.4
  57477. Prom 0:
  57478. BB0
  57479. env e0.0 = LdFunctionEnv
  57480. val^? %0.1 = LdVar seed, e0.0
  57481. val %0.2 = Force %0.1, e0.0
  57482. real$' %0.3 = LdConst [1] 1309
  57483. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57484. BB2
  57485. val %2.0 = Mul %0.2, %0.3, e0.0
  57486. real$' %2.1 = LdConst [1] 13849
  57487. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57488. BB1
  57489. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57490. void Deopt %1.0
  57491. BB4
  57492. val %4.0 = Add %2.0, %2.1, e0.0
  57493. void Return %4.0
  57494. BB3
  57495. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57496. void Deopt %3.0
  57497. Prom 1:
  57498. BB0
  57499. env e0.0 = LdFunctionEnv
  57500. real$' %0.1 = LdConst [1] 65535
  57501. void Return %0.1
  57502. ├────── Cleanup redundant operations: == 89
  57503. test>nextRandom@53[0x7f9244559020]
  57504. BB0
  57505. env e0.0 = MkEnv parent=?
  57506. cls %0.1 = LdFun bitwAnd, e0.0
  57507. prom %0.2 = MkArg missing, Prom(0), e0.0
  57508. real$' %0.3 = LdConst [1] 65535
  57509. cls' %0.4 = LdConst function (a, b) .Internal(bitwiseAnd...
  57510. cp %0.5 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57511. BB2
  57512. t %2.0 = Identical %0.1, %0.4
  57513. void Assume %2.0, %0.5
  57514. val^? %2.2 = CastType %0.2
  57515. env e2.3 = MkEnv a=%2.2, b=%0.3, parent=<environment: namespace:base>
  57516. val %2.4 = Force! %2.2, e2.3
  57517. val^ %2.5 = CallBuiltin bitwiseAnd(%2.4, %0.3) e2.3
  57518. val %2.6 = Force %2.5, e2.3
  57519. goto BB3
  57520. BB1
  57521. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57522. void Deopt %1.0
  57523. BB3
  57524. val %3.0 = SetShared %2.6
  57525. void StVarSuper seed, %2.6, e0.0
  57526. val^? %3.2 = LdVar seed, e0.0
  57527. val %3.3 = Force %3.2, e0.0
  57528. void Return %3.3
  57529. Prom 0:
  57530. BB0
  57531. env e0.0 = LdFunctionEnv
  57532. val^? %0.1 = LdVar seed, e0.0
  57533. val %0.2 = Force %0.1, e0.0
  57534. real$' %0.3 = LdConst [1] 1309
  57535. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57536. BB2
  57537. val %2.0 = Mul %0.2, %0.3, e0.0
  57538. real$' %2.1 = LdConst [1] 13849
  57539. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57540. BB1
  57541. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57542. void Deopt %1.0
  57543. BB4
  57544. val %4.0 = Add %2.0, %2.1, e0.0
  57545. void Return %4.0
  57546. BB3
  57547. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57548. void Deopt %3.0
  57549. ├────── Delay instructions: == 96
  57550. test>nextRandom@53[0x7f9244559020]
  57551. BB0
  57552. env e0.0 = MkEnv parent=?
  57553. cls %0.1 = LdFun bitwAnd, e0.0
  57554. prom %0.2 = MkArg missing, Prom(0), e0.0
  57555. real$' %0.3 = LdConst [1] 65535
  57556. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57557. BB2
  57558. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57559. t %2.1 = Identical %0.1, %2.0
  57560. void Assume %2.1, %0.4
  57561. val^? %2.3 = CastType %0.2
  57562. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57563. val %2.5 = Force! %2.3, e2.4
  57564. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57565. val %2.7 = Force %2.6, e2.4
  57566. goto BB3
  57567. BB1
  57568. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57569. void Deopt %1.0
  57570. BB3
  57571. val %3.0 = SetShared %2.7
  57572. void StVarSuper seed, %2.7, e0.0
  57573. val^? %3.2 = LdVar seed, e0.0
  57574. val %3.3 = Force %3.2, e0.0
  57575. void Return %3.3
  57576. Prom 0:
  57577. BB0
  57578. env e0.0 = LdFunctionEnv
  57579. val^? %0.1 = LdVar seed, e0.0
  57580. val %0.2 = Force %0.1, e0.0
  57581. real$' %0.3 = LdConst [1] 1309
  57582. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57583. BB2
  57584. val %2.0 = Mul %0.2, %0.3, e0.0
  57585. real$' %2.1 = LdConst [1] 13849
  57586. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57587. BB1
  57588. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57589. void Deopt %1.0
  57590. BB4
  57591. val %4.0 = Add %2.0, %2.1, e0.0
  57592. void Return %4.0
  57593. BB3
  57594. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57595. void Deopt %3.0
  57596. ├────── Elide environments not needed: == 103
  57597. test>nextRandom@53[0x7f9244559020]
  57598. BB0
  57599. env e0.0 = MkEnv parent=?
  57600. cls %0.1 = LdFun bitwAnd, e0.0
  57601. prom %0.2 = MkArg missing, Prom(0), e0.0
  57602. real$' %0.3 = LdConst [1] 65535
  57603. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57604. BB2
  57605. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57606. t %2.1 = Identical %0.1, %2.0
  57607. void Assume %2.1, %0.4
  57608. val^? %2.3 = CastType %0.2
  57609. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57610. val %2.5 = Force! %2.3, e2.4
  57611. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57612. val %2.7 = Force %2.6, e2.4
  57613. goto BB3
  57614. BB1
  57615. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57616. void Deopt %1.0
  57617. BB3
  57618. val %3.0 = SetShared %2.7
  57619. void StVarSuper seed, %2.7, e0.0
  57620. val^? %3.2 = LdVar seed, e0.0
  57621. val %3.3 = Force %3.2, e0.0
  57622. void Return %3.3
  57623. Prom 0:
  57624. BB0
  57625. env e0.0 = LdFunctionEnv
  57626. val^? %0.1 = LdVar seed, e0.0
  57627. val %0.2 = Force %0.1, e0.0
  57628. real$' %0.3 = LdConst [1] 1309
  57629. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57630. BB2
  57631. val %2.0 = Mul %0.2, %0.3, e0.0
  57632. real$' %2.1 = LdConst [1] 13849
  57633. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57634. BB1
  57635. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57636. void Deopt %1.0
  57637. BB4
  57638. val %4.0 = Add %2.0, %2.1, e0.0
  57639. void Return %4.0
  57640. BB3
  57641. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57642. void Deopt %3.0
  57643. ├────── Move environment creation as far as possible: == 110
  57644. test>nextRandom@53[0x7f9244559020]
  57645. BB0
  57646. env e0.0 = MkEnv parent=?
  57647. cls %0.1 = LdFun bitwAnd, e0.0
  57648. prom %0.2 = MkArg missing, Prom(0), e0.0
  57649. real$' %0.3 = LdConst [1] 65535
  57650. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57651. BB2
  57652. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57653. t %2.1 = Identical %0.1, %2.0
  57654. void Assume %2.1, %0.4
  57655. val^? %2.3 = CastType %0.2
  57656. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57657. val %2.5 = Force! %2.3, e2.4
  57658. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57659. val %2.7 = Force %2.6, e2.4
  57660. goto BB3
  57661. BB1
  57662. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57663. void Deopt %1.0
  57664. BB3
  57665. val %3.0 = SetShared %2.7
  57666. void StVarSuper seed, %2.7, e0.0
  57667. val^? %3.2 = LdVar seed, e0.0
  57668. val %3.3 = Force %3.2, e0.0
  57669. void Return %3.3
  57670. Prom 0:
  57671. BB0
  57672. env e0.0 = LdFunctionEnv
  57673. val^? %0.1 = LdVar seed, e0.0
  57674. val %0.2 = Force %0.1, e0.0
  57675. real$' %0.3 = LdConst [1] 1309
  57676. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57677. BB2
  57678. val %2.0 = Mul %0.2, %0.3, e0.0
  57679. real$' %2.1 = LdConst [1] 13849
  57680. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57681. BB1
  57682. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57683. void Deopt %1.0
  57684. BB4
  57685. val %4.0 = Add %2.0, %2.1, e0.0
  57686. void Return %4.0
  57687. BB3
  57688. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57689. void Deopt %3.0
  57690. ├────── Cleanup redundant operations: == 117
  57691. test>nextRandom@53[0x7f9244559020]
  57692. BB0
  57693. env e0.0 = MkEnv parent=?
  57694. cls %0.1 = LdFun bitwAnd, e0.0
  57695. prom %0.2 = MkArg missing, Prom(0), e0.0
  57696. real$' %0.3 = LdConst [1] 65535
  57697. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57698. BB2
  57699. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57700. t %2.1 = Identical %0.1, %2.0
  57701. void Assume %2.1, %0.4
  57702. val^? %2.3 = CastType %0.2
  57703. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57704. val %2.5 = Force! %2.3, e2.4
  57705. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57706. val %2.7 = Force %2.6, e2.4
  57707. void StVarSuper seed, %2.7, e0.0
  57708. val^? %2.9 = LdVar seed, e0.0
  57709. val %2.10 = Force %2.9, e0.0
  57710. void Return %2.10
  57711. BB1
  57712. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57713. void Deopt %1.0
  57714. Prom 0:
  57715. BB0
  57716. env e0.0 = LdFunctionEnv
  57717. val^? %0.1 = LdVar seed, e0.0
  57718. val %0.2 = Force %0.1, e0.0
  57719. real$' %0.3 = LdConst [1] 1309
  57720. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57721. BB2
  57722. val %2.0 = Mul %0.2, %0.3, e0.0
  57723. real$' %2.1 = LdConst [1] 13849
  57724. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57725. BB1
  57726. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57727. void Deopt %1.0
  57728. BB4
  57729. val %4.0 = Add %2.0, %2.1, e0.0
  57730. void Return %4.0
  57731. BB3
  57732. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57733. void Deopt %3.0
  57734. ├────── Inline closures: == 124
  57735. test>nextRandom@53[0x7f9244559020]
  57736. BB0
  57737. env e0.0 = MkEnv parent=?
  57738. cls %0.1 = LdFun bitwAnd, e0.0
  57739. prom %0.2 = MkArg missing, Prom(0), e0.0
  57740. real$' %0.3 = LdConst [1] 65535
  57741. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57742. BB2
  57743. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57744. t %2.1 = Identical %0.1, %2.0
  57745. void Assume %2.1, %0.4
  57746. val^? %2.3 = CastType %0.2
  57747. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57748. val %2.5 = Force! %2.3, e2.4
  57749. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57750. val %2.7 = Force %2.6, e2.4
  57751. void StVarSuper seed, %2.7, e0.0
  57752. val^? %2.9 = LdVar seed, e0.0
  57753. val %2.10 = Force %2.9, e0.0
  57754. void Return %2.10
  57755. BB1
  57756. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57757. void Deopt %1.0
  57758. Prom 0:
  57759. BB0
  57760. env e0.0 = LdFunctionEnv
  57761. val^? %0.1 = LdVar seed, e0.0
  57762. val %0.2 = Force %0.1, e0.0
  57763. real$' %0.3 = LdConst [1] 1309
  57764. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57765. BB2
  57766. val %2.0 = Mul %0.2, %0.3, e0.0
  57767. real$' %2.1 = LdConst [1] 13849
  57768. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57769. BB1
  57770. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57771. void Deopt %1.0
  57772. BB4
  57773. val %4.0 = Add %2.0, %2.1, e0.0
  57774. void Return %4.0
  57775. BB3
  57776. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57777. void Deopt %3.0
  57778. ├────── Inline Promises: == 131
  57779. test>nextRandom@53[0x7f9244559020]
  57780. BB0
  57781. env e0.0 = MkEnv parent=?
  57782. cls %0.1 = LdFun bitwAnd, e0.0
  57783. prom %0.2 = MkArg missing, Prom(0), e0.0
  57784. real$' %0.3 = LdConst [1] 65535
  57785. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57786. BB2
  57787. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57788. t %2.1 = Identical %0.1, %2.0
  57789. void Assume %2.1, %0.4
  57790. val^? %2.3 = CastType %0.2
  57791. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57792. val %2.5 = Force! %2.3, e2.4
  57793. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57794. val %2.7 = Force %2.6, e2.4
  57795. void StVarSuper seed, %2.7, e0.0
  57796. val^? %2.9 = LdVar seed, e0.0
  57797. val %2.10 = Force %2.9, e0.0
  57798. void Return %2.10
  57799. BB1
  57800. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57801. void Deopt %1.0
  57802. Prom 0:
  57803. BB0
  57804. env e0.0 = LdFunctionEnv
  57805. val^? %0.1 = LdVar seed, e0.0
  57806. val %0.2 = Force %0.1, e0.0
  57807. real$' %0.3 = LdConst [1] 1309
  57808. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57809. BB2
  57810. val %2.0 = Mul %0.2, %0.3, e0.0
  57811. real$' %2.1 = LdConst [1] 13849
  57812. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57813. BB1
  57814. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57815. void Deopt %1.0
  57816. BB4
  57817. val %4.0 = Add %2.0, %2.1, e0.0
  57818. void Return %4.0
  57819. BB3
  57820. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57821. void Deopt %3.0
  57822. ├────── Scope resolution: == 138
  57823. test>nextRandom@53[0x7f9244559020]
  57824. BB0
  57825. env e0.0 = MkEnv parent=?
  57826. cls %0.1 = LdFun bitwAnd, e0.0
  57827. prom %0.2 = MkArg missing, Prom(0), e0.0
  57828. real$' %0.3 = LdConst [1] 65535
  57829. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57830. BB2
  57831. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57832. t %2.1 = Identical %0.1, %2.0
  57833. void Assume %2.1, %0.4
  57834. val^? %2.3 = CastType %0.2
  57835. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57836. val %2.5 = Force! %2.3, e2.4
  57837. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57838. val %2.7 = Force %2.6, e2.4
  57839. void StVarSuper seed, %2.7, e0.0
  57840. val^? %2.9 = LdVar seed, e0.0
  57841. val %2.10 = Force %2.9, e0.0
  57842. void Return %2.10
  57843. BB1
  57844. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57845. void Deopt %1.0
  57846. Prom 0:
  57847. BB0
  57848. env e0.0 = LdFunctionEnv
  57849. val^? %0.1 = LdVar seed, e0.0
  57850. val %0.2 = Force %0.1, e0.0
  57851. real$' %0.3 = LdConst [1] 1309
  57852. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57853. BB2
  57854. val %2.0 = Mul %0.2, %0.3, e0.0
  57855. real$' %2.1 = LdConst [1] 13849
  57856. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57857. BB1
  57858. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57859. void Deopt %1.0
  57860. BB4
  57861. val %4.0 = Add %2.0, %2.1, e0.0
  57862. void Return %4.0
  57863. BB3
  57864. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57865. void Deopt %3.0
  57866. ├────── Constant folding: == 145
  57867. test>nextRandom@53[0x7f9244559020]
  57868. BB0
  57869. env e0.0 = MkEnv parent=?
  57870. cls %0.1 = LdFun bitwAnd, e0.0
  57871. prom %0.2 = MkArg missing, Prom(0), e0.0
  57872. real$' %0.3 = LdConst [1] 65535
  57873. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57874. BB2
  57875. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57876. t %2.1 = Identical %0.1, %2.0
  57877. void Assume %2.1, %0.4
  57878. val^? %2.3 = CastType %0.2
  57879. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57880. val %2.5 = Force! %2.3, e2.4
  57881. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57882. val %2.7 = Force %2.6, e2.4
  57883. void StVarSuper seed, %2.7, e0.0
  57884. val^? %2.9 = LdVar seed, e0.0
  57885. val %2.10 = Force %2.9, e0.0
  57886. void Return %2.10
  57887. BB1
  57888. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57889. void Deopt %1.0
  57890. Prom 0:
  57891. BB0
  57892. env e0.0 = LdFunctionEnv
  57893. val^? %0.1 = LdVar seed, e0.0
  57894. val %0.2 = Force %0.1, e0.0
  57895. real$' %0.3 = LdConst [1] 1309
  57896. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57897. BB2
  57898. val %2.0 = Mul %0.2, %0.3, e0.0
  57899. real$' %2.1 = LdConst [1] 13849
  57900. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57901. BB1
  57902. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57903. void Deopt %1.0
  57904. BB4
  57905. val %4.0 = Add %2.0, %2.1, e0.0
  57906. void Return %4.0
  57907. BB3
  57908. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57909. void Deopt %3.0
  57910. ├────── Cleanup redundant operations: == 152
  57911. test>nextRandom@53[0x7f9244559020]
  57912. BB0
  57913. env e0.0 = MkEnv parent=?
  57914. cls %0.1 = LdFun bitwAnd, e0.0
  57915. prom %0.2 = MkArg missing, Prom(0), e0.0
  57916. real$' %0.3 = LdConst [1] 65535
  57917. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57918. BB2
  57919. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57920. t %2.1 = Identical %0.1, %2.0
  57921. void Assume %2.1, %0.4
  57922. val^? %2.3 = CastType %0.2
  57923. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57924. val %2.5 = Force! %2.3, e2.4
  57925. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57926. val %2.7 = Force %2.6, e2.4
  57927. void StVarSuper seed, %2.7, e0.0
  57928. val^? %2.9 = LdVar seed, e0.0
  57929. val %2.10 = Force %2.9, e0.0
  57930. void Return %2.10
  57931. BB1
  57932. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57933. void Deopt %1.0
  57934. Prom 0:
  57935. BB0
  57936. env e0.0 = LdFunctionEnv
  57937. val^? %0.1 = LdVar seed, e0.0
  57938. val %0.2 = Force %0.1, e0.0
  57939. real$' %0.3 = LdConst [1] 1309
  57940. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57941. BB2
  57942. val %2.0 = Mul %0.2, %0.3, e0.0
  57943. real$' %2.1 = LdConst [1] 13849
  57944. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57945. BB1
  57946. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57947. void Deopt %1.0
  57948. BB4
  57949. val %4.0 = Add %2.0, %2.1, e0.0
  57950. void Return %4.0
  57951. BB3
  57952. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57953. void Deopt %3.0
  57954. ├────── Delay instructions: == 159
  57955. test>nextRandom@53[0x7f9244559020]
  57956. BB0
  57957. env e0.0 = MkEnv parent=?
  57958. cls %0.1 = LdFun bitwAnd, e0.0
  57959. prom %0.2 = MkArg missing, Prom(0), e0.0
  57960. real$' %0.3 = LdConst [1] 65535
  57961. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57962. BB2
  57963. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  57964. t %2.1 = Identical %0.1, %2.0
  57965. void Assume %2.1, %0.4
  57966. val^? %2.3 = CastType %0.2
  57967. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  57968. val %2.5 = Force! %2.3, e2.4
  57969. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  57970. val %2.7 = Force %2.6, e2.4
  57971. void StVarSuper seed, %2.7, e0.0
  57972. val^? %2.9 = LdVar seed, e0.0
  57973. val %2.10 = Force %2.9, e0.0
  57974. void Return %2.10
  57975. BB1
  57976. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  57977. void Deopt %1.0
  57978. Prom 0:
  57979. BB0
  57980. env e0.0 = LdFunctionEnv
  57981. val^? %0.1 = LdVar seed, e0.0
  57982. val %0.2 = Force %0.1, e0.0
  57983. real$' %0.3 = LdConst [1] 1309
  57984. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  57985. BB2
  57986. val %2.0 = Mul %0.2, %0.3, e0.0
  57987. real$' %2.1 = LdConst [1] 13849
  57988. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  57989. BB1
  57990. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  57991. void Deopt %1.0
  57992. BB4
  57993. val %4.0 = Add %2.0, %2.1, e0.0
  57994. void Return %4.0
  57995. BB3
  57996. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  57997. void Deopt %3.0
  57998. ├────── Elide environments not needed: == 166
  57999. test>nextRandom@53[0x7f9244559020]
  58000. BB0
  58001. env e0.0 = MkEnv parent=?
  58002. cls %0.1 = LdFun bitwAnd, e0.0
  58003. prom %0.2 = MkArg missing, Prom(0), e0.0
  58004. real$' %0.3 = LdConst [1] 65535
  58005. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58006. BB2
  58007. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58008. t %2.1 = Identical %0.1, %2.0
  58009. void Assume %2.1, %0.4
  58010. val^? %2.3 = CastType %0.2
  58011. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58012. val %2.5 = Force! %2.3, e2.4
  58013. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58014. val %2.7 = Force %2.6, e2.4
  58015. void StVarSuper seed, %2.7, e0.0
  58016. val^? %2.9 = LdVar seed, e0.0
  58017. val %2.10 = Force %2.9, e0.0
  58018. void Return %2.10
  58019. BB1
  58020. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58021. void Deopt %1.0
  58022. Prom 0:
  58023. BB0
  58024. env e0.0 = LdFunctionEnv
  58025. val^? %0.1 = LdVar seed, e0.0
  58026. val %0.2 = Force %0.1, e0.0
  58027. real$' %0.3 = LdConst [1] 1309
  58028. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58029. BB2
  58030. val %2.0 = Mul %0.2, %0.3, e0.0
  58031. real$' %2.1 = LdConst [1] 13849
  58032. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58033. BB1
  58034. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58035. void Deopt %1.0
  58036. BB4
  58037. val %4.0 = Add %2.0, %2.1, e0.0
  58038. void Return %4.0
  58039. BB3
  58040. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58041. void Deopt %3.0
  58042. ├────── Move environment creation as far as possible: == 173
  58043. test>nextRandom@53[0x7f9244559020]
  58044. BB0
  58045. env e0.0 = MkEnv parent=?
  58046. cls %0.1 = LdFun bitwAnd, e0.0
  58047. prom %0.2 = MkArg missing, Prom(0), e0.0
  58048. real$' %0.3 = LdConst [1] 65535
  58049. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58050. BB2
  58051. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58052. t %2.1 = Identical %0.1, %2.0
  58053. void Assume %2.1, %0.4
  58054. val^? %2.3 = CastType %0.2
  58055. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58056. val %2.5 = Force! %2.3, e2.4
  58057. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58058. val %2.7 = Force %2.6, e2.4
  58059. void StVarSuper seed, %2.7, e0.0
  58060. val^? %2.9 = LdVar seed, e0.0
  58061. val %2.10 = Force %2.9, e0.0
  58062. void Return %2.10
  58063. BB1
  58064. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58065. void Deopt %1.0
  58066. Prom 0:
  58067. BB0
  58068. env e0.0 = LdFunctionEnv
  58069. val^? %0.1 = LdVar seed, e0.0
  58070. val %0.2 = Force %0.1, e0.0
  58071. real$' %0.3 = LdConst [1] 1309
  58072. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58073. BB2
  58074. val %2.0 = Mul %0.2, %0.3, e0.0
  58075. real$' %2.1 = LdConst [1] 13849
  58076. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58077. BB1
  58078. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58079. void Deopt %1.0
  58080. BB4
  58081. val %4.0 = Add %2.0, %2.1, e0.0
  58082. void Return %4.0
  58083. BB3
  58084. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58085. void Deopt %3.0
  58086. ├────── Cleanup redundant operations: == 180
  58087. test>nextRandom@53[0x7f9244559020]
  58088. BB0
  58089. env e0.0 = MkEnv parent=?
  58090. cls %0.1 = LdFun bitwAnd, e0.0
  58091. prom %0.2 = MkArg missing, Prom(0), e0.0
  58092. real$' %0.3 = LdConst [1] 65535
  58093. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58094. BB2
  58095. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58096. t %2.1 = Identical %0.1, %2.0
  58097. void Assume %2.1, %0.4
  58098. val^? %2.3 = CastType %0.2
  58099. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58100. val %2.5 = Force! %2.3, e2.4
  58101. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58102. val %2.7 = Force %2.6, e2.4
  58103. void StVarSuper seed, %2.7, e0.0
  58104. val^? %2.9 = LdVar seed, e0.0
  58105. val %2.10 = Force %2.9, e0.0
  58106. void Return %2.10
  58107. BB1
  58108. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58109. void Deopt %1.0
  58110. Prom 0:
  58111. BB0
  58112. env e0.0 = LdFunctionEnv
  58113. val^? %0.1 = LdVar seed, e0.0
  58114. val %0.2 = Force %0.1, e0.0
  58115. real$' %0.3 = LdConst [1] 1309
  58116. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58117. BB2
  58118. val %2.0 = Mul %0.2, %0.3, e0.0
  58119. real$' %2.1 = LdConst [1] 13849
  58120. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58121. BB1
  58122. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58123. void Deopt %1.0
  58124. BB4
  58125. val %4.0 = Add %2.0, %2.1, e0.0
  58126. void Return %4.0
  58127. BB3
  58128. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58129. void Deopt %3.0
  58130. ├────── Inline closures: == 187
  58131. test>nextRandom@53[0x7f9244559020]
  58132. BB0
  58133. env e0.0 = MkEnv parent=?
  58134. cls %0.1 = LdFun bitwAnd, e0.0
  58135. prom %0.2 = MkArg missing, Prom(0), e0.0
  58136. real$' %0.3 = LdConst [1] 65535
  58137. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58138. BB2
  58139. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58140. t %2.1 = Identical %0.1, %2.0
  58141. void Assume %2.1, %0.4
  58142. val^? %2.3 = CastType %0.2
  58143. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58144. val %2.5 = Force! %2.3, e2.4
  58145. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58146. val %2.7 = Force %2.6, e2.4
  58147. void StVarSuper seed, %2.7, e0.0
  58148. val^? %2.9 = LdVar seed, e0.0
  58149. val %2.10 = Force %2.9, e0.0
  58150. void Return %2.10
  58151. BB1
  58152. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58153. void Deopt %1.0
  58154. Prom 0:
  58155. BB0
  58156. env e0.0 = LdFunctionEnv
  58157. val^? %0.1 = LdVar seed, e0.0
  58158. val %0.2 = Force %0.1, e0.0
  58159. real$' %0.3 = LdConst [1] 1309
  58160. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58161. BB2
  58162. val %2.0 = Mul %0.2, %0.3, e0.0
  58163. real$' %2.1 = LdConst [1] 13849
  58164. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58165. BB1
  58166. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58167. void Deopt %1.0
  58168. BB4
  58169. val %4.0 = Add %2.0, %2.1, e0.0
  58170. void Return %4.0
  58171. BB3
  58172. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58173. void Deopt %3.0
  58174. ├────── Inline Promises: == 194
  58175. test>nextRandom@53[0x7f9244559020]
  58176. BB0
  58177. env e0.0 = MkEnv parent=?
  58178. cls %0.1 = LdFun bitwAnd, e0.0
  58179. prom %0.2 = MkArg missing, Prom(0), e0.0
  58180. real$' %0.3 = LdConst [1] 65535
  58181. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58182. BB2
  58183. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58184. t %2.1 = Identical %0.1, %2.0
  58185. void Assume %2.1, %0.4
  58186. val^? %2.3 = CastType %0.2
  58187. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58188. val %2.5 = Force! %2.3, e2.4
  58189. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58190. val %2.7 = Force %2.6, e2.4
  58191. void StVarSuper seed, %2.7, e0.0
  58192. val^? %2.9 = LdVar seed, e0.0
  58193. val %2.10 = Force %2.9, e0.0
  58194. void Return %2.10
  58195. BB1
  58196. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58197. void Deopt %1.0
  58198. Prom 0:
  58199. BB0
  58200. env e0.0 = LdFunctionEnv
  58201. val^? %0.1 = LdVar seed, e0.0
  58202. val %0.2 = Force %0.1, e0.0
  58203. real$' %0.3 = LdConst [1] 1309
  58204. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58205. BB2
  58206. val %2.0 = Mul %0.2, %0.3, e0.0
  58207. real$' %2.1 = LdConst [1] 13849
  58208. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58209. BB1
  58210. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58211. void Deopt %1.0
  58212. BB4
  58213. val %4.0 = Add %2.0, %2.1, e0.0
  58214. void Return %4.0
  58215. BB3
  58216. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58217. void Deopt %3.0
  58218. ├────── Scope resolution: == 201
  58219. test>nextRandom@53[0x7f9244559020]
  58220. BB0
  58221. env e0.0 = MkEnv parent=?
  58222. cls %0.1 = LdFun bitwAnd, e0.0
  58223. prom %0.2 = MkArg missing, Prom(0), e0.0
  58224. real$' %0.3 = LdConst [1] 65535
  58225. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58226. BB2
  58227. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58228. t %2.1 = Identical %0.1, %2.0
  58229. void Assume %2.1, %0.4
  58230. val^? %2.3 = CastType %0.2
  58231. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58232. val %2.5 = Force! %2.3, e2.4
  58233. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58234. val %2.7 = Force %2.6, e2.4
  58235. void StVarSuper seed, %2.7, e0.0
  58236. val^? %2.9 = LdVar seed, e0.0
  58237. val %2.10 = Force %2.9, e0.0
  58238. void Return %2.10
  58239. BB1
  58240. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58241. void Deopt %1.0
  58242. Prom 0:
  58243. BB0
  58244. env e0.0 = LdFunctionEnv
  58245. val^? %0.1 = LdVar seed, e0.0
  58246. val %0.2 = Force %0.1, e0.0
  58247. real$' %0.3 = LdConst [1] 1309
  58248. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58249. BB2
  58250. val %2.0 = Mul %0.2, %0.3, e0.0
  58251. real$' %2.1 = LdConst [1] 13849
  58252. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58253. BB1
  58254. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58255. void Deopt %1.0
  58256. BB4
  58257. val %4.0 = Add %2.0, %2.1, e0.0
  58258. void Return %4.0
  58259. BB3
  58260. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58261. void Deopt %3.0
  58262. ├────── Constant folding: == 208
  58263. test>nextRandom@53[0x7f9244559020]
  58264. BB0
  58265. env e0.0 = MkEnv parent=?
  58266. cls %0.1 = LdFun bitwAnd, e0.0
  58267. prom %0.2 = MkArg missing, Prom(0), e0.0
  58268. real$' %0.3 = LdConst [1] 65535
  58269. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58270. BB2
  58271. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58272. t %2.1 = Identical %0.1, %2.0
  58273. void Assume %2.1, %0.4
  58274. val^? %2.3 = CastType %0.2
  58275. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58276. val %2.5 = Force! %2.3, e2.4
  58277. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58278. val %2.7 = Force %2.6, e2.4
  58279. void StVarSuper seed, %2.7, e0.0
  58280. val^? %2.9 = LdVar seed, e0.0
  58281. val %2.10 = Force %2.9, e0.0
  58282. void Return %2.10
  58283. BB1
  58284. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58285. void Deopt %1.0
  58286. Prom 0:
  58287. BB0
  58288. env e0.0 = LdFunctionEnv
  58289. val^? %0.1 = LdVar seed, e0.0
  58290. val %0.2 = Force %0.1, e0.0
  58291. real$' %0.3 = LdConst [1] 1309
  58292. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58293. BB2
  58294. val %2.0 = Mul %0.2, %0.3, e0.0
  58295. real$' %2.1 = LdConst [1] 13849
  58296. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58297. BB1
  58298. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58299. void Deopt %1.0
  58300. BB4
  58301. val %4.0 = Add %2.0, %2.1, e0.0
  58302. void Return %4.0
  58303. BB3
  58304. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58305. void Deopt %3.0
  58306. ├────── Cleanup redundant operations: == 215
  58307. test>nextRandom@53[0x7f9244559020]
  58308. BB0
  58309. env e0.0 = MkEnv parent=?
  58310. cls %0.1 = LdFun bitwAnd, e0.0
  58311. prom %0.2 = MkArg missing, Prom(0), e0.0
  58312. real$' %0.3 = LdConst [1] 65535
  58313. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58314. BB2
  58315. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58316. t %2.1 = Identical %0.1, %2.0
  58317. void Assume %2.1, %0.4
  58318. val^? %2.3 = CastType %0.2
  58319. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58320. val %2.5 = Force! %2.3, e2.4
  58321. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58322. val %2.7 = Force %2.6, e2.4
  58323. void StVarSuper seed, %2.7, e0.0
  58324. val^? %2.9 = LdVar seed, e0.0
  58325. val %2.10 = Force %2.9, e0.0
  58326. void Return %2.10
  58327. BB1
  58328. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58329. void Deopt %1.0
  58330. Prom 0:
  58331. BB0
  58332. env e0.0 = LdFunctionEnv
  58333. val^? %0.1 = LdVar seed, e0.0
  58334. val %0.2 = Force %0.1, e0.0
  58335. real$' %0.3 = LdConst [1] 1309
  58336. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58337. BB2
  58338. val %2.0 = Mul %0.2, %0.3, e0.0
  58339. real$' %2.1 = LdConst [1] 13849
  58340. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58341. BB1
  58342. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58343. void Deopt %1.0
  58344. BB4
  58345. val %4.0 = Add %2.0, %2.1, e0.0
  58346. void Return %4.0
  58347. BB3
  58348. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58349. void Deopt %3.0
  58350. ├────── Delay instructions: == 222
  58351. test>nextRandom@53[0x7f9244559020]
  58352. BB0
  58353. env e0.0 = MkEnv parent=?
  58354. cls %0.1 = LdFun bitwAnd, e0.0
  58355. prom %0.2 = MkArg missing, Prom(0), e0.0
  58356. real$' %0.3 = LdConst [1] 65535
  58357. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58358. BB2
  58359. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58360. t %2.1 = Identical %0.1, %2.0
  58361. void Assume %2.1, %0.4
  58362. val^? %2.3 = CastType %0.2
  58363. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58364. val %2.5 = Force! %2.3, e2.4
  58365. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58366. val %2.7 = Force %2.6, e2.4
  58367. void StVarSuper seed, %2.7, e0.0
  58368. val^? %2.9 = LdVar seed, e0.0
  58369. val %2.10 = Force %2.9, e0.0
  58370. void Return %2.10
  58371. BB1
  58372. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58373. void Deopt %1.0
  58374. Prom 0:
  58375. BB0
  58376. env e0.0 = LdFunctionEnv
  58377. val^? %0.1 = LdVar seed, e0.0
  58378. val %0.2 = Force %0.1, e0.0
  58379. real$' %0.3 = LdConst [1] 1309
  58380. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58381. BB2
  58382. val %2.0 = Mul %0.2, %0.3, e0.0
  58383. real$' %2.1 = LdConst [1] 13849
  58384. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58385. BB1
  58386. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58387. void Deopt %1.0
  58388. BB4
  58389. val %4.0 = Add %2.0, %2.1, e0.0
  58390. void Return %4.0
  58391. BB3
  58392. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58393. void Deopt %3.0
  58394. ├────── Elide environments not needed: == 229
  58395. test>nextRandom@53[0x7f9244559020]
  58396. BB0
  58397. env e0.0 = MkEnv parent=?
  58398. cls %0.1 = LdFun bitwAnd, e0.0
  58399. prom %0.2 = MkArg missing, Prom(0), e0.0
  58400. real$' %0.3 = LdConst [1] 65535
  58401. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58402. BB2
  58403. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58404. t %2.1 = Identical %0.1, %2.0
  58405. void Assume %2.1, %0.4
  58406. val^? %2.3 = CastType %0.2
  58407. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58408. val %2.5 = Force! %2.3, e2.4
  58409. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58410. val %2.7 = Force %2.6, e2.4
  58411. void StVarSuper seed, %2.7, e0.0
  58412. val^? %2.9 = LdVar seed, e0.0
  58413. val %2.10 = Force %2.9, e0.0
  58414. void Return %2.10
  58415. BB1
  58416. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58417. void Deopt %1.0
  58418. Prom 0:
  58419. BB0
  58420. env e0.0 = LdFunctionEnv
  58421. val^? %0.1 = LdVar seed, e0.0
  58422. val %0.2 = Force %0.1, e0.0
  58423. real$' %0.3 = LdConst [1] 1309
  58424. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58425. BB2
  58426. val %2.0 = Mul %0.2, %0.3, e0.0
  58427. real$' %2.1 = LdConst [1] 13849
  58428. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58429. BB1
  58430. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58431. void Deopt %1.0
  58432. BB4
  58433. val %4.0 = Add %2.0, %2.1, e0.0
  58434. void Return %4.0
  58435. BB3
  58436. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58437. void Deopt %3.0
  58438. ├────── Move environment creation as far as possible: == 236
  58439. test>nextRandom@53[0x7f9244559020]
  58440. BB0
  58441. env e0.0 = MkEnv parent=?
  58442. cls %0.1 = LdFun bitwAnd, e0.0
  58443. prom %0.2 = MkArg missing, Prom(0), e0.0
  58444. real$' %0.3 = LdConst [1] 65535
  58445. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58446. BB2
  58447. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58448. t %2.1 = Identical %0.1, %2.0
  58449. void Assume %2.1, %0.4
  58450. val^? %2.3 = CastType %0.2
  58451. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58452. val %2.5 = Force! %2.3, e2.4
  58453. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58454. val %2.7 = Force %2.6, e2.4
  58455. void StVarSuper seed, %2.7, e0.0
  58456. val^? %2.9 = LdVar seed, e0.0
  58457. val %2.10 = Force %2.9, e0.0
  58458. void Return %2.10
  58459. BB1
  58460. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58461. void Deopt %1.0
  58462. Prom 0:
  58463. BB0
  58464. env e0.0 = LdFunctionEnv
  58465. val^? %0.1 = LdVar seed, e0.0
  58466. val %0.2 = Force %0.1, e0.0
  58467. real$' %0.3 = LdConst [1] 1309
  58468. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58469. BB2
  58470. val %2.0 = Mul %0.2, %0.3, e0.0
  58471. real$' %2.1 = LdConst [1] 13849
  58472. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58473. BB1
  58474. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58475. void Deopt %1.0
  58476. BB4
  58477. val %4.0 = Add %2.0, %2.1, e0.0
  58478. void Return %4.0
  58479. BB3
  58480. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58481. void Deopt %3.0
  58482. ├────── Cleanup redundant operations: == 243
  58483. test>nextRandom@53[0x7f9244559020]
  58484. BB0
  58485. env e0.0 = MkEnv parent=?
  58486. cls %0.1 = LdFun bitwAnd, e0.0
  58487. prom %0.2 = MkArg missing, Prom(0), e0.0
  58488. real$' %0.3 = LdConst [1] 65535
  58489. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58490. BB2
  58491. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58492. t %2.1 = Identical %0.1, %2.0
  58493. void Assume %2.1, %0.4
  58494. val^? %2.3 = CastType %0.2
  58495. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58496. val %2.5 = Force! %2.3, e2.4
  58497. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58498. val %2.7 = Force %2.6, e2.4
  58499. void StVarSuper seed, %2.7, e0.0
  58500. val^? %2.9 = LdVar seed, e0.0
  58501. val %2.10 = Force %2.9, e0.0
  58502. void Return %2.10
  58503. BB1
  58504. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58505. void Deopt %1.0
  58506. Prom 0:
  58507. BB0
  58508. env e0.0 = LdFunctionEnv
  58509. val^? %0.1 = LdVar seed, e0.0
  58510. val %0.2 = Force %0.1, e0.0
  58511. real$' %0.3 = LdConst [1] 1309
  58512. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58513. BB2
  58514. val %2.0 = Mul %0.2, %0.3, e0.0
  58515. real$' %2.1 = LdConst [1] 13849
  58516. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58517. BB1
  58518. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58519. void Deopt %1.0
  58520. BB4
  58521. val %4.0 = Add %2.0, %2.1, e0.0
  58522. void Return %4.0
  58523. BB3
  58524. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58525. void Deopt %3.0
  58526. ├────── Inline closures: == 250
  58527. test>nextRandom@53[0x7f9244559020]
  58528. BB0
  58529. env e0.0 = MkEnv parent=?
  58530. cls %0.1 = LdFun bitwAnd, e0.0
  58531. prom %0.2 = MkArg missing, Prom(0), e0.0
  58532. real$' %0.3 = LdConst [1] 65535
  58533. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58534. BB2
  58535. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58536. t %2.1 = Identical %0.1, %2.0
  58537. void Assume %2.1, %0.4
  58538. val^? %2.3 = CastType %0.2
  58539. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58540. val %2.5 = Force! %2.3, e2.4
  58541. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58542. val %2.7 = Force %2.6, e2.4
  58543. void StVarSuper seed, %2.7, e0.0
  58544. val^? %2.9 = LdVar seed, e0.0
  58545. val %2.10 = Force %2.9, e0.0
  58546. void Return %2.10
  58547. BB1
  58548. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58549. void Deopt %1.0
  58550. Prom 0:
  58551. BB0
  58552. env e0.0 = LdFunctionEnv
  58553. val^? %0.1 = LdVar seed, e0.0
  58554. val %0.2 = Force %0.1, e0.0
  58555. real$' %0.3 = LdConst [1] 1309
  58556. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58557. BB2
  58558. val %2.0 = Mul %0.2, %0.3, e0.0
  58559. real$' %2.1 = LdConst [1] 13849
  58560. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58561. BB1
  58562. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58563. void Deopt %1.0
  58564. BB4
  58565. val %4.0 = Add %2.0, %2.1, e0.0
  58566. void Return %4.0
  58567. BB3
  58568. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58569. void Deopt %3.0
  58570. ├────── Speculate on values to elide environments: == 257
  58571. test>nextRandom@53[0x7f9244559020]
  58572. BB0
  58573. env e0.0 = MkEnv parent=?
  58574. cls %0.1 = LdFun bitwAnd, e0.0
  58575. prom %0.2 = MkArg missing, Prom(0), e0.0
  58576. real$' %0.3 = LdConst [1] 65535
  58577. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58578. BB2
  58579. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58580. t %2.1 = Identical %0.1, %2.0
  58581. void Assume %2.1, %0.4
  58582. val^? %2.3 = CastType %0.2
  58583. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58584. val %2.5 = Force! %2.3, e2.4
  58585. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58586. val %2.7 = Force %2.6, e2.4
  58587. void StVarSuper seed, %2.7, e0.0
  58588. val^? %2.9 = LdVar seed, e0.0
  58589. val %2.10 = Force %2.9, e0.0
  58590. void Return %2.10
  58591. BB1
  58592. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58593. void Deopt %1.0
  58594. Prom 0:
  58595. BB0
  58596. env e0.0 = LdFunctionEnv
  58597. val^? %0.1 = LdVar seed, e0.0
  58598. val %0.2 = Force %0.1, e0.0
  58599. real$' %0.3 = LdConst [1] 1309
  58600. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58601. BB2
  58602. val %2.0 = Mul %0.2, %0.3, e0.0
  58603. real$' %2.1 = LdConst [1] 13849
  58604. cp %2.2 = Checkpoint -> BB4 (by default) | BB3 (if coming from expect)
  58605. BB1
  58606. fs %1.0 = FrameState 0x7f92445874c0+58: [%0.2, %0.3], env=e0.0
  58607. void Deopt %1.0
  58608. BB4
  58609. val %4.0 = Add %2.0, %2.1, e0.0
  58610. void Return %4.0
  58611. BB3
  58612. fs %3.0 = FrameState 0x7f92445874c0+74: [%2.0, %2.1], env=e0.0
  58613. void Deopt %3.0
  58614. ├────── Cleanup unused checkpoints: == 264
  58615. test>nextRandom@53[0x7f9244559020]
  58616. BB0
  58617. env e0.0 = MkEnv parent=?
  58618. cls %0.1 = LdFun bitwAnd, e0.0
  58619. prom %0.2 = MkArg missing, Prom(0), e0.0
  58620. real$' %0.3 = LdConst [1] 65535
  58621. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58622. BB2
  58623. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58624. t %2.1 = Identical %0.1, %2.0
  58625. void Assume %2.1, %0.4
  58626. val^? %2.3 = CastType %0.2
  58627. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58628. val %2.5 = Force! %2.3, e2.4
  58629. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58630. val %2.7 = Force %2.6, e2.4
  58631. void StVarSuper seed, %2.7, e0.0
  58632. val^? %2.9 = LdVar seed, e0.0
  58633. val %2.10 = Force %2.9, e0.0
  58634. void Return %2.10
  58635. BB1
  58636. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58637. void Deopt %1.0
  58638. Prom 0:
  58639. BB0
  58640. env e0.0 = LdFunctionEnv
  58641. val^? %0.1 = LdVar seed, e0.0
  58642. val %0.2 = Force %0.1, e0.0
  58643. real$' %0.3 = LdConst [1] 1309
  58644. goto BB2
  58645. BB2
  58646. val %2.0 = Mul %0.2, %0.3, e0.0
  58647. real$' %2.1 = LdConst [1] 13849
  58648. goto BB4
  58649. BB4
  58650. val %4.0 = Add %2.0, %2.1, e0.0
  58651. void Return %4.0
  58652. ├────── Inline Promises: == 271
  58653. test>nextRandom@53[0x7f9244559020]
  58654. BB0
  58655. env e0.0 = MkEnv parent=?
  58656. cls %0.1 = LdFun bitwAnd, e0.0
  58657. prom %0.2 = MkArg missing, Prom(0), e0.0
  58658. real$' %0.3 = LdConst [1] 65535
  58659. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58660. BB2
  58661. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58662. t %2.1 = Identical %0.1, %2.0
  58663. void Assume %2.1, %0.4
  58664. val^? %2.3 = CastType %0.2
  58665. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58666. val %2.5 = Force! %2.3, e2.4
  58667. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58668. val %2.7 = Force %2.6, e2.4
  58669. void StVarSuper seed, %2.7, e0.0
  58670. val^? %2.9 = LdVar seed, e0.0
  58671. val %2.10 = Force %2.9, e0.0
  58672. void Return %2.10
  58673. BB1
  58674. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58675. void Deopt %1.0
  58676. Prom 0:
  58677. BB0
  58678. env e0.0 = LdFunctionEnv
  58679. val^? %0.1 = LdVar seed, e0.0
  58680. val %0.2 = Force %0.1, e0.0
  58681. real$' %0.3 = LdConst [1] 1309
  58682. goto BB2
  58683. BB2
  58684. val %2.0 = Mul %0.2, %0.3, e0.0
  58685. real$' %2.1 = LdConst [1] 13849
  58686. goto BB4
  58687. BB4
  58688. val %4.0 = Add %2.0, %2.1, e0.0
  58689. void Return %4.0
  58690. ├────── Scope resolution: == 278
  58691. test>nextRandom@53[0x7f9244559020]
  58692. BB0
  58693. env e0.0 = MkEnv parent=?
  58694. cls %0.1 = LdFun bitwAnd, e0.0
  58695. prom %0.2 = MkArg missing, Prom(0), e0.0
  58696. real$' %0.3 = LdConst [1] 65535
  58697. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58698. BB2
  58699. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58700. t %2.1 = Identical %0.1, %2.0
  58701. void Assume %2.1, %0.4
  58702. val^? %2.3 = CastType %0.2
  58703. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58704. val %2.5 = Force! %2.3, e2.4
  58705. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58706. val %2.7 = Force %2.6, e2.4
  58707. void StVarSuper seed, %2.7, e0.0
  58708. val^? %2.9 = LdVar seed, e0.0
  58709. val %2.10 = Force %2.9, e0.0
  58710. void Return %2.10
  58711. BB1
  58712. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58713. void Deopt %1.0
  58714. Prom 0:
  58715. BB0
  58716. env e0.0 = LdFunctionEnv
  58717. val^? %0.1 = LdVar seed, e0.0
  58718. val %0.2 = Force %0.1, e0.0
  58719. real$' %0.3 = LdConst [1] 1309
  58720. goto BB2
  58721. BB2
  58722. val %2.0 = Mul %0.2, %0.3, e0.0
  58723. real$' %2.1 = LdConst [1] 13849
  58724. goto BB4
  58725. BB4
  58726. val %4.0 = Add %2.0, %2.1, e0.0
  58727. void Return %4.0
  58728. ├────── Constant folding: == 285
  58729. test>nextRandom@53[0x7f9244559020]
  58730. BB0
  58731. env e0.0 = MkEnv parent=?
  58732. cls %0.1 = LdFun bitwAnd, e0.0
  58733. prom %0.2 = MkArg missing, Prom(0), e0.0
  58734. real$' %0.3 = LdConst [1] 65535
  58735. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58736. BB2
  58737. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58738. t %2.1 = Identical %0.1, %2.0
  58739. void Assume %2.1, %0.4
  58740. val^? %2.3 = CastType %0.2
  58741. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58742. val %2.5 = Force! %2.3, e2.4
  58743. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58744. val %2.7 = Force %2.6, e2.4
  58745. void StVarSuper seed, %2.7, e0.0
  58746. val^? %2.9 = LdVar seed, e0.0
  58747. val %2.10 = Force %2.9, e0.0
  58748. void Return %2.10
  58749. BB1
  58750. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58751. void Deopt %1.0
  58752. Prom 0:
  58753. BB0
  58754. env e0.0 = LdFunctionEnv
  58755. val^? %0.1 = LdVar seed, e0.0
  58756. val %0.2 = Force %0.1, e0.0
  58757. real$' %0.3 = LdConst [1] 1309
  58758. goto BB2
  58759. BB2
  58760. val %2.0 = Mul %0.2, %0.3, e0.0
  58761. real$' %2.1 = LdConst [1] 13849
  58762. goto BB4
  58763. BB4
  58764. val %4.0 = Add %2.0, %2.1, e0.0
  58765. void Return %4.0
  58766. ├────── Cleanup redundant operations: == 292
  58767. test>nextRandom@53[0x7f9244559020]
  58768. BB0
  58769. env e0.0 = MkEnv parent=?
  58770. cls %0.1 = LdFun bitwAnd, e0.0
  58771. prom %0.2 = MkArg missing, Prom(0), e0.0
  58772. real$' %0.3 = LdConst [1] 65535
  58773. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58774. BB2
  58775. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58776. t %2.1 = Identical %0.1, %2.0
  58777. void Assume %2.1, %0.4
  58778. val^? %2.3 = CastType %0.2
  58779. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58780. val %2.5 = Force! %2.3, e2.4
  58781. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58782. val %2.7 = Force %2.6, e2.4
  58783. void StVarSuper seed, %2.7, e0.0
  58784. val^? %2.9 = LdVar seed, e0.0
  58785. val %2.10 = Force %2.9, e0.0
  58786. void Return %2.10
  58787. BB1
  58788. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58789. void Deopt %1.0
  58790. Prom 0:
  58791. BB0
  58792. env e0.0 = LdFunctionEnv
  58793. val^? %0.1 = LdVar seed, e0.0
  58794. val %0.2 = Force %0.1, e0.0
  58795. real$' %0.3 = LdConst [1] 1309
  58796. goto BB1
  58797. BB1
  58798. val %1.0 = Mul %0.2, %0.3, e0.0
  58799. real$' %1.1 = LdConst [1] 13849
  58800. goto BB2
  58801. BB2
  58802. val %2.0 = Add %1.0, %1.1, e0.0
  58803. void Return %2.0
  58804. ├────── Delay instructions: == 299
  58805. test>nextRandom@53[0x7f9244559020]
  58806. BB0
  58807. env e0.0 = MkEnv parent=?
  58808. cls %0.1 = LdFun bitwAnd, e0.0
  58809. prom %0.2 = MkArg missing, Prom(0), e0.0
  58810. real$' %0.3 = LdConst [1] 65535
  58811. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58812. BB2
  58813. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58814. t %2.1 = Identical %0.1, %2.0
  58815. void Assume %2.1, %0.4
  58816. val^? %2.3 = CastType %0.2
  58817. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58818. val %2.5 = Force! %2.3, e2.4
  58819. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58820. val %2.7 = Force %2.6, e2.4
  58821. void StVarSuper seed, %2.7, e0.0
  58822. val^? %2.9 = LdVar seed, e0.0
  58823. val %2.10 = Force %2.9, e0.0
  58824. void Return %2.10
  58825. BB1
  58826. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58827. void Deopt %1.0
  58828. Prom 0:
  58829. BB0
  58830. env e0.0 = LdFunctionEnv
  58831. val^? %0.1 = LdVar seed, e0.0
  58832. val %0.2 = Force %0.1, e0.0
  58833. real$' %0.3 = LdConst [1] 1309
  58834. goto BB1
  58835. BB1
  58836. val %1.0 = Mul %0.2, %0.3, e0.0
  58837. real$' %1.1 = LdConst [1] 13849
  58838. goto BB2
  58839. BB2
  58840. val %2.0 = Add %1.0, %1.1, e0.0
  58841. void Return %2.0
  58842. ├────── Elide environments not needed: == 306
  58843. test>nextRandom@53[0x7f9244559020]
  58844. BB0
  58845. env e0.0 = MkEnv parent=?
  58846. cls %0.1 = LdFun bitwAnd, e0.0
  58847. prom %0.2 = MkArg missing, Prom(0), e0.0
  58848. real$' %0.3 = LdConst [1] 65535
  58849. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58850. BB2
  58851. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58852. t %2.1 = Identical %0.1, %2.0
  58853. void Assume %2.1, %0.4
  58854. val^? %2.3 = CastType %0.2
  58855. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58856. val %2.5 = Force! %2.3, e2.4
  58857. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58858. val %2.7 = Force %2.6, e2.4
  58859. void StVarSuper seed, %2.7, e0.0
  58860. val^? %2.9 = LdVar seed, e0.0
  58861. val %2.10 = Force %2.9, e0.0
  58862. void Return %2.10
  58863. BB1
  58864. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58865. void Deopt %1.0
  58866. Prom 0:
  58867. BB0
  58868. env e0.0 = LdFunctionEnv
  58869. val^? %0.1 = LdVar seed, e0.0
  58870. val %0.2 = Force %0.1, e0.0
  58871. real$' %0.3 = LdConst [1] 1309
  58872. goto BB1
  58873. BB1
  58874. val %1.0 = Mul %0.2, %0.3, e0.0
  58875. real$' %1.1 = LdConst [1] 13849
  58876. goto BB2
  58877. BB2
  58878. val %2.0 = Add %1.0, %1.1, e0.0
  58879. void Return %2.0
  58880. ├────── Move environment creation as far as possible: == 313
  58881. test>nextRandom@53[0x7f9244559020]
  58882. BB0
  58883. env e0.0 = MkEnv parent=?
  58884. cls %0.1 = LdFun bitwAnd, e0.0
  58885. prom %0.2 = MkArg missing, Prom(0), e0.0
  58886. real$' %0.3 = LdConst [1] 65535
  58887. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58888. BB2
  58889. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58890. t %2.1 = Identical %0.1, %2.0
  58891. void Assume %2.1, %0.4
  58892. val^? %2.3 = CastType %0.2
  58893. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58894. val %2.5 = Force! %2.3, e2.4
  58895. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58896. val %2.7 = Force %2.6, e2.4
  58897. void StVarSuper seed, %2.7, e0.0
  58898. val^? %2.9 = LdVar seed, e0.0
  58899. val %2.10 = Force %2.9, e0.0
  58900. void Return %2.10
  58901. BB1
  58902. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58903. void Deopt %1.0
  58904. Prom 0:
  58905. BB0
  58906. env e0.0 = LdFunctionEnv
  58907. val^? %0.1 = LdVar seed, e0.0
  58908. val %0.2 = Force %0.1, e0.0
  58909. real$' %0.3 = LdConst [1] 1309
  58910. goto BB1
  58911. BB1
  58912. val %1.0 = Mul %0.2, %0.3, e0.0
  58913. real$' %1.1 = LdConst [1] 13849
  58914. goto BB2
  58915. BB2
  58916. val %2.0 = Add %1.0, %1.1, e0.0
  58917. void Return %2.0
  58918. ├────── Cleanup redundant operations: == 320
  58919. test>nextRandom@53[0x7f9244559020]
  58920. BB0
  58921. env e0.0 = MkEnv parent=?
  58922. cls %0.1 = LdFun bitwAnd, e0.0
  58923. prom %0.2 = MkArg missing, Prom(0), e0.0
  58924. real$' %0.3 = LdConst [1] 65535
  58925. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58926. BB2
  58927. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58928. t %2.1 = Identical %0.1, %2.0
  58929. void Assume %2.1, %0.4
  58930. val^? %2.3 = CastType %0.2
  58931. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58932. val %2.5 = Force! %2.3, e2.4
  58933. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58934. val %2.7 = Force %2.6, e2.4
  58935. void StVarSuper seed, %2.7, e0.0
  58936. val^? %2.9 = LdVar seed, e0.0
  58937. val %2.10 = Force %2.9, e0.0
  58938. void Return %2.10
  58939. BB1
  58940. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58941. void Deopt %1.0
  58942. Prom 0:
  58943. BB0
  58944. env e0.0 = LdFunctionEnv
  58945. val^? %0.1 = LdVar seed, e0.0
  58946. val %0.2 = Force %0.1, e0.0
  58947. real$' %0.3 = LdConst [1] 1309
  58948. goto BB1
  58949. BB1
  58950. val %1.0 = Mul %0.2, %0.3, e0.0
  58951. real$' %1.1 = LdConst [1] 13849
  58952. goto BB2
  58953. BB2
  58954. val %2.0 = Add %1.0, %1.1, e0.0
  58955. void Return %2.0
  58956. ├────── Inline closures: == 327
  58957. test>nextRandom@53[0x7f9244559020]
  58958. BB0
  58959. env e0.0 = MkEnv parent=?
  58960. cls %0.1 = LdFun bitwAnd, e0.0
  58961. prom %0.2 = MkArg missing, Prom(0), e0.0
  58962. real$' %0.3 = LdConst [1] 65535
  58963. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  58964. BB2
  58965. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  58966. t %2.1 = Identical %0.1, %2.0
  58967. void Assume %2.1, %0.4
  58968. val^? %2.3 = CastType %0.2
  58969. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  58970. val %2.5 = Force! %2.3, e2.4
  58971. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  58972. val %2.7 = Force %2.6, e2.4
  58973. void StVarSuper seed, %2.7, e0.0
  58974. val^? %2.9 = LdVar seed, e0.0
  58975. val %2.10 = Force %2.9, e0.0
  58976. void Return %2.10
  58977. BB1
  58978. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  58979. void Deopt %1.0
  58980. Prom 0:
  58981. BB0
  58982. env e0.0 = LdFunctionEnv
  58983. val^? %0.1 = LdVar seed, e0.0
  58984. val %0.2 = Force %0.1, e0.0
  58985. real$' %0.3 = LdConst [1] 1309
  58986. goto BB1
  58987. BB1
  58988. val %1.0 = Mul %0.2, %0.3, e0.0
  58989. real$' %1.1 = LdConst [1] 13849
  58990. goto BB2
  58991. BB2
  58992. val %2.0 = Add %1.0, %1.1, e0.0
  58993. void Return %2.0
  58994. ├────── Inline Promises: == 334
  58995. test>nextRandom@53[0x7f9244559020]
  58996. BB0
  58997. env e0.0 = MkEnv parent=?
  58998. cls %0.1 = LdFun bitwAnd, e0.0
  58999. prom %0.2 = MkArg missing, Prom(0), e0.0
  59000. real$' %0.3 = LdConst [1] 65535
  59001. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59002. BB2
  59003. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59004. t %2.1 = Identical %0.1, %2.0
  59005. void Assume %2.1, %0.4
  59006. val^? %2.3 = CastType %0.2
  59007. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59008. val %2.5 = Force! %2.3, e2.4
  59009. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59010. val %2.7 = Force %2.6, e2.4
  59011. void StVarSuper seed, %2.7, e0.0
  59012. val^? %2.9 = LdVar seed, e0.0
  59013. val %2.10 = Force %2.9, e0.0
  59014. void Return %2.10
  59015. BB1
  59016. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59017. void Deopt %1.0
  59018. Prom 0:
  59019. BB0
  59020. env e0.0 = LdFunctionEnv
  59021. val^? %0.1 = LdVar seed, e0.0
  59022. val %0.2 = Force %0.1, e0.0
  59023. real$' %0.3 = LdConst [1] 1309
  59024. goto BB1
  59025. BB1
  59026. val %1.0 = Mul %0.2, %0.3, e0.0
  59027. real$' %1.1 = LdConst [1] 13849
  59028. goto BB2
  59029. BB2
  59030. val %2.0 = Add %1.0, %1.1, e0.0
  59031. void Return %2.0
  59032. ├────── Scope resolution: == 341
  59033. test>nextRandom@53[0x7f9244559020]
  59034. BB0
  59035. env e0.0 = MkEnv parent=?
  59036. cls %0.1 = LdFun bitwAnd, e0.0
  59037. prom %0.2 = MkArg missing, Prom(0), e0.0
  59038. real$' %0.3 = LdConst [1] 65535
  59039. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59040. BB2
  59041. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59042. t %2.1 = Identical %0.1, %2.0
  59043. void Assume %2.1, %0.4
  59044. val^? %2.3 = CastType %0.2
  59045. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59046. val %2.5 = Force! %2.3, e2.4
  59047. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59048. val %2.7 = Force %2.6, e2.4
  59049. void StVarSuper seed, %2.7, e0.0
  59050. val^? %2.9 = LdVar seed, e0.0
  59051. val %2.10 = Force %2.9, e0.0
  59052. void Return %2.10
  59053. BB1
  59054. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59055. void Deopt %1.0
  59056. Prom 0:
  59057. BB0
  59058. env e0.0 = LdFunctionEnv
  59059. val^? %0.1 = LdVar seed, e0.0
  59060. val %0.2 = Force %0.1, e0.0
  59061. real$' %0.3 = LdConst [1] 1309
  59062. goto BB1
  59063. BB1
  59064. val %1.0 = Mul %0.2, %0.3, e0.0
  59065. real$' %1.1 = LdConst [1] 13849
  59066. goto BB2
  59067. BB2
  59068. val %2.0 = Add %1.0, %1.1, e0.0
  59069. void Return %2.0
  59070. ├────── Constant folding: == 348
  59071. test>nextRandom@53[0x7f9244559020]
  59072. BB0
  59073. env e0.0 = MkEnv parent=?
  59074. cls %0.1 = LdFun bitwAnd, e0.0
  59075. prom %0.2 = MkArg missing, Prom(0), e0.0
  59076. real$' %0.3 = LdConst [1] 65535
  59077. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59078. BB2
  59079. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59080. t %2.1 = Identical %0.1, %2.0
  59081. void Assume %2.1, %0.4
  59082. val^? %2.3 = CastType %0.2
  59083. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59084. val %2.5 = Force! %2.3, e2.4
  59085. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59086. val %2.7 = Force %2.6, e2.4
  59087. void StVarSuper seed, %2.7, e0.0
  59088. val^? %2.9 = LdVar seed, e0.0
  59089. val %2.10 = Force %2.9, e0.0
  59090. void Return %2.10
  59091. BB1
  59092. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59093. void Deopt %1.0
  59094. Prom 0:
  59095. BB0
  59096. env e0.0 = LdFunctionEnv
  59097. val^? %0.1 = LdVar seed, e0.0
  59098. val %0.2 = Force %0.1, e0.0
  59099. real$' %0.3 = LdConst [1] 1309
  59100. goto BB1
  59101. BB1
  59102. val %1.0 = Mul %0.2, %0.3, e0.0
  59103. real$' %1.1 = LdConst [1] 13849
  59104. goto BB2
  59105. BB2
  59106. val %2.0 = Add %1.0, %1.1, e0.0
  59107. void Return %2.0
  59108. ├────── Cleanup redundant operations: == 355
  59109. test>nextRandom@53[0x7f9244559020]
  59110. BB0
  59111. env e0.0 = MkEnv parent=?
  59112. cls %0.1 = LdFun bitwAnd, e0.0
  59113. prom %0.2 = MkArg missing, Prom(0), e0.0
  59114. real$' %0.3 = LdConst [1] 65535
  59115. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59116. BB2
  59117. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59118. t %2.1 = Identical %0.1, %2.0
  59119. void Assume %2.1, %0.4
  59120. val^? %2.3 = CastType %0.2
  59121. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59122. val %2.5 = Force! %2.3, e2.4
  59123. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59124. val %2.7 = Force %2.6, e2.4
  59125. void StVarSuper seed, %2.7, e0.0
  59126. val^? %2.9 = LdVar seed, e0.0
  59127. val %2.10 = Force %2.9, e0.0
  59128. void Return %2.10
  59129. BB1
  59130. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59131. void Deopt %1.0
  59132. Prom 0:
  59133. BB0
  59134. env e0.0 = LdFunctionEnv
  59135. val^? %0.1 = LdVar seed, e0.0
  59136. val %0.2 = Force %0.1, e0.0
  59137. real$' %0.3 = LdConst [1] 1309
  59138. goto BB1
  59139. BB1
  59140. val %1.0 = Mul %0.2, %0.3, e0.0
  59141. real$' %1.1 = LdConst [1] 13849
  59142. goto BB2
  59143. BB2
  59144. val %2.0 = Add %1.0, %1.1, e0.0
  59145. void Return %2.0
  59146. ├────── Delay instructions: == 362
  59147. test>nextRandom@53[0x7f9244559020]
  59148. BB0
  59149. env e0.0 = MkEnv parent=?
  59150. cls %0.1 = LdFun bitwAnd, e0.0
  59151. prom %0.2 = MkArg missing, Prom(0), e0.0
  59152. real$' %0.3 = LdConst [1] 65535
  59153. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59154. BB2
  59155. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59156. t %2.1 = Identical %0.1, %2.0
  59157. void Assume %2.1, %0.4
  59158. val^? %2.3 = CastType %0.2
  59159. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59160. val %2.5 = Force! %2.3, e2.4
  59161. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59162. val %2.7 = Force %2.6, e2.4
  59163. void StVarSuper seed, %2.7, e0.0
  59164. val^? %2.9 = LdVar seed, e0.0
  59165. val %2.10 = Force %2.9, e0.0
  59166. void Return %2.10
  59167. BB1
  59168. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59169. void Deopt %1.0
  59170. Prom 0:
  59171. BB0
  59172. env e0.0 = LdFunctionEnv
  59173. val^? %0.1 = LdVar seed, e0.0
  59174. val %0.2 = Force %0.1, e0.0
  59175. real$' %0.3 = LdConst [1] 1309
  59176. goto BB1
  59177. BB1
  59178. val %1.0 = Mul %0.2, %0.3, e0.0
  59179. real$' %1.1 = LdConst [1] 13849
  59180. goto BB2
  59181. BB2
  59182. val %2.0 = Add %1.0, %1.1, e0.0
  59183. void Return %2.0
  59184. ├────── Elide environments not needed: == 369
  59185. test>nextRandom@53[0x7f9244559020]
  59186. BB0
  59187. env e0.0 = MkEnv parent=?
  59188. cls %0.1 = LdFun bitwAnd, e0.0
  59189. prom %0.2 = MkArg missing, Prom(0), e0.0
  59190. real$' %0.3 = LdConst [1] 65535
  59191. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59192. BB2
  59193. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59194. t %2.1 = Identical %0.1, %2.0
  59195. void Assume %2.1, %0.4
  59196. val^? %2.3 = CastType %0.2
  59197. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59198. val %2.5 = Force! %2.3, e2.4
  59199. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59200. val %2.7 = Force %2.6, e2.4
  59201. void StVarSuper seed, %2.7, e0.0
  59202. val^? %2.9 = LdVar seed, e0.0
  59203. val %2.10 = Force %2.9, e0.0
  59204. void Return %2.10
  59205. BB1
  59206. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59207. void Deopt %1.0
  59208. Prom 0:
  59209. BB0
  59210. env e0.0 = LdFunctionEnv
  59211. val^? %0.1 = LdVar seed, e0.0
  59212. val %0.2 = Force %0.1, e0.0
  59213. real$' %0.3 = LdConst [1] 1309
  59214. goto BB1
  59215. BB1
  59216. val %1.0 = Mul %0.2, %0.3, e0.0
  59217. real$' %1.1 = LdConst [1] 13849
  59218. goto BB2
  59219. BB2
  59220. val %2.0 = Add %1.0, %1.1, e0.0
  59221. void Return %2.0
  59222. ├────── Move environment creation as far as possible: == 376
  59223. test>nextRandom@53[0x7f9244559020]
  59224. BB0
  59225. env e0.0 = MkEnv parent=?
  59226. cls %0.1 = LdFun bitwAnd, e0.0
  59227. prom %0.2 = MkArg missing, Prom(0), e0.0
  59228. real$' %0.3 = LdConst [1] 65535
  59229. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59230. BB2
  59231. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59232. t %2.1 = Identical %0.1, %2.0
  59233. void Assume %2.1, %0.4
  59234. val^? %2.3 = CastType %0.2
  59235. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59236. val %2.5 = Force! %2.3, e2.4
  59237. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59238. val %2.7 = Force %2.6, e2.4
  59239. void StVarSuper seed, %2.7, e0.0
  59240. val^? %2.9 = LdVar seed, e0.0
  59241. val %2.10 = Force %2.9, e0.0
  59242. void Return %2.10
  59243. BB1
  59244. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59245. void Deopt %1.0
  59246. Prom 0:
  59247. BB0
  59248. env e0.0 = LdFunctionEnv
  59249. val^? %0.1 = LdVar seed, e0.0
  59250. val %0.2 = Force %0.1, e0.0
  59251. real$' %0.3 = LdConst [1] 1309
  59252. goto BB1
  59253. BB1
  59254. val %1.0 = Mul %0.2, %0.3, e0.0
  59255. real$' %1.1 = LdConst [1] 13849
  59256. goto BB2
  59257. BB2
  59258. val %2.0 = Add %1.0, %1.1, e0.0
  59259. void Return %2.0
  59260. ├────── Cleanup redundant operations: == 383
  59261. test>nextRandom@53[0x7f9244559020]
  59262. BB0
  59263. env e0.0 = MkEnv parent=?
  59264. cls %0.1 = LdFun bitwAnd, e0.0
  59265. prom %0.2 = MkArg missing, Prom(0), e0.0
  59266. real$' %0.3 = LdConst [1] 65535
  59267. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59268. BB2
  59269. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59270. t %2.1 = Identical %0.1, %2.0
  59271. void Assume %2.1, %0.4
  59272. val^? %2.3 = CastType %0.2
  59273. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59274. val %2.5 = Force! %2.3, e2.4
  59275. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59276. val %2.7 = Force %2.6, e2.4
  59277. void StVarSuper seed, %2.7, e0.0
  59278. val^? %2.9 = LdVar seed, e0.0
  59279. val %2.10 = Force %2.9, e0.0
  59280. void Return %2.10
  59281. BB1
  59282. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59283. void Deopt %1.0
  59284. Prom 0:
  59285. BB0
  59286. env e0.0 = LdFunctionEnv
  59287. val^? %0.1 = LdVar seed, e0.0
  59288. val %0.2 = Force %0.1, e0.0
  59289. real$' %0.3 = LdConst [1] 1309
  59290. goto BB1
  59291. BB1
  59292. val %1.0 = Mul %0.2, %0.3, e0.0
  59293. real$' %1.1 = LdConst [1] 13849
  59294. goto BB2
  59295. BB2
  59296. val %2.0 = Add %1.0, %1.1, e0.0
  59297. void Return %2.0
  59298. ├────── Inline closures: == 390
  59299. test>nextRandom@53[0x7f9244559020]
  59300. BB0
  59301. env e0.0 = MkEnv parent=?
  59302. cls %0.1 = LdFun bitwAnd, e0.0
  59303. prom %0.2 = MkArg missing, Prom(0), e0.0
  59304. real$' %0.3 = LdConst [1] 65535
  59305. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59306. BB2
  59307. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59308. t %2.1 = Identical %0.1, %2.0
  59309. void Assume %2.1, %0.4
  59310. val^? %2.3 = CastType %0.2
  59311. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59312. val %2.5 = Force! %2.3, e2.4
  59313. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59314. val %2.7 = Force %2.6, e2.4
  59315. void StVarSuper seed, %2.7, e0.0
  59316. val^? %2.9 = LdVar seed, e0.0
  59317. val %2.10 = Force %2.9, e0.0
  59318. void Return %2.10
  59319. BB1
  59320. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59321. void Deopt %1.0
  59322. Prom 0:
  59323. BB0
  59324. env e0.0 = LdFunctionEnv
  59325. val^? %0.1 = LdVar seed, e0.0
  59326. val %0.2 = Force %0.1, e0.0
  59327. real$' %0.3 = LdConst [1] 1309
  59328. goto BB1
  59329. BB1
  59330. val %1.0 = Mul %0.2, %0.3, e0.0
  59331. real$' %1.1 = LdConst [1] 13849
  59332. goto BB2
  59333. BB2
  59334. val %2.0 = Add %1.0, %1.1, e0.0
  59335. void Return %2.0
  59336. ├────── Inline Promises: == 397
  59337. test>nextRandom@53[0x7f9244559020]
  59338. BB0
  59339. env e0.0 = MkEnv parent=?
  59340. cls %0.1 = LdFun bitwAnd, e0.0
  59341. prom %0.2 = MkArg missing, Prom(0), e0.0
  59342. real$' %0.3 = LdConst [1] 65535
  59343. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59344. BB2
  59345. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59346. t %2.1 = Identical %0.1, %2.0
  59347. void Assume %2.1, %0.4
  59348. val^? %2.3 = CastType %0.2
  59349. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59350. val %2.5 = Force! %2.3, e2.4
  59351. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59352. val %2.7 = Force %2.6, e2.4
  59353. void StVarSuper seed, %2.7, e0.0
  59354. val^? %2.9 = LdVar seed, e0.0
  59355. val %2.10 = Force %2.9, e0.0
  59356. void Return %2.10
  59357. BB1
  59358. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59359. void Deopt %1.0
  59360. Prom 0:
  59361. BB0
  59362. env e0.0 = LdFunctionEnv
  59363. val^? %0.1 = LdVar seed, e0.0
  59364. val %0.2 = Force %0.1, e0.0
  59365. real$' %0.3 = LdConst [1] 1309
  59366. goto BB1
  59367. BB1
  59368. val %1.0 = Mul %0.2, %0.3, e0.0
  59369. real$' %1.1 = LdConst [1] 13849
  59370. goto BB2
  59371. BB2
  59372. val %2.0 = Add %1.0, %1.1, e0.0
  59373. void Return %2.0
  59374. ├────── Scope resolution: == 404
  59375. test>nextRandom@53[0x7f9244559020]
  59376. BB0
  59377. env e0.0 = MkEnv parent=?
  59378. cls %0.1 = LdFun bitwAnd, e0.0
  59379. prom %0.2 = MkArg missing, Prom(0), e0.0
  59380. real$' %0.3 = LdConst [1] 65535
  59381. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59382. BB2
  59383. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59384. t %2.1 = Identical %0.1, %2.0
  59385. void Assume %2.1, %0.4
  59386. val^? %2.3 = CastType %0.2
  59387. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59388. val %2.5 = Force! %2.3, e2.4
  59389. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59390. val %2.7 = Force %2.6, e2.4
  59391. void StVarSuper seed, %2.7, e0.0
  59392. val^? %2.9 = LdVar seed, e0.0
  59393. val %2.10 = Force %2.9, e0.0
  59394. void Return %2.10
  59395. BB1
  59396. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59397. void Deopt %1.0
  59398. Prom 0:
  59399. BB0
  59400. env e0.0 = LdFunctionEnv
  59401. val^? %0.1 = LdVar seed, e0.0
  59402. val %0.2 = Force %0.1, e0.0
  59403. real$' %0.3 = LdConst [1] 1309
  59404. goto BB1
  59405. BB1
  59406. val %1.0 = Mul %0.2, %0.3, e0.0
  59407. real$' %1.1 = LdConst [1] 13849
  59408. goto BB2
  59409. BB2
  59410. val %2.0 = Add %1.0, %1.1, e0.0
  59411. void Return %2.0
  59412. ├────── Constant folding: == 411
  59413. test>nextRandom@53[0x7f9244559020]
  59414. BB0
  59415. env e0.0 = MkEnv parent=?
  59416. cls %0.1 = LdFun bitwAnd, e0.0
  59417. prom %0.2 = MkArg missing, Prom(0), e0.0
  59418. real$' %0.3 = LdConst [1] 65535
  59419. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59420. BB2
  59421. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59422. t %2.1 = Identical %0.1, %2.0
  59423. void Assume %2.1, %0.4
  59424. val^? %2.3 = CastType %0.2
  59425. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59426. val %2.5 = Force! %2.3, e2.4
  59427. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59428. val %2.7 = Force %2.6, e2.4
  59429. void StVarSuper seed, %2.7, e0.0
  59430. val^? %2.9 = LdVar seed, e0.0
  59431. val %2.10 = Force %2.9, e0.0
  59432. void Return %2.10
  59433. BB1
  59434. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59435. void Deopt %1.0
  59436. Prom 0:
  59437. BB0
  59438. env e0.0 = LdFunctionEnv
  59439. val^? %0.1 = LdVar seed, e0.0
  59440. val %0.2 = Force %0.1, e0.0
  59441. real$' %0.3 = LdConst [1] 1309
  59442. goto BB1
  59443. BB1
  59444. val %1.0 = Mul %0.2, %0.3, e0.0
  59445. real$' %1.1 = LdConst [1] 13849
  59446. goto BB2
  59447. BB2
  59448. val %2.0 = Add %1.0, %1.1, e0.0
  59449. void Return %2.0
  59450. ├────── Cleanup redundant operations: == 418
  59451. test>nextRandom@53[0x7f9244559020]
  59452. BB0
  59453. env e0.0 = MkEnv parent=?
  59454. cls %0.1 = LdFun bitwAnd, e0.0
  59455. prom %0.2 = MkArg missing, Prom(0), e0.0
  59456. real$' %0.3 = LdConst [1] 65535
  59457. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59458. BB2
  59459. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59460. t %2.1 = Identical %0.1, %2.0
  59461. void Assume %2.1, %0.4
  59462. val^? %2.3 = CastType %0.2
  59463. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59464. val %2.5 = Force! %2.3, e2.4
  59465. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59466. val %2.7 = Force %2.6, e2.4
  59467. void StVarSuper seed, %2.7, e0.0
  59468. val^? %2.9 = LdVar seed, e0.0
  59469. val %2.10 = Force %2.9, e0.0
  59470. void Return %2.10
  59471. BB1
  59472. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59473. void Deopt %1.0
  59474. Prom 0:
  59475. BB0
  59476. env e0.0 = LdFunctionEnv
  59477. val^? %0.1 = LdVar seed, e0.0
  59478. val %0.2 = Force %0.1, e0.0
  59479. real$' %0.3 = LdConst [1] 1309
  59480. goto BB1
  59481. BB1
  59482. val %1.0 = Mul %0.2, %0.3, e0.0
  59483. real$' %1.1 = LdConst [1] 13849
  59484. goto BB2
  59485. BB2
  59486. val %2.0 = Add %1.0, %1.1, e0.0
  59487. void Return %2.0
  59488. ├────── Delay instructions: == 425
  59489. test>nextRandom@53[0x7f9244559020]
  59490. BB0
  59491. env e0.0 = MkEnv parent=?
  59492. cls %0.1 = LdFun bitwAnd, e0.0
  59493. prom %0.2 = MkArg missing, Prom(0), e0.0
  59494. real$' %0.3 = LdConst [1] 65535
  59495. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59496. BB2
  59497. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59498. t %2.1 = Identical %0.1, %2.0
  59499. void Assume %2.1, %0.4
  59500. val^? %2.3 = CastType %0.2
  59501. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59502. val %2.5 = Force! %2.3, e2.4
  59503. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59504. val %2.7 = Force %2.6, e2.4
  59505. void StVarSuper seed, %2.7, e0.0
  59506. val^? %2.9 = LdVar seed, e0.0
  59507. val %2.10 = Force %2.9, e0.0
  59508. void Return %2.10
  59509. BB1
  59510. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59511. void Deopt %1.0
  59512. Prom 0:
  59513. BB0
  59514. env e0.0 = LdFunctionEnv
  59515. val^? %0.1 = LdVar seed, e0.0
  59516. val %0.2 = Force %0.1, e0.0
  59517. real$' %0.3 = LdConst [1] 1309
  59518. goto BB1
  59519. BB1
  59520. val %1.0 = Mul %0.2, %0.3, e0.0
  59521. real$' %1.1 = LdConst [1] 13849
  59522. goto BB2
  59523. BB2
  59524. val %2.0 = Add %1.0, %1.1, e0.0
  59525. void Return %2.0
  59526. ├────── Elide environments not needed: == 432
  59527. test>nextRandom@53[0x7f9244559020]
  59528. BB0
  59529. env e0.0 = MkEnv parent=?
  59530. cls %0.1 = LdFun bitwAnd, e0.0
  59531. prom %0.2 = MkArg missing, Prom(0), e0.0
  59532. real$' %0.3 = LdConst [1] 65535
  59533. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59534. BB2
  59535. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59536. t %2.1 = Identical %0.1, %2.0
  59537. void Assume %2.1, %0.4
  59538. val^? %2.3 = CastType %0.2
  59539. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59540. val %2.5 = Force! %2.3, e2.4
  59541. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59542. val %2.7 = Force %2.6, e2.4
  59543. void StVarSuper seed, %2.7, e0.0
  59544. val^? %2.9 = LdVar seed, e0.0
  59545. val %2.10 = Force %2.9, e0.0
  59546. void Return %2.10
  59547. BB1
  59548. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59549. void Deopt %1.0
  59550. Prom 0:
  59551. BB0
  59552. env e0.0 = LdFunctionEnv
  59553. val^? %0.1 = LdVar seed, e0.0
  59554. val %0.2 = Force %0.1, e0.0
  59555. real$' %0.3 = LdConst [1] 1309
  59556. goto BB1
  59557. BB1
  59558. val %1.0 = Mul %0.2, %0.3, e0.0
  59559. real$' %1.1 = LdConst [1] 13849
  59560. goto BB2
  59561. BB2
  59562. val %2.0 = Add %1.0, %1.1, e0.0
  59563. void Return %2.0
  59564. ├────── Move environment creation as far as possible: == 439
  59565. test>nextRandom@53[0x7f9244559020]
  59566. BB0
  59567. env e0.0 = MkEnv parent=?
  59568. cls %0.1 = LdFun bitwAnd, e0.0
  59569. prom %0.2 = MkArg missing, Prom(0), e0.0
  59570. real$' %0.3 = LdConst [1] 65535
  59571. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59572. BB2
  59573. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59574. t %2.1 = Identical %0.1, %2.0
  59575. void Assume %2.1, %0.4
  59576. val^? %2.3 = CastType %0.2
  59577. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59578. val %2.5 = Force! %2.3, e2.4
  59579. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59580. val %2.7 = Force %2.6, e2.4
  59581. void StVarSuper seed, %2.7, e0.0
  59582. val^? %2.9 = LdVar seed, e0.0
  59583. val %2.10 = Force %2.9, e0.0
  59584. void Return %2.10
  59585. BB1
  59586. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59587. void Deopt %1.0
  59588. Prom 0:
  59589. BB0
  59590. env e0.0 = LdFunctionEnv
  59591. val^? %0.1 = LdVar seed, e0.0
  59592. val %0.2 = Force %0.1, e0.0
  59593. real$' %0.3 = LdConst [1] 1309
  59594. goto BB1
  59595. BB1
  59596. val %1.0 = Mul %0.2, %0.3, e0.0
  59597. real$' %1.1 = LdConst [1] 13849
  59598. goto BB2
  59599. BB2
  59600. val %2.0 = Add %1.0, %1.1, e0.0
  59601. void Return %2.0
  59602. ├────── Cleanup redundant operations: == 446
  59603. test>nextRandom@53[0x7f9244559020]
  59604. BB0
  59605. env e0.0 = MkEnv parent=?
  59606. cls %0.1 = LdFun bitwAnd, e0.0
  59607. prom %0.2 = MkArg missing, Prom(0), e0.0
  59608. real$' %0.3 = LdConst [1] 65535
  59609. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59610. BB2
  59611. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59612. t %2.1 = Identical %0.1, %2.0
  59613. void Assume %2.1, %0.4
  59614. val^? %2.3 = CastType %0.2
  59615. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59616. val %2.5 = Force! %2.3, e2.4
  59617. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59618. val %2.7 = Force %2.6, e2.4
  59619. void StVarSuper seed, %2.7, e0.0
  59620. val^? %2.9 = LdVar seed, e0.0
  59621. val %2.10 = Force %2.9, e0.0
  59622. void Return %2.10
  59623. BB1
  59624. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59625. void Deopt %1.0
  59626. Prom 0:
  59627. BB0
  59628. env e0.0 = LdFunctionEnv
  59629. val^? %0.1 = LdVar seed, e0.0
  59630. val %0.2 = Force %0.1, e0.0
  59631. real$' %0.3 = LdConst [1] 1309
  59632. goto BB1
  59633. BB1
  59634. val %1.0 = Mul %0.2, %0.3, e0.0
  59635. real$' %1.1 = LdConst [1] 13849
  59636. goto BB2
  59637. BB2
  59638. val %2.0 = Add %1.0, %1.1, e0.0
  59639. void Return %2.0
  59640. ├────── Inline closures: == 453
  59641. test>nextRandom@53[0x7f9244559020]
  59642. BB0
  59643. env e0.0 = MkEnv parent=?
  59644. cls %0.1 = LdFun bitwAnd, e0.0
  59645. prom %0.2 = MkArg missing, Prom(0), e0.0
  59646. real$' %0.3 = LdConst [1] 65535
  59647. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59648. BB2
  59649. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59650. t %2.1 = Identical %0.1, %2.0
  59651. void Assume %2.1, %0.4
  59652. val^? %2.3 = CastType %0.2
  59653. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59654. val %2.5 = Force! %2.3, e2.4
  59655. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59656. val %2.7 = Force %2.6, e2.4
  59657. void StVarSuper seed, %2.7, e0.0
  59658. val^? %2.9 = LdVar seed, e0.0
  59659. val %2.10 = Force %2.9, e0.0
  59660. void Return %2.10
  59661. BB1
  59662. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59663. void Deopt %1.0
  59664. Prom 0:
  59665. BB0
  59666. env e0.0 = LdFunctionEnv
  59667. val^? %0.1 = LdVar seed, e0.0
  59668. val %0.2 = Force %0.1, e0.0
  59669. real$' %0.3 = LdConst [1] 1309
  59670. goto BB1
  59671. BB1
  59672. val %1.0 = Mul %0.2, %0.3, e0.0
  59673. real$' %1.1 = LdConst [1] 13849
  59674. goto BB2
  59675. BB2
  59676. val %2.0 = Add %1.0, %1.1, e0.0
  59677. void Return %2.0
  59678. ├────── Inline Promises: == 460
  59679. test>nextRandom@53[0x7f9244559020]
  59680. BB0
  59681. env e0.0 = MkEnv parent=?
  59682. cls %0.1 = LdFun bitwAnd, e0.0
  59683. prom %0.2 = MkArg missing, Prom(0), e0.0
  59684. real$' %0.3 = LdConst [1] 65535
  59685. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59686. BB2
  59687. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59688. t %2.1 = Identical %0.1, %2.0
  59689. void Assume %2.1, %0.4
  59690. val^? %2.3 = CastType %0.2
  59691. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59692. val %2.5 = Force! %2.3, e2.4
  59693. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59694. val %2.7 = Force %2.6, e2.4
  59695. void StVarSuper seed, %2.7, e0.0
  59696. val^? %2.9 = LdVar seed, e0.0
  59697. val %2.10 = Force %2.9, e0.0
  59698. void Return %2.10
  59699. BB1
  59700. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59701. void Deopt %1.0
  59702. Prom 0:
  59703. BB0
  59704. env e0.0 = LdFunctionEnv
  59705. val^? %0.1 = LdVar seed, e0.0
  59706. val %0.2 = Force %0.1, e0.0
  59707. real$' %0.3 = LdConst [1] 1309
  59708. goto BB1
  59709. BB1
  59710. val %1.0 = Mul %0.2, %0.3, e0.0
  59711. real$' %1.1 = LdConst [1] 13849
  59712. goto BB2
  59713. BB2
  59714. val %2.0 = Add %1.0, %1.1, e0.0
  59715. void Return %2.0
  59716. ├────── Scope resolution: == 467
  59717. test>nextRandom@53[0x7f9244559020]
  59718. BB0
  59719. env e0.0 = MkEnv parent=?
  59720. cls %0.1 = LdFun bitwAnd, e0.0
  59721. prom %0.2 = MkArg missing, Prom(0), e0.0
  59722. real$' %0.3 = LdConst [1] 65535
  59723. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59724. BB2
  59725. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59726. t %2.1 = Identical %0.1, %2.0
  59727. void Assume %2.1, %0.4
  59728. val^? %2.3 = CastType %0.2
  59729. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59730. val %2.5 = Force! %2.3, e2.4
  59731. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59732. val %2.7 = Force %2.6, e2.4
  59733. void StVarSuper seed, %2.7, e0.0
  59734. val^? %2.9 = LdVar seed, e0.0
  59735. val %2.10 = Force %2.9, e0.0
  59736. void Return %2.10
  59737. BB1
  59738. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59739. void Deopt %1.0
  59740. Prom 0:
  59741. BB0
  59742. env e0.0 = LdFunctionEnv
  59743. val^? %0.1 = LdVar seed, e0.0
  59744. val %0.2 = Force %0.1, e0.0
  59745. real$' %0.3 = LdConst [1] 1309
  59746. goto BB1
  59747. BB1
  59748. val %1.0 = Mul %0.2, %0.3, e0.0
  59749. real$' %1.1 = LdConst [1] 13849
  59750. goto BB2
  59751. BB2
  59752. val %2.0 = Add %1.0, %1.1, e0.0
  59753. void Return %2.0
  59754. ├────── Constant folding: == 474
  59755. test>nextRandom@53[0x7f9244559020]
  59756. BB0
  59757. env e0.0 = MkEnv parent=?
  59758. cls %0.1 = LdFun bitwAnd, e0.0
  59759. prom %0.2 = MkArg missing, Prom(0), e0.0
  59760. real$' %0.3 = LdConst [1] 65535
  59761. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59762. BB2
  59763. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59764. t %2.1 = Identical %0.1, %2.0
  59765. void Assume %2.1, %0.4
  59766. val^? %2.3 = CastType %0.2
  59767. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59768. val %2.5 = Force! %2.3, e2.4
  59769. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59770. val %2.7 = Force %2.6, e2.4
  59771. void StVarSuper seed, %2.7, e0.0
  59772. val^? %2.9 = LdVar seed, e0.0
  59773. val %2.10 = Force %2.9, e0.0
  59774. void Return %2.10
  59775. BB1
  59776. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59777. void Deopt %1.0
  59778. Prom 0:
  59779. BB0
  59780. env e0.0 = LdFunctionEnv
  59781. val^? %0.1 = LdVar seed, e0.0
  59782. val %0.2 = Force %0.1, e0.0
  59783. real$' %0.3 = LdConst [1] 1309
  59784. goto BB1
  59785. BB1
  59786. val %1.0 = Mul %0.2, %0.3, e0.0
  59787. real$' %1.1 = LdConst [1] 13849
  59788. goto BB2
  59789. BB2
  59790. val %2.0 = Add %1.0, %1.1, e0.0
  59791. void Return %2.0
  59792. ├────── Cleanup redundant operations: == 481
  59793. test>nextRandom@53[0x7f9244559020]
  59794. BB0
  59795. env e0.0 = MkEnv parent=?
  59796. cls %0.1 = LdFun bitwAnd, e0.0
  59797. prom %0.2 = MkArg missing, Prom(0), e0.0
  59798. real$' %0.3 = LdConst [1] 65535
  59799. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59800. BB2
  59801. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59802. t %2.1 = Identical %0.1, %2.0
  59803. void Assume %2.1, %0.4
  59804. val^? %2.3 = CastType %0.2
  59805. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59806. val %2.5 = Force! %2.3, e2.4
  59807. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59808. val %2.7 = Force %2.6, e2.4
  59809. void StVarSuper seed, %2.7, e0.0
  59810. val^? %2.9 = LdVar seed, e0.0
  59811. val %2.10 = Force %2.9, e0.0
  59812. void Return %2.10
  59813. BB1
  59814. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59815. void Deopt %1.0
  59816. Prom 0:
  59817. BB0
  59818. env e0.0 = LdFunctionEnv
  59819. val^? %0.1 = LdVar seed, e0.0
  59820. val %0.2 = Force %0.1, e0.0
  59821. real$' %0.3 = LdConst [1] 1309
  59822. goto BB1
  59823. BB1
  59824. val %1.0 = Mul %0.2, %0.3, e0.0
  59825. real$' %1.1 = LdConst [1] 13849
  59826. goto BB2
  59827. BB2
  59828. val %2.0 = Add %1.0, %1.1, e0.0
  59829. void Return %2.0
  59830. ├────── Delay instructions: == 488
  59831. test>nextRandom@53[0x7f9244559020]
  59832. BB0
  59833. env e0.0 = MkEnv parent=?
  59834. cls %0.1 = LdFun bitwAnd, e0.0
  59835. prom %0.2 = MkArg missing, Prom(0), e0.0
  59836. real$' %0.3 = LdConst [1] 65535
  59837. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59838. BB2
  59839. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59840. t %2.1 = Identical %0.1, %2.0
  59841. void Assume %2.1, %0.4
  59842. val^? %2.3 = CastType %0.2
  59843. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59844. val %2.5 = Force! %2.3, e2.4
  59845. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59846. val %2.7 = Force %2.6, e2.4
  59847. void StVarSuper seed, %2.7, e0.0
  59848. val^? %2.9 = LdVar seed, e0.0
  59849. val %2.10 = Force %2.9, e0.0
  59850. void Return %2.10
  59851. BB1
  59852. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59853. void Deopt %1.0
  59854. Prom 0:
  59855. BB0
  59856. env e0.0 = LdFunctionEnv
  59857. val^? %0.1 = LdVar seed, e0.0
  59858. val %0.2 = Force %0.1, e0.0
  59859. real$' %0.3 = LdConst [1] 1309
  59860. goto BB1
  59861. BB1
  59862. val %1.0 = Mul %0.2, %0.3, e0.0
  59863. real$' %1.1 = LdConst [1] 13849
  59864. goto BB2
  59865. BB2
  59866. val %2.0 = Add %1.0, %1.1, e0.0
  59867. void Return %2.0
  59868. ├────── Elide environments not needed: == 495
  59869. test>nextRandom@53[0x7f9244559020]
  59870. BB0
  59871. env e0.0 = MkEnv parent=?
  59872. cls %0.1 = LdFun bitwAnd, e0.0
  59873. prom %0.2 = MkArg missing, Prom(0), e0.0
  59874. real$' %0.3 = LdConst [1] 65535
  59875. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59876. BB2
  59877. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59878. t %2.1 = Identical %0.1, %2.0
  59879. void Assume %2.1, %0.4
  59880. val^? %2.3 = CastType %0.2
  59881. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59882. val %2.5 = Force! %2.3, e2.4
  59883. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59884. val %2.7 = Force %2.6, e2.4
  59885. void StVarSuper seed, %2.7, e0.0
  59886. val^? %2.9 = LdVar seed, e0.0
  59887. val %2.10 = Force %2.9, e0.0
  59888. void Return %2.10
  59889. BB1
  59890. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59891. void Deopt %1.0
  59892. Prom 0:
  59893. BB0
  59894. env e0.0 = LdFunctionEnv
  59895. val^? %0.1 = LdVar seed, e0.0
  59896. val %0.2 = Force %0.1, e0.0
  59897. real$' %0.3 = LdConst [1] 1309
  59898. goto BB1
  59899. BB1
  59900. val %1.0 = Mul %0.2, %0.3, e0.0
  59901. real$' %1.1 = LdConst [1] 13849
  59902. goto BB2
  59903. BB2
  59904. val %2.0 = Add %1.0, %1.1, e0.0
  59905. void Return %2.0
  59906. ├────── Move environment creation as far as possible: == 502
  59907. test>nextRandom@53[0x7f9244559020]
  59908. BB0
  59909. env e0.0 = MkEnv parent=?
  59910. cls %0.1 = LdFun bitwAnd, e0.0
  59911. prom %0.2 = MkArg missing, Prom(0), e0.0
  59912. real$' %0.3 = LdConst [1] 65535
  59913. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59914. BB2
  59915. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59916. t %2.1 = Identical %0.1, %2.0
  59917. void Assume %2.1, %0.4
  59918. val^? %2.3 = CastType %0.2
  59919. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59920. val %2.5 = Force! %2.3, e2.4
  59921. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59922. val %2.7 = Force %2.6, e2.4
  59923. void StVarSuper seed, %2.7, e0.0
  59924. val^? %2.9 = LdVar seed, e0.0
  59925. val %2.10 = Force %2.9, e0.0
  59926. void Return %2.10
  59927. BB1
  59928. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59929. void Deopt %1.0
  59930. Prom 0:
  59931. BB0
  59932. env e0.0 = LdFunctionEnv
  59933. val^? %0.1 = LdVar seed, e0.0
  59934. val %0.2 = Force %0.1, e0.0
  59935. real$' %0.3 = LdConst [1] 1309
  59936. goto BB1
  59937. BB1
  59938. val %1.0 = Mul %0.2, %0.3, e0.0
  59939. real$' %1.1 = LdConst [1] 13849
  59940. goto BB2
  59941. BB2
  59942. val %2.0 = Add %1.0, %1.1, e0.0
  59943. void Return %2.0
  59944. ├────── Cleanup redundant operations: == 509
  59945. test>nextRandom@53[0x7f9244559020]
  59946. BB0
  59947. env e0.0 = MkEnv parent=?
  59948. cls %0.1 = LdFun bitwAnd, e0.0
  59949. prom %0.2 = MkArg missing, Prom(0), e0.0
  59950. real$' %0.3 = LdConst [1] 65535
  59951. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59952. BB2
  59953. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59954. t %2.1 = Identical %0.1, %2.0
  59955. void Assume %2.1, %0.4
  59956. val^? %2.3 = CastType %0.2
  59957. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59958. val %2.5 = Force! %2.3, e2.4
  59959. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59960. val %2.7 = Force %2.6, e2.4
  59961. void StVarSuper seed, %2.7, e0.0
  59962. val^? %2.9 = LdVar seed, e0.0
  59963. val %2.10 = Force %2.9, e0.0
  59964. void Return %2.10
  59965. BB1
  59966. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  59967. void Deopt %1.0
  59968. Prom 0:
  59969. BB0
  59970. env e0.0 = LdFunctionEnv
  59971. val^? %0.1 = LdVar seed, e0.0
  59972. val %0.2 = Force %0.1, e0.0
  59973. real$' %0.3 = LdConst [1] 1309
  59974. goto BB1
  59975. BB1
  59976. val %1.0 = Mul %0.2, %0.3, e0.0
  59977. real$' %1.1 = LdConst [1] 13849
  59978. goto BB2
  59979. BB2
  59980. val %2.0 = Add %1.0, %1.1, e0.0
  59981. void Return %2.0
  59982. ├────── Inline closures: == 516
  59983. test>nextRandom@53[0x7f9244559020]
  59984. BB0
  59985. env e0.0 = MkEnv parent=?
  59986. cls %0.1 = LdFun bitwAnd, e0.0
  59987. prom %0.2 = MkArg missing, Prom(0), e0.0
  59988. real$' %0.3 = LdConst [1] 65535
  59989. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  59990. BB2
  59991. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  59992. t %2.1 = Identical %0.1, %2.0
  59993. void Assume %2.1, %0.4
  59994. val^? %2.3 = CastType %0.2
  59995. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  59996. val %2.5 = Force! %2.3, e2.4
  59997. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  59998. val %2.7 = Force %2.6, e2.4
  59999. void StVarSuper seed, %2.7, e0.0
  60000. val^? %2.9 = LdVar seed, e0.0
  60001. val %2.10 = Force %2.9, e0.0
  60002. void Return %2.10
  60003. BB1
  60004. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60005. void Deopt %1.0
  60006. Prom 0:
  60007. BB0
  60008. env e0.0 = LdFunctionEnv
  60009. val^? %0.1 = LdVar seed, e0.0
  60010. val %0.2 = Force %0.1, e0.0
  60011. real$' %0.3 = LdConst [1] 1309
  60012. goto BB1
  60013. BB1
  60014. val %1.0 = Mul %0.2, %0.3, e0.0
  60015. real$' %1.1 = LdConst [1] 13849
  60016. goto BB2
  60017. BB2
  60018. val %2.0 = Add %1.0, %1.1, e0.0
  60019. void Return %2.0
  60020. ├────── Speculate on values to elide environments: == 523
  60021. test>nextRandom@53[0x7f9244559020]
  60022. BB0
  60023. env e0.0 = MkEnv parent=?
  60024. cls %0.1 = LdFun bitwAnd, e0.0
  60025. prom %0.2 = MkArg missing, Prom(0), e0.0
  60026. real$' %0.3 = LdConst [1] 65535
  60027. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60028. BB2
  60029. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60030. t %2.1 = Identical %0.1, %2.0
  60031. void Assume %2.1, %0.4
  60032. val^? %2.3 = CastType %0.2
  60033. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60034. val %2.5 = Force! %2.3, e2.4
  60035. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60036. val %2.7 = Force %2.6, e2.4
  60037. void StVarSuper seed, %2.7, e0.0
  60038. val^? %2.9 = LdVar seed, e0.0
  60039. val %2.10 = Force %2.9, e0.0
  60040. void Return %2.10
  60041. BB1
  60042. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60043. void Deopt %1.0
  60044. Prom 0:
  60045. BB0
  60046. env e0.0 = LdFunctionEnv
  60047. val^? %0.1 = LdVar seed, e0.0
  60048. val %0.2 = Force %0.1, e0.0
  60049. real$' %0.3 = LdConst [1] 1309
  60050. goto BB1
  60051. BB1
  60052. val %1.0 = Mul %0.2, %0.3, e0.0
  60053. real$' %1.1 = LdConst [1] 13849
  60054. goto BB2
  60055. BB2
  60056. val %2.0 = Add %1.0, %1.1, e0.0
  60057. void Return %2.0
  60058. ├────── Cleanup unused checkpoints: == 530
  60059. test>nextRandom@53[0x7f9244559020]
  60060. BB0
  60061. env e0.0 = MkEnv parent=?
  60062. cls %0.1 = LdFun bitwAnd, e0.0
  60063. prom %0.2 = MkArg missing, Prom(0), e0.0
  60064. real$' %0.3 = LdConst [1] 65535
  60065. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60066. BB2
  60067. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60068. t %2.1 = Identical %0.1, %2.0
  60069. void Assume %2.1, %0.4
  60070. val^? %2.3 = CastType %0.2
  60071. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60072. val %2.5 = Force! %2.3, e2.4
  60073. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60074. val %2.7 = Force %2.6, e2.4
  60075. void StVarSuper seed, %2.7, e0.0
  60076. val^? %2.9 = LdVar seed, e0.0
  60077. val %2.10 = Force %2.9, e0.0
  60078. void Return %2.10
  60079. BB1
  60080. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60081. void Deopt %1.0
  60082. Prom 0:
  60083. BB0
  60084. env e0.0 = LdFunctionEnv
  60085. val^? %0.1 = LdVar seed, e0.0
  60086. val %0.2 = Force %0.1, e0.0
  60087. real$' %0.3 = LdConst [1] 1309
  60088. goto BB1
  60089. BB1
  60090. val %1.0 = Mul %0.2, %0.3, e0.0
  60091. real$' %1.1 = LdConst [1] 13849
  60092. goto BB2
  60093. BB2
  60094. val %2.0 = Add %1.0, %1.1, e0.0
  60095. void Return %2.0
  60096. ├────── Cleanup framestates unused by checkpoints: == 537
  60097. test>nextRandom@53[0x7f9244559020]
  60098. BB0
  60099. env e0.0 = MkEnv parent=?
  60100. cls %0.1 = LdFun bitwAnd, e0.0
  60101. prom %0.2 = MkArg missing, Prom(0), e0.0
  60102. real$' %0.3 = LdConst [1] 65535
  60103. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60104. BB2
  60105. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60106. t %2.1 = Identical %0.1, %2.0
  60107. void Assume %2.1, %0.4
  60108. val^? %2.3 = CastType %0.2
  60109. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60110. val %2.5 = Force! %2.3, e2.4
  60111. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60112. val %2.7 = Force %2.6, e2.4
  60113. void StVarSuper seed, %2.7, e0.0
  60114. val^? %2.9 = LdVar seed, e0.0
  60115. val %2.10 = Force %2.9, e0.0
  60116. void Return %2.10
  60117. BB1
  60118. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60119. void Deopt %1.0
  60120. Prom 0:
  60121. BB0
  60122. env e0.0 = LdFunctionEnv
  60123. val^? %0.1 = LdVar seed, e0.0
  60124. val %0.2 = Force %0.1, e0.0
  60125. real$' %0.3 = LdConst [1] 1309
  60126. goto BB1
  60127. BB1
  60128. val %1.0 = Mul %0.2, %0.3, e0.0
  60129. real$' %1.1 = LdConst [1] 13849
  60130. goto BB2
  60131. BB2
  60132. val %2.0 = Add %1.0, %1.1, e0.0
  60133. void Return %2.0
  60134. ├────── Inline Promises: == 544
  60135. test>nextRandom@53[0x7f9244559020]
  60136. BB0
  60137. env e0.0 = MkEnv parent=?
  60138. cls %0.1 = LdFun bitwAnd, e0.0
  60139. prom %0.2 = MkArg missing, Prom(0), e0.0
  60140. real$' %0.3 = LdConst [1] 65535
  60141. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60142. BB2
  60143. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60144. t %2.1 = Identical %0.1, %2.0
  60145. void Assume %2.1, %0.4
  60146. val^? %2.3 = CastType %0.2
  60147. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60148. val %2.5 = Force! %2.3, e2.4
  60149. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60150. val %2.7 = Force %2.6, e2.4
  60151. void StVarSuper seed, %2.7, e0.0
  60152. val^? %2.9 = LdVar seed, e0.0
  60153. val %2.10 = Force %2.9, e0.0
  60154. void Return %2.10
  60155. BB1
  60156. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60157. void Deopt %1.0
  60158. Prom 0:
  60159. BB0
  60160. env e0.0 = LdFunctionEnv
  60161. val^? %0.1 = LdVar seed, e0.0
  60162. val %0.2 = Force %0.1, e0.0
  60163. real$' %0.3 = LdConst [1] 1309
  60164. goto BB1
  60165. BB1
  60166. val %1.0 = Mul %0.2, %0.3, e0.0
  60167. real$' %1.1 = LdConst [1] 13849
  60168. goto BB2
  60169. BB2
  60170. val %2.0 = Add %1.0, %1.1, e0.0
  60171. void Return %2.0
  60172. ├────── Scope resolution: == 551
  60173. test>nextRandom@53[0x7f9244559020]
  60174. BB0
  60175. env e0.0 = MkEnv parent=?
  60176. cls %0.1 = LdFun bitwAnd, e0.0
  60177. prom %0.2 = MkArg missing, Prom(0), e0.0
  60178. real$' %0.3 = LdConst [1] 65535
  60179. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60180. BB2
  60181. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60182. t %2.1 = Identical %0.1, %2.0
  60183. void Assume %2.1, %0.4
  60184. val^? %2.3 = CastType %0.2
  60185. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60186. val %2.5 = Force! %2.3, e2.4
  60187. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60188. val %2.7 = Force %2.6, e2.4
  60189. void StVarSuper seed, %2.7, e0.0
  60190. val^? %2.9 = LdVar seed, e0.0
  60191. val %2.10 = Force %2.9, e0.0
  60192. void Return %2.10
  60193. BB1
  60194. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60195. void Deopt %1.0
  60196. Prom 0:
  60197. BB0
  60198. env e0.0 = LdFunctionEnv
  60199. val^? %0.1 = LdVar seed, e0.0
  60200. val %0.2 = Force %0.1, e0.0
  60201. real$' %0.3 = LdConst [1] 1309
  60202. goto BB1
  60203. BB1
  60204. val %1.0 = Mul %0.2, %0.3, e0.0
  60205. real$' %1.1 = LdConst [1] 13849
  60206. goto BB2
  60207. BB2
  60208. val %2.0 = Add %1.0, %1.1, e0.0
  60209. void Return %2.0
  60210. ├────── Constant folding: == 558
  60211. test>nextRandom@53[0x7f9244559020]
  60212. BB0
  60213. env e0.0 = MkEnv parent=?
  60214. cls %0.1 = LdFun bitwAnd, e0.0
  60215. prom %0.2 = MkArg missing, Prom(0), e0.0
  60216. real$' %0.3 = LdConst [1] 65535
  60217. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60218. BB2
  60219. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60220. t %2.1 = Identical %0.1, %2.0
  60221. void Assume %2.1, %0.4
  60222. val^? %2.3 = CastType %0.2
  60223. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60224. val %2.5 = Force! %2.3, e2.4
  60225. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60226. val %2.7 = Force %2.6, e2.4
  60227. void StVarSuper seed, %2.7, e0.0
  60228. val^? %2.9 = LdVar seed, e0.0
  60229. val %2.10 = Force %2.9, e0.0
  60230. void Return %2.10
  60231. BB1
  60232. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60233. void Deopt %1.0
  60234. Prom 0:
  60235. BB0
  60236. env e0.0 = LdFunctionEnv
  60237. val^? %0.1 = LdVar seed, e0.0
  60238. val %0.2 = Force %0.1, e0.0
  60239. real$' %0.3 = LdConst [1] 1309
  60240. goto BB1
  60241. BB1
  60242. val %1.0 = Mul %0.2, %0.3, e0.0
  60243. real$' %1.1 = LdConst [1] 13849
  60244. goto BB2
  60245. BB2
  60246. val %2.0 = Add %1.0, %1.1, e0.0
  60247. void Return %2.0
  60248. ├────── Cleanup redundant operations: == 565
  60249. test>nextRandom@53[0x7f9244559020]
  60250. BB0
  60251. env e0.0 = MkEnv parent=?
  60252. cls %0.1 = LdFun bitwAnd, e0.0
  60253. prom %0.2 = MkArg missing, Prom(0), e0.0
  60254. real$' %0.3 = LdConst [1] 65535
  60255. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60256. BB2
  60257. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60258. t %2.1 = Identical %0.1, %2.0
  60259. void Assume %2.1, %0.4
  60260. val^? %2.3 = CastType %0.2
  60261. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60262. val %2.5 = Force! %2.3, e2.4
  60263. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60264. val %2.7 = Force %2.6, e2.4
  60265. void StVarSuper seed, %2.7, e0.0
  60266. val^? %2.9 = LdVar seed, e0.0
  60267. val %2.10 = Force %2.9, e0.0
  60268. void Return %2.10
  60269. BB1
  60270. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60271. void Deopt %1.0
  60272. Prom 0:
  60273. BB0
  60274. env e0.0 = LdFunctionEnv
  60275. val^? %0.1 = LdVar seed, e0.0
  60276. val %0.2 = Force %0.1, e0.0
  60277. real$' %0.3 = LdConst [1] 1309
  60278. goto BB1
  60279. BB1
  60280. val %1.0 = Mul %0.2, %0.3, e0.0
  60281. real$' %1.1 = LdConst [1] 13849
  60282. goto BB2
  60283. BB2
  60284. val %2.0 = Add %1.0, %1.1, e0.0
  60285. void Return %2.0
  60286. ├────── Delay instructions: == 572
  60287. test>nextRandom@53[0x7f9244559020]
  60288. BB0
  60289. env e0.0 = MkEnv parent=?
  60290. cls %0.1 = LdFun bitwAnd, e0.0
  60291. prom %0.2 = MkArg missing, Prom(0), e0.0
  60292. real$' %0.3 = LdConst [1] 65535
  60293. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60294. BB2
  60295. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60296. t %2.1 = Identical %0.1, %2.0
  60297. void Assume %2.1, %0.4
  60298. val^? %2.3 = CastType %0.2
  60299. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60300. val %2.5 = Force! %2.3, e2.4
  60301. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60302. val %2.7 = Force %2.6, e2.4
  60303. void StVarSuper seed, %2.7, e0.0
  60304. val^? %2.9 = LdVar seed, e0.0
  60305. val %2.10 = Force %2.9, e0.0
  60306. void Return %2.10
  60307. BB1
  60308. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60309. void Deopt %1.0
  60310. Prom 0:
  60311. BB0
  60312. env e0.0 = LdFunctionEnv
  60313. val^? %0.1 = LdVar seed, e0.0
  60314. val %0.2 = Force %0.1, e0.0
  60315. real$' %0.3 = LdConst [1] 1309
  60316. goto BB1
  60317. BB1
  60318. val %1.0 = Mul %0.2, %0.3, e0.0
  60319. real$' %1.1 = LdConst [1] 13849
  60320. goto BB2
  60321. BB2
  60322. val %2.0 = Add %1.0, %1.1, e0.0
  60323. void Return %2.0
  60324. ├────── Elide environments not needed: == 579
  60325. test>nextRandom@53[0x7f9244559020]
  60326. BB0
  60327. env e0.0 = MkEnv parent=?
  60328. cls %0.1 = LdFun bitwAnd, e0.0
  60329. prom %0.2 = MkArg missing, Prom(0), e0.0
  60330. real$' %0.3 = LdConst [1] 65535
  60331. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60332. BB2
  60333. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60334. t %2.1 = Identical %0.1, %2.0
  60335. void Assume %2.1, %0.4
  60336. val^? %2.3 = CastType %0.2
  60337. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60338. val %2.5 = Force! %2.3, e2.4
  60339. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60340. val %2.7 = Force %2.6, e2.4
  60341. void StVarSuper seed, %2.7, e0.0
  60342. val^? %2.9 = LdVar seed, e0.0
  60343. val %2.10 = Force %2.9, e0.0
  60344. void Return %2.10
  60345. BB1
  60346. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60347. void Deopt %1.0
  60348. Prom 0:
  60349. BB0
  60350. env e0.0 = LdFunctionEnv
  60351. val^? %0.1 = LdVar seed, e0.0
  60352. val %0.2 = Force %0.1, e0.0
  60353. real$' %0.3 = LdConst [1] 1309
  60354. goto BB1
  60355. BB1
  60356. val %1.0 = Mul %0.2, %0.3, e0.0
  60357. real$' %1.1 = LdConst [1] 13849
  60358. goto BB2
  60359. BB2
  60360. val %2.0 = Add %1.0, %1.1, e0.0
  60361. void Return %2.0
  60362. ├────── Move environment creation as far as possible: == 586
  60363. test>nextRandom@53[0x7f9244559020]
  60364. BB0
  60365. env e0.0 = MkEnv parent=?
  60366. cls %0.1 = LdFun bitwAnd, e0.0
  60367. prom %0.2 = MkArg missing, Prom(0), e0.0
  60368. real$' %0.3 = LdConst [1] 65535
  60369. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60370. BB2
  60371. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60372. t %2.1 = Identical %0.1, %2.0
  60373. void Assume %2.1, %0.4
  60374. val^? %2.3 = CastType %0.2
  60375. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60376. val %2.5 = Force! %2.3, e2.4
  60377. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60378. val %2.7 = Force %2.6, e2.4
  60379. void StVarSuper seed, %2.7, e0.0
  60380. val^? %2.9 = LdVar seed, e0.0
  60381. val %2.10 = Force %2.9, e0.0
  60382. void Return %2.10
  60383. BB1
  60384. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60385. void Deopt %1.0
  60386. Prom 0:
  60387. BB0
  60388. env e0.0 = LdFunctionEnv
  60389. val^? %0.1 = LdVar seed, e0.0
  60390. val %0.2 = Force %0.1, e0.0
  60391. real$' %0.3 = LdConst [1] 1309
  60392. goto BB1
  60393. BB1
  60394. val %1.0 = Mul %0.2, %0.3, e0.0
  60395. real$' %1.1 = LdConst [1] 13849
  60396. goto BB2
  60397. BB2
  60398. val %2.0 = Add %1.0, %1.1, e0.0
  60399. void Return %2.0
  60400. ├────── Cleanup redundant operations: == 593
  60401. test>nextRandom@53[0x7f9244559020]
  60402. BB0
  60403. env e0.0 = MkEnv parent=?
  60404. cls %0.1 = LdFun bitwAnd, e0.0
  60405. prom %0.2 = MkArg missing, Prom(0), e0.0
  60406. real$' %0.3 = LdConst [1] 65535
  60407. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60408. BB2
  60409. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60410. t %2.1 = Identical %0.1, %2.0
  60411. void Assume %2.1, %0.4
  60412. val^? %2.3 = CastType %0.2
  60413. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60414. val %2.5 = Force! %2.3, e2.4
  60415. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60416. val %2.7 = Force %2.6, e2.4
  60417. void StVarSuper seed, %2.7, e0.0
  60418. val^? %2.9 = LdVar seed, e0.0
  60419. val %2.10 = Force %2.9, e0.0
  60420. void Return %2.10
  60421. BB1
  60422. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60423. void Deopt %1.0
  60424. Prom 0:
  60425. BB0
  60426. env e0.0 = LdFunctionEnv
  60427. val^? %0.1 = LdVar seed, e0.0
  60428. val %0.2 = Force %0.1, e0.0
  60429. real$' %0.3 = LdConst [1] 1309
  60430. goto BB1
  60431. BB1
  60432. val %1.0 = Mul %0.2, %0.3, e0.0
  60433. real$' %1.1 = LdConst [1] 13849
  60434. goto BB2
  60435. BB2
  60436. val %2.0 = Add %1.0, %1.1, e0.0
  60437. void Return %2.0
  60438. ├────── Inline closures: == 600
  60439. test>nextRandom@53[0x7f9244559020]
  60440. BB0
  60441. env e0.0 = MkEnv parent=?
  60442. cls %0.1 = LdFun bitwAnd, e0.0
  60443. prom %0.2 = MkArg missing, Prom(0), e0.0
  60444. real$' %0.3 = LdConst [1] 65535
  60445. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60446. BB2
  60447. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60448. t %2.1 = Identical %0.1, %2.0
  60449. void Assume %2.1, %0.4
  60450. val^? %2.3 = CastType %0.2
  60451. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60452. val %2.5 = Force! %2.3, e2.4
  60453. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60454. val %2.7 = Force %2.6, e2.4
  60455. void StVarSuper seed, %2.7, e0.0
  60456. val^? %2.9 = LdVar seed, e0.0
  60457. val %2.10 = Force %2.9, e0.0
  60458. void Return %2.10
  60459. BB1
  60460. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60461. void Deopt %1.0
  60462. Prom 0:
  60463. BB0
  60464. env e0.0 = LdFunctionEnv
  60465. val^? %0.1 = LdVar seed, e0.0
  60466. val %0.2 = Force %0.1, e0.0
  60467. real$' %0.3 = LdConst [1] 1309
  60468. goto BB1
  60469. BB1
  60470. val %1.0 = Mul %0.2, %0.3, e0.0
  60471. real$' %1.1 = LdConst [1] 13849
  60472. goto BB2
  60473. BB2
  60474. val %2.0 = Add %1.0, %1.1, e0.0
  60475. void Return %2.0
  60476. ├────── Inline Promises: == 607
  60477. test>nextRandom@53[0x7f9244559020]
  60478. BB0
  60479. env e0.0 = MkEnv parent=?
  60480. cls %0.1 = LdFun bitwAnd, e0.0
  60481. prom %0.2 = MkArg missing, Prom(0), e0.0
  60482. real$' %0.3 = LdConst [1] 65535
  60483. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60484. BB2
  60485. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60486. t %2.1 = Identical %0.1, %2.0
  60487. void Assume %2.1, %0.4
  60488. val^? %2.3 = CastType %0.2
  60489. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60490. val %2.5 = Force! %2.3, e2.4
  60491. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60492. val %2.7 = Force %2.6, e2.4
  60493. void StVarSuper seed, %2.7, e0.0
  60494. val^? %2.9 = LdVar seed, e0.0
  60495. val %2.10 = Force %2.9, e0.0
  60496. void Return %2.10
  60497. BB1
  60498. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60499. void Deopt %1.0
  60500. Prom 0:
  60501. BB0
  60502. env e0.0 = LdFunctionEnv
  60503. val^? %0.1 = LdVar seed, e0.0
  60504. val %0.2 = Force %0.1, e0.0
  60505. real$' %0.3 = LdConst [1] 1309
  60506. goto BB1
  60507. BB1
  60508. val %1.0 = Mul %0.2, %0.3, e0.0
  60509. real$' %1.1 = LdConst [1] 13849
  60510. goto BB2
  60511. BB2
  60512. val %2.0 = Add %1.0, %1.1, e0.0
  60513. void Return %2.0
  60514. ├────── Scope resolution: == 614
  60515. test>nextRandom@53[0x7f9244559020]
  60516. BB0
  60517. env e0.0 = MkEnv parent=?
  60518. cls %0.1 = LdFun bitwAnd, e0.0
  60519. prom %0.2 = MkArg missing, Prom(0), e0.0
  60520. real$' %0.3 = LdConst [1] 65535
  60521. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60522. BB2
  60523. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60524. t %2.1 = Identical %0.1, %2.0
  60525. void Assume %2.1, %0.4
  60526. val^? %2.3 = CastType %0.2
  60527. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60528. val %2.5 = Force! %2.3, e2.4
  60529. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60530. val %2.7 = Force %2.6, e2.4
  60531. void StVarSuper seed, %2.7, e0.0
  60532. val^? %2.9 = LdVar seed, e0.0
  60533. val %2.10 = Force %2.9, e0.0
  60534. void Return %2.10
  60535. BB1
  60536. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60537. void Deopt %1.0
  60538. Prom 0:
  60539. BB0
  60540. env e0.0 = LdFunctionEnv
  60541. val^? %0.1 = LdVar seed, e0.0
  60542. val %0.2 = Force %0.1, e0.0
  60543. real$' %0.3 = LdConst [1] 1309
  60544. goto BB1
  60545. BB1
  60546. val %1.0 = Mul %0.2, %0.3, e0.0
  60547. real$' %1.1 = LdConst [1] 13849
  60548. goto BB2
  60549. BB2
  60550. val %2.0 = Add %1.0, %1.1, e0.0
  60551. void Return %2.0
  60552. ├────── Constant folding: == 621
  60553. test>nextRandom@53[0x7f9244559020]
  60554. BB0
  60555. env e0.0 = MkEnv parent=?
  60556. cls %0.1 = LdFun bitwAnd, e0.0
  60557. prom %0.2 = MkArg missing, Prom(0), e0.0
  60558. real$' %0.3 = LdConst [1] 65535
  60559. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60560. BB2
  60561. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60562. t %2.1 = Identical %0.1, %2.0
  60563. void Assume %2.1, %0.4
  60564. val^? %2.3 = CastType %0.2
  60565. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60566. val %2.5 = Force! %2.3, e2.4
  60567. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60568. val %2.7 = Force %2.6, e2.4
  60569. void StVarSuper seed, %2.7, e0.0
  60570. val^? %2.9 = LdVar seed, e0.0
  60571. val %2.10 = Force %2.9, e0.0
  60572. void Return %2.10
  60573. BB1
  60574. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60575. void Deopt %1.0
  60576. Prom 0:
  60577. BB0
  60578. env e0.0 = LdFunctionEnv
  60579. val^? %0.1 = LdVar seed, e0.0
  60580. val %0.2 = Force %0.1, e0.0
  60581. real$' %0.3 = LdConst [1] 1309
  60582. goto BB1
  60583. BB1
  60584. val %1.0 = Mul %0.2, %0.3, e0.0
  60585. real$' %1.1 = LdConst [1] 13849
  60586. goto BB2
  60587. BB2
  60588. val %2.0 = Add %1.0, %1.1, e0.0
  60589. void Return %2.0
  60590. ├────── Cleanup redundant operations: == 628
  60591. test>nextRandom@53[0x7f9244559020]
  60592. BB0
  60593. env e0.0 = MkEnv parent=?
  60594. cls %0.1 = LdFun bitwAnd, e0.0
  60595. prom %0.2 = MkArg missing, Prom(0), e0.0
  60596. real$' %0.3 = LdConst [1] 65535
  60597. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60598. BB2
  60599. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60600. t %2.1 = Identical %0.1, %2.0
  60601. void Assume %2.1, %0.4
  60602. val^? %2.3 = CastType %0.2
  60603. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60604. val %2.5 = Force! %2.3, e2.4
  60605. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60606. val %2.7 = Force %2.6, e2.4
  60607. void StVarSuper seed, %2.7, e0.0
  60608. val^? %2.9 = LdVar seed, e0.0
  60609. val %2.10 = Force %2.9, e0.0
  60610. void Return %2.10
  60611. BB1
  60612. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60613. void Deopt %1.0
  60614. Prom 0:
  60615. BB0
  60616. env e0.0 = LdFunctionEnv
  60617. val^? %0.1 = LdVar seed, e0.0
  60618. val %0.2 = Force %0.1, e0.0
  60619. real$' %0.3 = LdConst [1] 1309
  60620. goto BB1
  60621. BB1
  60622. val %1.0 = Mul %0.2, %0.3, e0.0
  60623. real$' %1.1 = LdConst [1] 13849
  60624. goto BB2
  60625. BB2
  60626. val %2.0 = Add %1.0, %1.1, e0.0
  60627. void Return %2.0
  60628. ├────── Delay instructions: == 635
  60629. test>nextRandom@53[0x7f9244559020]
  60630. BB0
  60631. env e0.0 = MkEnv parent=?
  60632. cls %0.1 = LdFun bitwAnd, e0.0
  60633. prom %0.2 = MkArg missing, Prom(0), e0.0
  60634. real$' %0.3 = LdConst [1] 65535
  60635. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60636. BB2
  60637. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60638. t %2.1 = Identical %0.1, %2.0
  60639. void Assume %2.1, %0.4
  60640. val^? %2.3 = CastType %0.2
  60641. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60642. val %2.5 = Force! %2.3, e2.4
  60643. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60644. val %2.7 = Force %2.6, e2.4
  60645. void StVarSuper seed, %2.7, e0.0
  60646. val^? %2.9 = LdVar seed, e0.0
  60647. val %2.10 = Force %2.9, e0.0
  60648. void Return %2.10
  60649. BB1
  60650. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60651. void Deopt %1.0
  60652. Prom 0:
  60653. BB0
  60654. env e0.0 = LdFunctionEnv
  60655. val^? %0.1 = LdVar seed, e0.0
  60656. val %0.2 = Force %0.1, e0.0
  60657. real$' %0.3 = LdConst [1] 1309
  60658. goto BB1
  60659. BB1
  60660. val %1.0 = Mul %0.2, %0.3, e0.0
  60661. real$' %1.1 = LdConst [1] 13849
  60662. goto BB2
  60663. BB2
  60664. val %2.0 = Add %1.0, %1.1, e0.0
  60665. void Return %2.0
  60666. ├────── Elide environments not needed: == 642
  60667. test>nextRandom@53[0x7f9244559020]
  60668. BB0
  60669. env e0.0 = MkEnv parent=?
  60670. cls %0.1 = LdFun bitwAnd, e0.0
  60671. prom %0.2 = MkArg missing, Prom(0), e0.0
  60672. real$' %0.3 = LdConst [1] 65535
  60673. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60674. BB2
  60675. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60676. t %2.1 = Identical %0.1, %2.0
  60677. void Assume %2.1, %0.4
  60678. val^? %2.3 = CastType %0.2
  60679. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60680. val %2.5 = Force! %2.3, e2.4
  60681. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60682. val %2.7 = Force %2.6, e2.4
  60683. void StVarSuper seed, %2.7, e0.0
  60684. val^? %2.9 = LdVar seed, e0.0
  60685. val %2.10 = Force %2.9, e0.0
  60686. void Return %2.10
  60687. BB1
  60688. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60689. void Deopt %1.0
  60690. Prom 0:
  60691. BB0
  60692. env e0.0 = LdFunctionEnv
  60693. val^? %0.1 = LdVar seed, e0.0
  60694. val %0.2 = Force %0.1, e0.0
  60695. real$' %0.3 = LdConst [1] 1309
  60696. goto BB1
  60697. BB1
  60698. val %1.0 = Mul %0.2, %0.3, e0.0
  60699. real$' %1.1 = LdConst [1] 13849
  60700. goto BB2
  60701. BB2
  60702. val %2.0 = Add %1.0, %1.1, e0.0
  60703. void Return %2.0
  60704. ├────── Move environment creation as far as possible: == 649
  60705. test>nextRandom@53[0x7f9244559020]
  60706. BB0
  60707. env e0.0 = MkEnv parent=?
  60708. cls %0.1 = LdFun bitwAnd, e0.0
  60709. prom %0.2 = MkArg missing, Prom(0), e0.0
  60710. real$' %0.3 = LdConst [1] 65535
  60711. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60712. BB2
  60713. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60714. t %2.1 = Identical %0.1, %2.0
  60715. void Assume %2.1, %0.4
  60716. val^? %2.3 = CastType %0.2
  60717. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60718. val %2.5 = Force! %2.3, e2.4
  60719. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60720. val %2.7 = Force %2.6, e2.4
  60721. void StVarSuper seed, %2.7, e0.0
  60722. val^? %2.9 = LdVar seed, e0.0
  60723. val %2.10 = Force %2.9, e0.0
  60724. void Return %2.10
  60725. BB1
  60726. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60727. void Deopt %1.0
  60728. Prom 0:
  60729. BB0
  60730. env e0.0 = LdFunctionEnv
  60731. val^? %0.1 = LdVar seed, e0.0
  60732. val %0.2 = Force %0.1, e0.0
  60733. real$' %0.3 = LdConst [1] 1309
  60734. goto BB1
  60735. BB1
  60736. val %1.0 = Mul %0.2, %0.3, e0.0
  60737. real$' %1.1 = LdConst [1] 13849
  60738. goto BB2
  60739. BB2
  60740. val %2.0 = Add %1.0, %1.1, e0.0
  60741. void Return %2.0
  60742. ├────── Cleanup redundant operations: == 656
  60743. test>nextRandom@53[0x7f9244559020]
  60744. BB0
  60745. env e0.0 = MkEnv parent=?
  60746. cls %0.1 = LdFun bitwAnd, e0.0
  60747. prom %0.2 = MkArg missing, Prom(0), e0.0
  60748. real$' %0.3 = LdConst [1] 65535
  60749. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60750. BB2
  60751. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60752. t %2.1 = Identical %0.1, %2.0
  60753. void Assume %2.1, %0.4
  60754. val^? %2.3 = CastType %0.2
  60755. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60756. val %2.5 = Force! %2.3, e2.4
  60757. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60758. val %2.7 = Force %2.6, e2.4
  60759. void StVarSuper seed, %2.7, e0.0
  60760. val^? %2.9 = LdVar seed, e0.0
  60761. val %2.10 = Force %2.9, e0.0
  60762. void Return %2.10
  60763. BB1
  60764. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60765. void Deopt %1.0
  60766. Prom 0:
  60767. BB0
  60768. env e0.0 = LdFunctionEnv
  60769. val^? %0.1 = LdVar seed, e0.0
  60770. val %0.2 = Force %0.1, e0.0
  60771. real$' %0.3 = LdConst [1] 1309
  60772. goto BB1
  60773. BB1
  60774. val %1.0 = Mul %0.2, %0.3, e0.0
  60775. real$' %1.1 = LdConst [1] 13849
  60776. goto BB2
  60777. BB2
  60778. val %2.0 = Add %1.0, %1.1, e0.0
  60779. void Return %2.0
  60780. ├────── Inline closures: == 663
  60781. test>nextRandom@53[0x7f9244559020]
  60782. BB0
  60783. env e0.0 = MkEnv parent=?
  60784. cls %0.1 = LdFun bitwAnd, e0.0
  60785. prom %0.2 = MkArg missing, Prom(0), e0.0
  60786. real$' %0.3 = LdConst [1] 65535
  60787. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60788. BB2
  60789. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60790. t %2.1 = Identical %0.1, %2.0
  60791. void Assume %2.1, %0.4
  60792. val^? %2.3 = CastType %0.2
  60793. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60794. val %2.5 = Force! %2.3, e2.4
  60795. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60796. val %2.7 = Force %2.6, e2.4
  60797. void StVarSuper seed, %2.7, e0.0
  60798. val^? %2.9 = LdVar seed, e0.0
  60799. val %2.10 = Force %2.9, e0.0
  60800. void Return %2.10
  60801. BB1
  60802. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60803. void Deopt %1.0
  60804. Prom 0:
  60805. BB0
  60806. env e0.0 = LdFunctionEnv
  60807. val^? %0.1 = LdVar seed, e0.0
  60808. val %0.2 = Force %0.1, e0.0
  60809. real$' %0.3 = LdConst [1] 1309
  60810. goto BB1
  60811. BB1
  60812. val %1.0 = Mul %0.2, %0.3, e0.0
  60813. real$' %1.1 = LdConst [1] 13849
  60814. goto BB2
  60815. BB2
  60816. val %2.0 = Add %1.0, %1.1, e0.0
  60817. void Return %2.0
  60818. ├────── Inline Promises: == 670
  60819. test>nextRandom@53[0x7f9244559020]
  60820. BB0
  60821. env e0.0 = MkEnv parent=?
  60822. cls %0.1 = LdFun bitwAnd, e0.0
  60823. prom %0.2 = MkArg missing, Prom(0), e0.0
  60824. real$' %0.3 = LdConst [1] 65535
  60825. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60826. BB2
  60827. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60828. t %2.1 = Identical %0.1, %2.0
  60829. void Assume %2.1, %0.4
  60830. val^? %2.3 = CastType %0.2
  60831. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60832. val %2.5 = Force! %2.3, e2.4
  60833. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60834. val %2.7 = Force %2.6, e2.4
  60835. void StVarSuper seed, %2.7, e0.0
  60836. val^? %2.9 = LdVar seed, e0.0
  60837. val %2.10 = Force %2.9, e0.0
  60838. void Return %2.10
  60839. BB1
  60840. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60841. void Deopt %1.0
  60842. Prom 0:
  60843. BB0
  60844. env e0.0 = LdFunctionEnv
  60845. val^? %0.1 = LdVar seed, e0.0
  60846. val %0.2 = Force %0.1, e0.0
  60847. real$' %0.3 = LdConst [1] 1309
  60848. goto BB1
  60849. BB1
  60850. val %1.0 = Mul %0.2, %0.3, e0.0
  60851. real$' %1.1 = LdConst [1] 13849
  60852. goto BB2
  60853. BB2
  60854. val %2.0 = Add %1.0, %1.1, e0.0
  60855. void Return %2.0
  60856. ├────── Scope resolution: == 677
  60857. test>nextRandom@53[0x7f9244559020]
  60858. BB0
  60859. env e0.0 = MkEnv parent=?
  60860. cls %0.1 = LdFun bitwAnd, e0.0
  60861. prom %0.2 = MkArg missing, Prom(0), e0.0
  60862. real$' %0.3 = LdConst [1] 65535
  60863. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60864. BB2
  60865. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60866. t %2.1 = Identical %0.1, %2.0
  60867. void Assume %2.1, %0.4
  60868. val^? %2.3 = CastType %0.2
  60869. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60870. val %2.5 = Force! %2.3, e2.4
  60871. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60872. val %2.7 = Force %2.6, e2.4
  60873. void StVarSuper seed, %2.7, e0.0
  60874. val^? %2.9 = LdVar seed, e0.0
  60875. val %2.10 = Force %2.9, e0.0
  60876. void Return %2.10
  60877. BB1
  60878. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60879. void Deopt %1.0
  60880. Prom 0:
  60881. BB0
  60882. env e0.0 = LdFunctionEnv
  60883. val^? %0.1 = LdVar seed, e0.0
  60884. val %0.2 = Force %0.1, e0.0
  60885. real$' %0.3 = LdConst [1] 1309
  60886. goto BB1
  60887. BB1
  60888. val %1.0 = Mul %0.2, %0.3, e0.0
  60889. real$' %1.1 = LdConst [1] 13849
  60890. goto BB2
  60891. BB2
  60892. val %2.0 = Add %1.0, %1.1, e0.0
  60893. void Return %2.0
  60894. ├────── Constant folding: == 684
  60895. test>nextRandom@53[0x7f9244559020]
  60896. BB0
  60897. env e0.0 = MkEnv parent=?
  60898. cls %0.1 = LdFun bitwAnd, e0.0
  60899. prom %0.2 = MkArg missing, Prom(0), e0.0
  60900. real$' %0.3 = LdConst [1] 65535
  60901. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60902. BB2
  60903. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60904. t %2.1 = Identical %0.1, %2.0
  60905. void Assume %2.1, %0.4
  60906. val^? %2.3 = CastType %0.2
  60907. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60908. val %2.5 = Force! %2.3, e2.4
  60909. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60910. val %2.7 = Force %2.6, e2.4
  60911. void StVarSuper seed, %2.7, e0.0
  60912. val^? %2.9 = LdVar seed, e0.0
  60913. val %2.10 = Force %2.9, e0.0
  60914. void Return %2.10
  60915. BB1
  60916. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60917. void Deopt %1.0
  60918. Prom 0:
  60919. BB0
  60920. env e0.0 = LdFunctionEnv
  60921. val^? %0.1 = LdVar seed, e0.0
  60922. val %0.2 = Force %0.1, e0.0
  60923. real$' %0.3 = LdConst [1] 1309
  60924. goto BB1
  60925. BB1
  60926. val %1.0 = Mul %0.2, %0.3, e0.0
  60927. real$' %1.1 = LdConst [1] 13849
  60928. goto BB2
  60929. BB2
  60930. val %2.0 = Add %1.0, %1.1, e0.0
  60931. void Return %2.0
  60932. ├────── Cleanup redundant operations: == 691
  60933. test>nextRandom@53[0x7f9244559020]
  60934. BB0
  60935. env e0.0 = MkEnv parent=?
  60936. cls %0.1 = LdFun bitwAnd, e0.0
  60937. prom %0.2 = MkArg missing, Prom(0), e0.0
  60938. real$' %0.3 = LdConst [1] 65535
  60939. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60940. BB2
  60941. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60942. t %2.1 = Identical %0.1, %2.0
  60943. void Assume %2.1, %0.4
  60944. val^? %2.3 = CastType %0.2
  60945. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60946. val %2.5 = Force! %2.3, e2.4
  60947. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60948. val %2.7 = Force %2.6, e2.4
  60949. void StVarSuper seed, %2.7, e0.0
  60950. val^? %2.9 = LdVar seed, e0.0
  60951. val %2.10 = Force %2.9, e0.0
  60952. void Return %2.10
  60953. BB1
  60954. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60955. void Deopt %1.0
  60956. Prom 0:
  60957. BB0
  60958. env e0.0 = LdFunctionEnv
  60959. val^? %0.1 = LdVar seed, e0.0
  60960. val %0.2 = Force %0.1, e0.0
  60961. real$' %0.3 = LdConst [1] 1309
  60962. goto BB1
  60963. BB1
  60964. val %1.0 = Mul %0.2, %0.3, e0.0
  60965. real$' %1.1 = LdConst [1] 13849
  60966. goto BB2
  60967. BB2
  60968. val %2.0 = Add %1.0, %1.1, e0.0
  60969. void Return %2.0
  60970. ├────── Delay instructions: == 698
  60971. test>nextRandom@53[0x7f9244559020]
  60972. BB0
  60973. env e0.0 = MkEnv parent=?
  60974. cls %0.1 = LdFun bitwAnd, e0.0
  60975. prom %0.2 = MkArg missing, Prom(0), e0.0
  60976. real$' %0.3 = LdConst [1] 65535
  60977. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  60978. BB2
  60979. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  60980. t %2.1 = Identical %0.1, %2.0
  60981. void Assume %2.1, %0.4
  60982. val^? %2.3 = CastType %0.2
  60983. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  60984. val %2.5 = Force! %2.3, e2.4
  60985. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  60986. val %2.7 = Force %2.6, e2.4
  60987. void StVarSuper seed, %2.7, e0.0
  60988. val^? %2.9 = LdVar seed, e0.0
  60989. val %2.10 = Force %2.9, e0.0
  60990. void Return %2.10
  60991. BB1
  60992. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  60993. void Deopt %1.0
  60994. Prom 0:
  60995. BB0
  60996. env e0.0 = LdFunctionEnv
  60997. val^? %0.1 = LdVar seed, e0.0
  60998. val %0.2 = Force %0.1, e0.0
  60999. real$' %0.3 = LdConst [1] 1309
  61000. goto BB1
  61001. BB1
  61002. val %1.0 = Mul %0.2, %0.3, e0.0
  61003. real$' %1.1 = LdConst [1] 13849
  61004. goto BB2
  61005. BB2
  61006. val %2.0 = Add %1.0, %1.1, e0.0
  61007. void Return %2.0
  61008. ├────── Elide environments not needed: == 705
  61009. test>nextRandom@53[0x7f9244559020]
  61010. BB0
  61011. env e0.0 = MkEnv parent=?
  61012. cls %0.1 = LdFun bitwAnd, e0.0
  61013. prom %0.2 = MkArg missing, Prom(0), e0.0
  61014. real$' %0.3 = LdConst [1] 65535
  61015. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61016. BB2
  61017. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61018. t %2.1 = Identical %0.1, %2.0
  61019. void Assume %2.1, %0.4
  61020. val^? %2.3 = CastType %0.2
  61021. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61022. val %2.5 = Force! %2.3, e2.4
  61023. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61024. val %2.7 = Force %2.6, e2.4
  61025. void StVarSuper seed, %2.7, e0.0
  61026. val^? %2.9 = LdVar seed, e0.0
  61027. val %2.10 = Force %2.9, e0.0
  61028. void Return %2.10
  61029. BB1
  61030. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61031. void Deopt %1.0
  61032. Prom 0:
  61033. BB0
  61034. env e0.0 = LdFunctionEnv
  61035. val^? %0.1 = LdVar seed, e0.0
  61036. val %0.2 = Force %0.1, e0.0
  61037. real$' %0.3 = LdConst [1] 1309
  61038. goto BB1
  61039. BB1
  61040. val %1.0 = Mul %0.2, %0.3, e0.0
  61041. real$' %1.1 = LdConst [1] 13849
  61042. goto BB2
  61043. BB2
  61044. val %2.0 = Add %1.0, %1.1, e0.0
  61045. void Return %2.0
  61046. ├────── Move environment creation as far as possible: == 712
  61047. test>nextRandom@53[0x7f9244559020]
  61048. BB0
  61049. env e0.0 = MkEnv parent=?
  61050. cls %0.1 = LdFun bitwAnd, e0.0
  61051. prom %0.2 = MkArg missing, Prom(0), e0.0
  61052. real$' %0.3 = LdConst [1] 65535
  61053. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61054. BB2
  61055. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61056. t %2.1 = Identical %0.1, %2.0
  61057. void Assume %2.1, %0.4
  61058. val^? %2.3 = CastType %0.2
  61059. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61060. val %2.5 = Force! %2.3, e2.4
  61061. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61062. val %2.7 = Force %2.6, e2.4
  61063. void StVarSuper seed, %2.7, e0.0
  61064. val^? %2.9 = LdVar seed, e0.0
  61065. val %2.10 = Force %2.9, e0.0
  61066. void Return %2.10
  61067. BB1
  61068. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61069. void Deopt %1.0
  61070. Prom 0:
  61071. BB0
  61072. env e0.0 = LdFunctionEnv
  61073. val^? %0.1 = LdVar seed, e0.0
  61074. val %0.2 = Force %0.1, e0.0
  61075. real$' %0.3 = LdConst [1] 1309
  61076. goto BB1
  61077. BB1
  61078. val %1.0 = Mul %0.2, %0.3, e0.0
  61079. real$' %1.1 = LdConst [1] 13849
  61080. goto BB2
  61081. BB2
  61082. val %2.0 = Add %1.0, %1.1, e0.0
  61083. void Return %2.0
  61084. ├────── Cleanup redundant operations: == 719
  61085. test>nextRandom@53[0x7f9244559020]
  61086. BB0
  61087. env e0.0 = MkEnv parent=?
  61088. cls %0.1 = LdFun bitwAnd, e0.0
  61089. prom %0.2 = MkArg missing, Prom(0), e0.0
  61090. real$' %0.3 = LdConst [1] 65535
  61091. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61092. BB2
  61093. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61094. t %2.1 = Identical %0.1, %2.0
  61095. void Assume %2.1, %0.4
  61096. val^? %2.3 = CastType %0.2
  61097. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61098. val %2.5 = Force! %2.3, e2.4
  61099. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61100. val %2.7 = Force %2.6, e2.4
  61101. void StVarSuper seed, %2.7, e0.0
  61102. val^? %2.9 = LdVar seed, e0.0
  61103. val %2.10 = Force %2.9, e0.0
  61104. void Return %2.10
  61105. BB1
  61106. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61107. void Deopt %1.0
  61108. Prom 0:
  61109. BB0
  61110. env e0.0 = LdFunctionEnv
  61111. val^? %0.1 = LdVar seed, e0.0
  61112. val %0.2 = Force %0.1, e0.0
  61113. real$' %0.3 = LdConst [1] 1309
  61114. goto BB1
  61115. BB1
  61116. val %1.0 = Mul %0.2, %0.3, e0.0
  61117. real$' %1.1 = LdConst [1] 13849
  61118. goto BB2
  61119. BB2
  61120. val %2.0 = Add %1.0, %1.1, e0.0
  61121. void Return %2.0
  61122. ├────── Inline closures: == 726
  61123. test>nextRandom@53[0x7f9244559020]
  61124. BB0
  61125. env e0.0 = MkEnv parent=?
  61126. cls %0.1 = LdFun bitwAnd, e0.0
  61127. prom %0.2 = MkArg missing, Prom(0), e0.0
  61128. real$' %0.3 = LdConst [1] 65535
  61129. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61130. BB2
  61131. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61132. t %2.1 = Identical %0.1, %2.0
  61133. void Assume %2.1, %0.4
  61134. val^? %2.3 = CastType %0.2
  61135. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61136. val %2.5 = Force! %2.3, e2.4
  61137. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61138. val %2.7 = Force %2.6, e2.4
  61139. void StVarSuper seed, %2.7, e0.0
  61140. val^? %2.9 = LdVar seed, e0.0
  61141. val %2.10 = Force %2.9, e0.0
  61142. void Return %2.10
  61143. BB1
  61144. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61145. void Deopt %1.0
  61146. Prom 0:
  61147. BB0
  61148. env e0.0 = LdFunctionEnv
  61149. val^? %0.1 = LdVar seed, e0.0
  61150. val %0.2 = Force %0.1, e0.0
  61151. real$' %0.3 = LdConst [1] 1309
  61152. goto BB1
  61153. BB1
  61154. val %1.0 = Mul %0.2, %0.3, e0.0
  61155. real$' %1.1 = LdConst [1] 13849
  61156. goto BB2
  61157. BB2
  61158. val %2.0 = Add %1.0, %1.1, e0.0
  61159. void Return %2.0
  61160. ├────── Inline Promises: == 733
  61161. test>nextRandom@53[0x7f9244559020]
  61162. BB0
  61163. env e0.0 = MkEnv parent=?
  61164. cls %0.1 = LdFun bitwAnd, e0.0
  61165. prom %0.2 = MkArg missing, Prom(0), e0.0
  61166. real$' %0.3 = LdConst [1] 65535
  61167. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61168. BB2
  61169. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61170. t %2.1 = Identical %0.1, %2.0
  61171. void Assume %2.1, %0.4
  61172. val^? %2.3 = CastType %0.2
  61173. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61174. val %2.5 = Force! %2.3, e2.4
  61175. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61176. val %2.7 = Force %2.6, e2.4
  61177. void StVarSuper seed, %2.7, e0.0
  61178. val^? %2.9 = LdVar seed, e0.0
  61179. val %2.10 = Force %2.9, e0.0
  61180. void Return %2.10
  61181. BB1
  61182. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61183. void Deopt %1.0
  61184. Prom 0:
  61185. BB0
  61186. env e0.0 = LdFunctionEnv
  61187. val^? %0.1 = LdVar seed, e0.0
  61188. val %0.2 = Force %0.1, e0.0
  61189. real$' %0.3 = LdConst [1] 1309
  61190. goto BB1
  61191. BB1
  61192. val %1.0 = Mul %0.2, %0.3, e0.0
  61193. real$' %1.1 = LdConst [1] 13849
  61194. goto BB2
  61195. BB2
  61196. val %2.0 = Add %1.0, %1.1, e0.0
  61197. void Return %2.0
  61198. ├────── Scope resolution: == 740
  61199. test>nextRandom@53[0x7f9244559020]
  61200. BB0
  61201. env e0.0 = MkEnv parent=?
  61202. cls %0.1 = LdFun bitwAnd, e0.0
  61203. prom %0.2 = MkArg missing, Prom(0), e0.0
  61204. real$' %0.3 = LdConst [1] 65535
  61205. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61206. BB2
  61207. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61208. t %2.1 = Identical %0.1, %2.0
  61209. void Assume %2.1, %0.4
  61210. val^? %2.3 = CastType %0.2
  61211. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61212. val %2.5 = Force! %2.3, e2.4
  61213. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61214. val %2.7 = Force %2.6, e2.4
  61215. void StVarSuper seed, %2.7, e0.0
  61216. val^? %2.9 = LdVar seed, e0.0
  61217. val %2.10 = Force %2.9, e0.0
  61218. void Return %2.10
  61219. BB1
  61220. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61221. void Deopt %1.0
  61222. Prom 0:
  61223. BB0
  61224. env e0.0 = LdFunctionEnv
  61225. val^? %0.1 = LdVar seed, e0.0
  61226. val %0.2 = Force %0.1, e0.0
  61227. real$' %0.3 = LdConst [1] 1309
  61228. goto BB1
  61229. BB1
  61230. val %1.0 = Mul %0.2, %0.3, e0.0
  61231. real$' %1.1 = LdConst [1] 13849
  61232. goto BB2
  61233. BB2
  61234. val %2.0 = Add %1.0, %1.1, e0.0
  61235. void Return %2.0
  61236. ├────── Constant folding: == 747
  61237. test>nextRandom@53[0x7f9244559020]
  61238. BB0
  61239. env e0.0 = MkEnv parent=?
  61240. cls %0.1 = LdFun bitwAnd, e0.0
  61241. prom %0.2 = MkArg missing, Prom(0), e0.0
  61242. real$' %0.3 = LdConst [1] 65535
  61243. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61244. BB2
  61245. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61246. t %2.1 = Identical %0.1, %2.0
  61247. void Assume %2.1, %0.4
  61248. val^? %2.3 = CastType %0.2
  61249. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61250. val %2.5 = Force! %2.3, e2.4
  61251. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61252. val %2.7 = Force %2.6, e2.4
  61253. void StVarSuper seed, %2.7, e0.0
  61254. val^? %2.9 = LdVar seed, e0.0
  61255. val %2.10 = Force %2.9, e0.0
  61256. void Return %2.10
  61257. BB1
  61258. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61259. void Deopt %1.0
  61260. Prom 0:
  61261. BB0
  61262. env e0.0 = LdFunctionEnv
  61263. val^? %0.1 = LdVar seed, e0.0
  61264. val %0.2 = Force %0.1, e0.0
  61265. real$' %0.3 = LdConst [1] 1309
  61266. goto BB1
  61267. BB1
  61268. val %1.0 = Mul %0.2, %0.3, e0.0
  61269. real$' %1.1 = LdConst [1] 13849
  61270. goto BB2
  61271. BB2
  61272. val %2.0 = Add %1.0, %1.1, e0.0
  61273. void Return %2.0
  61274. ├────── Cleanup redundant operations: == 754
  61275. test>nextRandom@53[0x7f9244559020]
  61276. BB0
  61277. env e0.0 = MkEnv parent=?
  61278. cls %0.1 = LdFun bitwAnd, e0.0
  61279. prom %0.2 = MkArg missing, Prom(0), e0.0
  61280. real$' %0.3 = LdConst [1] 65535
  61281. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61282. BB2
  61283. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61284. t %2.1 = Identical %0.1, %2.0
  61285. void Assume %2.1, %0.4
  61286. val^? %2.3 = CastType %0.2
  61287. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61288. val %2.5 = Force! %2.3, e2.4
  61289. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61290. val %2.7 = Force %2.6, e2.4
  61291. void StVarSuper seed, %2.7, e0.0
  61292. val^? %2.9 = LdVar seed, e0.0
  61293. val %2.10 = Force %2.9, e0.0
  61294. void Return %2.10
  61295. BB1
  61296. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61297. void Deopt %1.0
  61298. Prom 0:
  61299. BB0
  61300. env e0.0 = LdFunctionEnv
  61301. val^? %0.1 = LdVar seed, e0.0
  61302. val %0.2 = Force %0.1, e0.0
  61303. real$' %0.3 = LdConst [1] 1309
  61304. goto BB1
  61305. BB1
  61306. val %1.0 = Mul %0.2, %0.3, e0.0
  61307. real$' %1.1 = LdConst [1] 13849
  61308. goto BB2
  61309. BB2
  61310. val %2.0 = Add %1.0, %1.1, e0.0
  61311. void Return %2.0
  61312. ├────── Delay instructions: == 761
  61313. test>nextRandom@53[0x7f9244559020]
  61314. BB0
  61315. env e0.0 = MkEnv parent=?
  61316. cls %0.1 = LdFun bitwAnd, e0.0
  61317. prom %0.2 = MkArg missing, Prom(0), e0.0
  61318. real$' %0.3 = LdConst [1] 65535
  61319. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61320. BB2
  61321. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61322. t %2.1 = Identical %0.1, %2.0
  61323. void Assume %2.1, %0.4
  61324. val^? %2.3 = CastType %0.2
  61325. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61326. val %2.5 = Force! %2.3, e2.4
  61327. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61328. val %2.7 = Force %2.6, e2.4
  61329. void StVarSuper seed, %2.7, e0.0
  61330. val^? %2.9 = LdVar seed, e0.0
  61331. val %2.10 = Force %2.9, e0.0
  61332. void Return %2.10
  61333. BB1
  61334. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61335. void Deopt %1.0
  61336. Prom 0:
  61337. BB0
  61338. env e0.0 = LdFunctionEnv
  61339. val^? %0.1 = LdVar seed, e0.0
  61340. val %0.2 = Force %0.1, e0.0
  61341. real$' %0.3 = LdConst [1] 1309
  61342. goto BB1
  61343. BB1
  61344. val %1.0 = Mul %0.2, %0.3, e0.0
  61345. real$' %1.1 = LdConst [1] 13849
  61346. goto BB2
  61347. BB2
  61348. val %2.0 = Add %1.0, %1.1, e0.0
  61349. void Return %2.0
  61350. ├────── Elide environments not needed: == 768
  61351. test>nextRandom@53[0x7f9244559020]
  61352. BB0
  61353. env e0.0 = MkEnv parent=?
  61354. cls %0.1 = LdFun bitwAnd, e0.0
  61355. prom %0.2 = MkArg missing, Prom(0), e0.0
  61356. real$' %0.3 = LdConst [1] 65535
  61357. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61358. BB2
  61359. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61360. t %2.1 = Identical %0.1, %2.0
  61361. void Assume %2.1, %0.4
  61362. val^? %2.3 = CastType %0.2
  61363. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61364. val %2.5 = Force! %2.3, e2.4
  61365. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61366. val %2.7 = Force %2.6, e2.4
  61367. void StVarSuper seed, %2.7, e0.0
  61368. val^? %2.9 = LdVar seed, e0.0
  61369. val %2.10 = Force %2.9, e0.0
  61370. void Return %2.10
  61371. BB1
  61372. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61373. void Deopt %1.0
  61374. Prom 0:
  61375. BB0
  61376. env e0.0 = LdFunctionEnv
  61377. val^? %0.1 = LdVar seed, e0.0
  61378. val %0.2 = Force %0.1, e0.0
  61379. real$' %0.3 = LdConst [1] 1309
  61380. goto BB1
  61381. BB1
  61382. val %1.0 = Mul %0.2, %0.3, e0.0
  61383. real$' %1.1 = LdConst [1] 13849
  61384. goto BB2
  61385. BB2
  61386. val %2.0 = Add %1.0, %1.1, e0.0
  61387. void Return %2.0
  61388. ├────── Move environment creation as far as possible: == 775
  61389. test>nextRandom@53[0x7f9244559020]
  61390. BB0
  61391. env e0.0 = MkEnv parent=?
  61392. cls %0.1 = LdFun bitwAnd, e0.0
  61393. prom %0.2 = MkArg missing, Prom(0), e0.0
  61394. real$' %0.3 = LdConst [1] 65535
  61395. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61396. BB2
  61397. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61398. t %2.1 = Identical %0.1, %2.0
  61399. void Assume %2.1, %0.4
  61400. val^? %2.3 = CastType %0.2
  61401. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61402. val %2.5 = Force! %2.3, e2.4
  61403. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61404. val %2.7 = Force %2.6, e2.4
  61405. void StVarSuper seed, %2.7, e0.0
  61406. val^? %2.9 = LdVar seed, e0.0
  61407. val %2.10 = Force %2.9, e0.0
  61408. void Return %2.10
  61409. BB1
  61410. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61411. void Deopt %1.0
  61412. Prom 0:
  61413. BB0
  61414. env e0.0 = LdFunctionEnv
  61415. val^? %0.1 = LdVar seed, e0.0
  61416. val %0.2 = Force %0.1, e0.0
  61417. real$' %0.3 = LdConst [1] 1309
  61418. goto BB1
  61419. BB1
  61420. val %1.0 = Mul %0.2, %0.3, e0.0
  61421. real$' %1.1 = LdConst [1] 13849
  61422. goto BB2
  61423. BB2
  61424. val %2.0 = Add %1.0, %1.1, e0.0
  61425. void Return %2.0
  61426. ├────── Cleanup redundant operations: == 782
  61427. test>nextRandom@53[0x7f9244559020]
  61428. BB0
  61429. env e0.0 = MkEnv parent=?
  61430. cls %0.1 = LdFun bitwAnd, e0.0
  61431. prom %0.2 = MkArg missing, Prom(0), e0.0
  61432. real$' %0.3 = LdConst [1] 65535
  61433. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61434. BB2
  61435. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61436. t %2.1 = Identical %0.1, %2.0
  61437. void Assume %2.1, %0.4
  61438. val^? %2.3 = CastType %0.2
  61439. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61440. val %2.5 = Force! %2.3, e2.4
  61441. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61442. val %2.7 = Force %2.6, e2.4
  61443. void StVarSuper seed, %2.7, e0.0
  61444. val^? %2.9 = LdVar seed, e0.0
  61445. val %2.10 = Force %2.9, e0.0
  61446. void Return %2.10
  61447. BB1
  61448. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61449. void Deopt %1.0
  61450. Prom 0:
  61451. BB0
  61452. env e0.0 = LdFunctionEnv
  61453. val^? %0.1 = LdVar seed, e0.0
  61454. val %0.2 = Force %0.1, e0.0
  61455. real$' %0.3 = LdConst [1] 1309
  61456. goto BB1
  61457. BB1
  61458. val %1.0 = Mul %0.2, %0.3, e0.0
  61459. real$' %1.1 = LdConst [1] 13849
  61460. goto BB2
  61461. BB2
  61462. val %2.0 = Add %1.0, %1.1, e0.0
  61463. void Return %2.0
  61464. ├────── Inline closures: == 789
  61465. test>nextRandom@53[0x7f9244559020]
  61466. BB0
  61467. env e0.0 = MkEnv parent=?
  61468. cls %0.1 = LdFun bitwAnd, e0.0
  61469. prom %0.2 = MkArg missing, Prom(0), e0.0
  61470. real$' %0.3 = LdConst [1] 65535
  61471. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61472. BB2
  61473. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61474. t %2.1 = Identical %0.1, %2.0
  61475. void Assume %2.1, %0.4
  61476. val^? %2.3 = CastType %0.2
  61477. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61478. val %2.5 = Force! %2.3, e2.4
  61479. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61480. val %2.7 = Force %2.6, e2.4
  61481. void StVarSuper seed, %2.7, e0.0
  61482. val^? %2.9 = LdVar seed, e0.0
  61483. val %2.10 = Force %2.9, e0.0
  61484. void Return %2.10
  61485. BB1
  61486. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61487. void Deopt %1.0
  61488. Prom 0:
  61489. BB0
  61490. env e0.0 = LdFunctionEnv
  61491. val^? %0.1 = LdVar seed, e0.0
  61492. val %0.2 = Force %0.1, e0.0
  61493. real$' %0.3 = LdConst [1] 1309
  61494. goto BB1
  61495. BB1
  61496. val %1.0 = Mul %0.2, %0.3, e0.0
  61497. real$' %1.1 = LdConst [1] 13849
  61498. goto BB2
  61499. BB2
  61500. val %2.0 = Add %1.0, %1.1, e0.0
  61501. void Return %2.0
  61502. ├────── Speculate on values to elide environments: == 796
  61503. test>nextRandom@53[0x7f9244559020]
  61504. BB0
  61505. env e0.0 = MkEnv parent=?
  61506. cls %0.1 = LdFun bitwAnd, e0.0
  61507. prom %0.2 = MkArg missing, Prom(0), e0.0
  61508. real$' %0.3 = LdConst [1] 65535
  61509. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61510. BB2
  61511. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61512. t %2.1 = Identical %0.1, %2.0
  61513. void Assume %2.1, %0.4
  61514. val^? %2.3 = CastType %0.2
  61515. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61516. val %2.5 = Force! %2.3, e2.4
  61517. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61518. val %2.7 = Force %2.6, e2.4
  61519. void StVarSuper seed, %2.7, e0.0
  61520. val^? %2.9 = LdVar seed, e0.0
  61521. val %2.10 = Force %2.9, e0.0
  61522. void Return %2.10
  61523. BB1
  61524. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61525. void Deopt %1.0
  61526. Prom 0:
  61527. BB0
  61528. env e0.0 = LdFunctionEnv
  61529. val^? %0.1 = LdVar seed, e0.0
  61530. val %0.2 = Force %0.1, e0.0
  61531. real$' %0.3 = LdConst [1] 1309
  61532. goto BB1
  61533. BB1
  61534. val %1.0 = Mul %0.2, %0.3, e0.0
  61535. real$' %1.1 = LdConst [1] 13849
  61536. goto BB2
  61537. BB2
  61538. val %2.0 = Add %1.0, %1.1, e0.0
  61539. void Return %2.0
  61540. ├────── Cleanup unused checkpoints: == 803
  61541. test>nextRandom@53[0x7f9244559020]
  61542. BB0
  61543. env e0.0 = MkEnv parent=?
  61544. cls %0.1 = LdFun bitwAnd, e0.0
  61545. prom %0.2 = MkArg missing, Prom(0), e0.0
  61546. real$' %0.3 = LdConst [1] 65535
  61547. cp %0.4 = Checkpoint -> BB2 (by default) | BB1 (if coming from expect)
  61548. BB2
  61549. cls' %2.0 = LdConst function (a, b) .Internal(bitwiseAnd...
  61550. t %2.1 = Identical %0.1, %2.0
  61551. void Assume %2.1, %0.4
  61552. val^? %2.3 = CastType %0.2
  61553. env e2.4 = MkEnv a=%2.3, b=%0.3, parent=<environment: namespace:base>
  61554. val %2.5 = Force! %2.3, e2.4
  61555. val^ %2.6 = CallBuiltin bitwiseAnd(%2.5, %0.3) e2.4
  61556. val %2.7 = Force %2.6, e2.4
  61557. void StVarSuper seed, %2.7, e0.0
  61558. val^? %2.9 = LdVar seed, e0.0
  61559. val %2.10 = Force %2.9, e0.0
  61560. void Return %2.10
  61561. BB1
  61562. fs %1.0 = FrameState 0x7f924450b7b0+48: [%0.1], env=e0.0
  61563. void Deopt %1.0
  61564. Prom 0:
  61565. BB0
  61566. env e0.0 = LdFunctionEnv
  61567. val^? %0.1 = LdVar seed, e0.0
  61568. val %0.2 = Force %0.1, e0.0
  61569. real$' %0.3 = LdConst [1] 1309
  61570. goto BB1
  61571. BB1
  61572. val %1.0 = Mul %0.2, %0.3, e0.0
  61573. real$' %1.1 = LdConst [1] 13849
  61574. goto BB2
  61575. BB2
  61576. val %2.0 = Add %1.0, %1.1, e0.0
  61577. void Return %2.0
  61578. │ test>nextRandom@53[0x7f9244559020] │
  61579. └──────────────────────────────────────────────────────────────────────────────┘
  61580. function ()
  61581. {
  61582. seed <- 74755
  61583. nextRandom <- function() {
  61584. seed <<- bitwAnd((seed * 1309) + 13849, 65535)
  61585. return(seed)
  61586. }
  61587. buildTreeDepth <- function(depth, random) {
  61588. if (depth == 1) {
  61589. return(c(nextRandom()%%10 + 1))
  61590. }
  61591. else {
  61592. array <- vector("list", length = 4)
  61593. for (i in 1:4) {
  61594. array[[i]] <- buildTreeDepth(depth - 1, random)
  61595. }
  61596. return(array)
  61597. }
  61598. }
  61599. buildTreeDepth(2, nextRandom())
  61600. }
  61601. <bytecode: 0x7f9247266118>
  61602. >
Add Comment
Please, Sign In to add comment