Here is the output from running with all IRHydra flags.
Last active
August 29, 2015 14:21
-
-
Save trevnorris/8160de664e5b594576b0 to your computer and use it in GitHub Desktop.
Artifacts for https://github.com/mraleph/irhydra/issues/44
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- FUNCTION SOURCE (runSplice) id{0,0} --- | |
(arr, index) { | |
for (var i = 0; i < 1e7; i++) { | |
arr.splice(index, 1); | |
arr.push(100); | |
} | |
} | |
--- END --- | |
--- Raw source --- | |
(arr, index) { | |
for (var i = 0; i < 1e7; i++) { | |
arr.splice(index, 1); | |
arr.push(100); | |
} | |
} | |
--- Optimized code --- | |
optimization_id = 0 | |
source_position = 33 | |
kind = OPTIMIZED_FUNCTION | |
name = runSplice | |
stack_slots = 8 | |
Instructions (size = 636) | |
0x20d3f3c36500 0 55 push rbp | |
0x20d3f3c36501 1 4889e5 REX.W movq rbp,rsp | |
0x20d3f3c36504 4 56 push rsi | |
0x20d3f3c36505 5 57 push rdi | |
0x20d3f3c36506 6 4883ec40 REX.W subq rsp,0x40 | |
;;; <@0,#0> -------------------- B0 -------------------- | |
;;; <@2,#1> context | |
0x20d3f3c3650a 10 488b45f8 REX.W movq rax,[rbp-0x8] ;; debug: position 33 | |
;;; <@3,#1> gap | |
0x20d3f3c3650e 14 488945e0 REX.W movq [rbp-0x20],rax | |
;;; <@12,#9> -------------------- B1 -------------------- | |
;;; <@13,#9> gap | |
0x20d3f3c36512 18 488bf0 REX.W movq rsi,rax | |
;;; <@14,#11> stack-check | |
0x20d3f3c36515 21 493ba530080000 REX.W cmpq rsp,[r13+0x830] | |
0x20d3f3c3651c 28 7305 jnc 35 (0x20d3f3c36523) | |
0x20d3f3c3651e 30 e89db4ffff call StackCheck (0x20d3f3c319c0) ;; code: BUILTIN | |
;;; <@16,#11> lazy-bailout | |
;;; <@19,#15> goto | |
0x20d3f3c36523 35 e92c000000 jmp 84 (0x20d3f3c36554) ;; debug: position 50 | |
;;; <@20,#19> -------------------- B2 (OSR entry) -------------------- | |
0x20d3f3c36528 40 4883ec38 REX.W subq rsp,0x38 | |
;;; <@34,#27> context | |
0x20d3f3c3652c 44 488b75f8 REX.W movq rsi,[rbp-0x8] | |
;;; <@35,#27> gap | |
0x20d3f3c36530 48 488b45e8 REX.W movq rax,[rbp-0x18] | |
;;; <@36,#117> tagged-to-i | |
0x20d3f3c36534 52 a801 test al,0x1 | |
0x20d3f3c36536 54 0f8567010000 jnz 419 (0x20d3f3c366a3) | |
0x20d3f3c3653c 60 48c1e820 REX.W shrq rax, 32 | |
;;; <@38,#29> gap | |
0x20d3f3c36540 64 488bde REX.W movq rbx,rsi | |
0x20d3f3c36543 67 488b7520 REX.W movq rsi,[rbp+0x20] | |
0x20d3f3c36547 71 488b4d18 REX.W movq rcx,[rbp+0x18] | |
0x20d3f3c3654b 75 488b5510 REX.W movq rdx,[rbp+0x10] | |
;;; <@39,#29> goto | |
0x20d3f3c3654f 79 e912000000 jmp 102 (0x20d3f3c36566) | |
;;; <@40,#16> -------------------- B3 -------------------- | |
;;; <@42,#18> gap | |
0x20d3f3c36554 84 488b7520 REX.W movq rsi,[rbp+0x20] | |
0x20d3f3c36558 88 488b4d18 REX.W movq rcx,[rbp+0x18] | |
0x20d3f3c3655c 92 488b5510 REX.W movq rdx,[rbp+0x10] | |
0x20d3f3c36560 96 488b5de0 REX.W movq rbx,[rbp-0x20] | |
0x20d3f3c36564 100 33c0 xorl rax,rax | |
;;; <@44,#40> -------------------- B4 -------------------- | |
0x20d3f3c36566 102 488975c0 REX.W movq [rbp-0x40],rsi | |
0x20d3f3c3656a 106 48894dc8 REX.W movq [rbp-0x38],rcx | |
0x20d3f3c3656e 110 488955d0 REX.W movq [rbp-0x30],rdx | |
0x20d3f3c36572 114 48895dd8 REX.W movq [rbp-0x28],rbx | |
;;; <@46,#57> check-non-smi | |
0x20d3f3c36576 118 f6c101 testb rcx,0x1 ;; debug: position 90 | |
0x20d3f3c36579 121 0f849c010000 jz 539 (0x20d3f3c3671b) | |
;;; <@48,#60> check-maps | |
;;; <@50,#76> check-maps | |
;;; <@54,#43> -------------------- B5 (loop header) -------------------- | |
0x20d3f3c3657f 127 488945b8 REX.W movq [rbp-0x48],rax ;; debug: position 66 | |
;;; <@57,#47> compare-numeric-and-branch | |
0x20d3f3c36583 131 3d80969800 cmp rax,0x989680 ;; debug: position 68 | |
0x20d3f3c36588 136 0f8d04010000 jge 402 (0x20d3f3c36692) | |
;;; <@58,#48> -------------------- B6 (unreachable/replaced) -------------------- | |
;;; <@62,#54> -------------------- B7 -------------------- | |
;;; <@64,#56> stack-check | |
0x20d3f3c3658e 142 493ba530080000 REX.W cmpq rsp,[r13+0x830] ;; debug: position 50 | |
0x20d3f3c36595 149 0f823b010000 jc 470 (0x20d3f3c366d6) | |
;;; <@66,#58> check-maps | |
0x20d3f3c3659b 155 49ba59db70615b3e0000 REX.W movq r10,0x3e5b6170db59 ;; debug: position 90 | |
;; object: 0x3e5b6170db59 <Map(elements=1)> | |
0x20d3f3c365a5 165 4c3951ff REX.W cmpq [rcx-0x1],r10 | |
0x20d3f3c365a9 169 0f8571010000 jnz 544 (0x20d3f3c36720) | |
;;; <@68,#64> push-argument | |
0x20d3f3c365af 175 51 push rcx | |
;;; <@70,#64> push-argument | |
0x20d3f3c365b0 176 52 push rdx | |
;;; <@72,#64> push-argument | |
0x20d3f3c365b1 177 49ba0000000001000000 REX.W movq r10,0x100000000 | |
0x20d3f3c365bb 187 4152 push r10 | |
;;; <@74,#63> constant-t | |
0x20d3f3c365bd 189 48bf71a1e042e3030000 REX.W movq rdi,0x3e342e0a171 ;; object: 0x3e342e0a171 <JS Function splice (SharedFunctionInfo 0x3a907a937911)> | |
;;; <@76,#65> call-js-function | |
0x20d3f3c365c7 199 b802000000 movl rax,0x2 | |
0x20d3f3c365cc 204 488b772f REX.W movq rsi,[rdi+0x2f] | |
0x20d3f3c365d0 208 ff5717 call [rdi+0x17] | |
;;; <@78,#66> lazy-bailout | |
;;; <@79,#66> gap | |
0x20d3f3c365d3 211 488b55c8 REX.W movq rdx,[rbp-0x38] | |
;;; <@80,#68> check-maps | |
0x20d3f3c365d7 215 49ba59db70615b3e0000 REX.W movq r10,0x3e5b6170db59 ;; debug: position 116 | |
;; object: 0x3e5b6170db59 <Map(elements=1)> | |
0x20d3f3c365e1 225 4c3952ff REX.W cmpq [rdx-0x1],r10 | |
0x20d3f3c365e5 229 0f853a010000 jnz 549 (0x20d3f3c36725) | |
;;; <@82,#77> load-named-field | |
0x20d3f3c365eb 235 8b7a1b movl rdi,[rdx+0x1b] | |
;;; <@83,#77> gap | |
0x20d3f3c365ee 238 48897db0 REX.W movq [rbp-0x50],rdi | |
;;; <@84,#81> load-named-field | |
0x20d3f3c365f2 242 488b420f REX.W movq rax,[rdx+0xf] | |
;;; <@86,#82> check-maps | |
0x20d3f3c365f6 246 49ba094270615b3e0000 REX.W movq r10,0x3e5b61704209 ;; object: 0x3e5b61704209 <Map(elements=0)> | |
0x20d3f3c36600 256 4c3950ff REX.W cmpq [rax-0x1],r10 | |
0x20d3f3c36604 260 0f8520010000 jnz 554 (0x20d3f3c3672a) | |
;;; <@88,#83> load-named-field | |
0x20d3f3c3660a 266 8b5a1b movl rbx,[rdx+0x1b] | |
;;; <@91,#85> compare-numeric-and-branch | |
0x20d3f3c3660d 269 3bfb cmpl rdi,rbx | |
0x20d3f3c3660f 271 0f8d10000000 jge 293 (0x20d3f3c36625) | |
;;; <@92,#100> -------------------- B8 -------------------- | |
;;; <@94,#101> bounds-check | |
0x20d3f3c36615 277 3bdf cmpl rbx,rdi | |
0x20d3f3c36617 279 0f8612010000 jna 559 (0x20d3f3c3672f) | |
;;; <@96,#102> gap | |
0x20d3f3c3661d 285 488bdf REX.W movq rbx,rdi | |
;;; <@97,#102> goto | |
0x20d3f3c36620 288 e943000000 jmp 360 (0x20d3f3c36668) | |
;;; <@98,#86> -------------------- B9 -------------------- | |
;;; <@100,#87> load-named-field | |
0x20d3f3c36625 293 8b580b movl rbx,[rax+0xb] | |
;;; <@103,#88> compare-numeric-and-branch | |
0x20d3f3c36628 296 3bfb cmpl rdi,rbx | |
0x20d3f3c3662a 298 0f8c23000000 jl 339 (0x20d3f3c36653) | |
;;; <@104,#93> -------------------- B10 (unreachable/replaced) -------------------- | |
;;; <@108,#89> -------------------- B11 -------------------- | |
;;; <@110,#119> smi-tag | |
0x20d3f3c36630 304 8bc7 movl rax,rdi | |
0x20d3f3c36632 306 48c1e020 REX.W shlq rax, 32 | |
;;; <@112,#120> smi-tag | |
0x20d3f3c36636 310 8bcb movl rcx,rbx | |
0x20d3f3c36638 312 48c1e120 REX.W shlq rcx, 32 | |
;;; <@113,#120> gap | |
0x20d3f3c3663c 316 488b75d8 REX.W movq rsi,[rbp-0x28] | |
0x20d3f3c36640 320 488bd8 REX.W movq rbx,rax | |
0x20d3f3c36643 323 488bc2 REX.W movq rax,rdx | |
;;; <@114,#91> call-with-descriptor | |
0x20d3f3c36646 326 e815fbffff call 0x20d3f3c36160 ;; code: STUB, GrowArrayElementsStub, minor: 257 | |
;;; <@116,#91> lazy-bailout | |
;;; <@118,#92> check-non-smi | |
0x20d3f3c3664b 331 a801 test al,0x1 | |
0x20d3f3c3664d 333 0f84e1000000 jz 564 (0x20d3f3c36734) | |
;;; <@122,#97> -------------------- B12 -------------------- | |
;;; <@123,#97> gap | |
0x20d3f3c36653 339 488b5db0 REX.W movq rbx,[rbp-0x50] | |
;;; <@124,#98> add-i | |
0x20d3f3c36657 343 8d5301 leal rdx,[rbx+0x1] | |
;;; <@126,#121> smi-tag | |
0x20d3f3c3665a 346 8bca movl rcx,rdx | |
0x20d3f3c3665c 348 48c1e120 REX.W shlq rcx, 32 | |
;;; <@127,#121> gap | |
0x20d3f3c36660 352 488b55c8 REX.W movq rdx,[rbp-0x38] | |
;;; <@128,#99> store-named-field | |
0x20d3f3c36664 356 48894a17 REX.W movq [rdx+0x17],rcx | |
;;; <@132,#105> -------------------- B13 -------------------- | |
;;; <@134,#106> store-keyed | |
0x20d3f3c36668 360 49ba0000000064000000 REX.W movq r10,0x6400000000 | |
0x20d3f3c36672 370 4c8954d80f REX.W movq [rax+rbx*8+0xf],r10 | |
;;; <@135,#106> gap | |
0x20d3f3c36677 375 488b45b8 REX.W movq rax,[rbp-0x48] | |
;;; <@136,#109> add-i | |
0x20d3f3c3667b 379 83c001 addl rax,0x1 ;; debug: position 76 | |
;;; <@138,#112> gap | |
0x20d3f3c3667e 382 488b75c0 REX.W movq rsi,[rbp-0x40] ;; debug: position 50 | |
0x20d3f3c36682 386 488bca REX.W movq rcx,rdx | |
0x20d3f3c36685 389 488b55d0 REX.W movq rdx,[rbp-0x30] | |
0x20d3f3c36689 393 488b5dd8 REX.W movq rbx,[rbp-0x28] | |
;;; <@139,#112> goto | |
0x20d3f3c3668d 397 e9edfeffff jmp 127 (0x20d3f3c3657f) | |
;;; <@140,#51> -------------------- B14 (unreachable/replaced) -------------------- | |
;;; <@144,#113> -------------------- B15 -------------------- | |
;;; <@146,#6> constant-t | |
0x20d3f3c36692 402 48b86141907a903a0000 REX.W movq rax,0x3a907a904161 ;; debug: position 33 | |
;; object: 0x3a907a904161 <undefined> | |
;;; <@148,#115> return | |
0x20d3f3c3669c 412 488be5 REX.W movq rsp,rbp | |
0x20d3f3c3669f 415 5d pop rbp | |
0x20d3f3c366a0 416 c21800 ret 0x18 | |
;;; <@36,#117> -------------------- Deferred tagged-to-i -------------------- | |
0x20d3f3c366a3 419 4d8b5500 REX.W movq r10,[r13+0x0] ;; debug: position 50 | |
0x20d3f3c366a7 423 4c3950ff REX.W cmpq [rax-0x1],r10 | |
0x20d3f3c366ab 427 0f8588000000 jnz 569 (0x20d3f3c36739) | |
0x20d3f3c366b1 433 f20f104007 movsd xmm0,[rax+0x7] | |
0x20d3f3c366b6 438 f20f2cc0 cvttsd2sil rax,xmm0 | |
0x20d3f3c366ba 442 0f57c9 xorps xmm1,xmm1 | |
0x20d3f3c366bd 445 f20f2ac8 cvtsi2sd xmm1,rax | |
0x20d3f3c366c1 449 660f2ec1 ucomisd xmm0,xmm1 | |
0x20d3f3c366c5 453 0f8573000000 jnz 574 (0x20d3f3c3673e) | |
0x20d3f3c366cb 459 0f8a72000000 jpe 579 (0x20d3f3c36743) | |
0x20d3f3c366d1 465 e96afeffff jmp 64 (0x20d3f3c36540) | |
;;; <@64,#56> -------------------- Deferred stack-check -------------------- | |
0x20d3f3c366d6 470 50 push rax | |
0x20d3f3c366d7 471 51 push rcx | |
0x20d3f3c366d8 472 52 push rdx | |
0x20d3f3c366d9 473 53 push rbx | |
0x20d3f3c366da 474 56 push rsi | |
0x20d3f3c366db 475 57 push rdi | |
0x20d3f3c366dc 476 4150 push r8 | |
0x20d3f3c366de 478 4151 push r9 | |
0x20d3f3c366e0 480 4153 push r11 | |
0x20d3f3c366e2 482 4154 push r12 | |
0x20d3f3c366e4 484 4156 push r14 | |
0x20d3f3c366e6 486 4157 push r15 | |
0x20d3f3c366e8 488 488d6424e0 REX.W leaq rsp,[rsp-0x20] | |
0x20d3f3c366ed 493 488b75f8 REX.W movq rsi,[rbp-0x8] | |
0x20d3f3c366f1 497 33c0 xorl rax,rax | |
0x20d3f3c366f3 499 498d9d38c5cefe REX.W leaq rbx,[r13-0x1313ac8] | |
0x20d3f3c366fa 506 e80116fdff call 0x20d3f3c07d00 ;; code: STUB, CEntryStub, minor: 1 | |
0x20d3f3c366ff 511 488d642420 REX.W leaq rsp,[rsp+0x20] | |
0x20d3f3c36704 516 415f pop r15 | |
0x20d3f3c36706 518 415e pop r14 | |
0x20d3f3c36708 520 415c pop r12 | |
0x20d3f3c3670a 522 415b pop r11 | |
0x20d3f3c3670c 524 4159 pop r9 | |
0x20d3f3c3670e 526 4158 pop r8 | |
0x20d3f3c36710 528 5f pop rdi | |
0x20d3f3c36711 529 5e pop rsi | |
0x20d3f3c36712 530 5b pop rbx | |
0x20d3f3c36713 531 5a pop rdx | |
0x20d3f3c36714 532 59 pop rcx | |
0x20d3f3c36715 533 58 pop rax | |
0x20d3f3c36716 534 e980feffff jmp 155 (0x20d3f3c3659b) | |
;;; -------------------- Jump table -------------------- | |
0x20d3f3c3671b 539 e8f4f8ccff call 0x20d3f3906014 ;; debug: position 29184 | |
;; debug: deopt reason 'Smi' | |
;; deoptimization bailout 2 | |
0x20d3f3c36720 544 e803f9ccff call 0x20d3f3906028 ;; debug: position 29184 | |
;; debug: deopt reason 'wrong map' | |
;; deoptimization bailout 4 | |
0x20d3f3c36725 549 e812f9ccff call 0x20d3f390603c ;; debug: position 42496 | |
;; debug: deopt reason 'wrong map' | |
;; deoptimization bailout 6 | |
0x20d3f3c3672a 554 e817f9ccff call 0x20d3f3906046 ;; debug: position 42496 | |
;; debug: deopt reason 'wrong map' | |
;; deoptimization bailout 7 | |
0x20d3f3c3672f 559 e81cf9ccff call 0x20d3f3906050 ;; debug: position 42496 | |
;; debug: deopt reason 'out of bounds' | |
;; deoptimization bailout 8 | |
0x20d3f3c36734 564 e82bf9ccff call 0x20d3f3906064 ;; debug: position 42496 | |
;; debug: deopt reason 'Smi' | |
;; deoptimization bailout 10 | |
0x20d3f3c36739 569 e830f9ccff call 0x20d3f390606e ;; debug: position 8704 | |
;; debug: deopt reason 'not a heap number' | |
;; deoptimization bailout 11 | |
0x20d3f3c3673e 574 e82bf9ccff call 0x20d3f390606e ;; debug: position 8704 | |
;; debug: deopt reason 'lost precision' | |
;; deoptimization bailout 11 | |
0x20d3f3c36743 579 e826f9ccff call 0x20d3f390606e ;; debug: position 8704 | |
;; debug: deopt reason 'NaN' | |
;; deoptimization bailout 11 | |
;;; Safepoint table. | |
Deoptimization Input Data (deopt points = 12) | |
index ast id argc pc | |
0 3 0 35 | |
1 8 0 -1 | |
2 6 0 -1 | |
3 10 0 155 | |
4 10 0 -1 | |
5 42 0 211 | |
6 42 0 -1 | |
7 42 0 -1 | |
8 42 0 -1 | |
9 42 0 331 | |
10 42 0 -1 | |
11 6 0 -1 | |
Safepoints (size = 52) | |
0x20d3f3c36523 35 00000010 (sp -> fp) 0 | |
0x20d3f3c365d3 211 00111100 (sp -> fp) 5 | |
0x20d3f3c3664b 331 00111100 (sp -> fp) 9 | |
0x20d3f3c366ff 511 00111100 | rcx | rdx | rbx | rsi (sp -> fp) 3 | |
RelocInfo (size = 946) | |
0x20d3f3c3650a position (33) | |
0x20d3f3c3650a comment (;;; <@0,#0> -------------------- B0 --------------------) | |
0x20d3f3c3650a comment (;;; <@2,#1> context) | |
0x20d3f3c3650e comment (;;; <@3,#1> gap) | |
0x20d3f3c36512 comment (;;; <@12,#9> -------------------- B1 --------------------) | |
0x20d3f3c36512 comment (;;; <@13,#9> gap) | |
0x20d3f3c36515 comment (;;; <@14,#11> stack-check) | |
0x20d3f3c3651f code target (BUILTIN) (0x20d3f3c319c0) | |
0x20d3f3c36523 comment (;;; <@16,#11> lazy-bailout) | |
0x20d3f3c36523 position (50) | |
0x20d3f3c36523 comment (;;; <@19,#15> goto) | |
0x20d3f3c36528 comment (;;; <@20,#19> -------------------- B2 (OSR entry) --------------------) | |
0x20d3f3c3652c comment (;;; <@34,#27> context) | |
0x20d3f3c36530 comment (;;; <@35,#27> gap) | |
0x20d3f3c36534 comment (;;; <@36,#117> tagged-to-i) | |
0x20d3f3c36540 comment (;;; <@38,#29> gap) | |
0x20d3f3c3654f comment (;;; <@39,#29> goto) | |
0x20d3f3c36554 comment (;;; <@40,#16> -------------------- B3 --------------------) | |
0x20d3f3c36554 comment (;;; <@42,#18> gap) | |
0x20d3f3c36566 comment (;;; <@44,#40> -------------------- B4 --------------------) | |
0x20d3f3c36576 comment (;;; <@46,#57> check-non-smi) | |
0x20d3f3c36576 position (90) | |
0x20d3f3c3657f comment (;;; <@48,#60> check-maps) | |
0x20d3f3c3657f comment (;;; <@50,#76> check-maps) | |
0x20d3f3c3657f position (66) | |
0x20d3f3c3657f comment (;;; <@54,#43> -------------------- B5 (loop header) --------------------) | |
0x20d3f3c36583 position (68) | |
0x20d3f3c36583 comment (;;; <@57,#47> compare-numeric-and-branch) | |
0x20d3f3c3658e comment (;;; <@58,#48> -------------------- B6 (unreachable/replaced) --------------------) | |
0x20d3f3c3658e position (50) | |
0x20d3f3c3658e comment (;;; <@62,#54> -------------------- B7 --------------------) | |
0x20d3f3c3658e comment (;;; <@64,#56> stack-check) | |
0x20d3f3c3659b comment (;;; <@66,#58> check-maps) | |
0x20d3f3c3659b position (90) | |
0x20d3f3c3659d embedded object (0x3e5b6170db59 <Map(elements=1)>) | |
0x20d3f3c365af comment (;;; <@68,#64> push-argument) | |
0x20d3f3c365b0 comment (;;; <@70,#64> push-argument) | |
0x20d3f3c365b1 comment (;;; <@72,#64> push-argument) | |
0x20d3f3c365bd comment (;;; <@74,#63> constant-t) | |
0x20d3f3c365bf embedded object (0x3e342e0a171 <JS Function splice (SharedFunctionInfo 0x3a907a937911)>) | |
0x20d3f3c365c7 comment (;;; <@76,#65> call-js-function) | |
0x20d3f3c365d3 comment (;;; <@78,#66> lazy-bailout) | |
0x20d3f3c365d3 comment (;;; <@79,#66> gap) | |
0x20d3f3c365d7 comment (;;; <@80,#68> check-maps) | |
0x20d3f3c365d7 position (116) | |
0x20d3f3c365d9 embedded object (0x3e5b6170db59 <Map(elements=1)>) | |
0x20d3f3c365eb comment (;;; <@82,#77> load-named-field) | |
0x20d3f3c365ee comment (;;; <@83,#77> gap) | |
0x20d3f3c365f2 comment (;;; <@84,#81> load-named-field) | |
0x20d3f3c365f6 comment (;;; <@86,#82> check-maps) | |
0x20d3f3c365f8 embedded object (0x3e5b61704209 <Map(elements=0)>) | |
0x20d3f3c3660a comment (;;; <@88,#83> load-named-field) | |
0x20d3f3c3660d comment (;;; <@91,#85> compare-numeric-and-branch) | |
0x20d3f3c36615 comment (;;; <@92,#100> -------------------- B8 --------------------) | |
0x20d3f3c36615 comment (;;; <@94,#101> bounds-check) | |
0x20d3f3c3661d comment (;;; <@96,#102> gap) | |
0x20d3f3c36620 comment (;;; <@97,#102> goto) | |
0x20d3f3c36625 comment (;;; <@98,#86> -------------------- B9 --------------------) | |
0x20d3f3c36625 comment (;;; <@100,#87> load-named-field) | |
0x20d3f3c36628 comment (;;; <@103,#88> compare-numeric-and-branch) | |
0x20d3f3c36630 comment (;;; <@104,#93> -------------------- B10 (unreachable/replaced) --------------------) | |
0x20d3f3c36630 comment (;;; <@108,#89> -------------------- B11 --------------------) | |
0x20d3f3c36630 comment (;;; <@110,#119> smi-tag) | |
0x20d3f3c36636 comment (;;; <@112,#120> smi-tag) | |
0x20d3f3c3663c comment (;;; <@113,#120> gap) | |
0x20d3f3c36646 comment (;;; <@114,#91> call-with-descriptor) | |
0x20d3f3c36647 code target (STUB) (0x20d3f3c36160) | |
0x20d3f3c3664b comment (;;; <@116,#91> lazy-bailout) | |
0x20d3f3c3664b comment (;;; <@118,#92> check-non-smi) | |
0x20d3f3c36653 comment (;;; <@122,#97> -------------------- B12 --------------------) | |
0x20d3f3c36653 comment (;;; <@123,#97> gap) | |
0x20d3f3c36657 comment (;;; <@124,#98> add-i) | |
0x20d3f3c3665a comment (;;; <@126,#121> smi-tag) | |
0x20d3f3c36660 comment (;;; <@127,#121> gap) | |
0x20d3f3c36664 comment (;;; <@128,#99> store-named-field) | |
0x20d3f3c36668 comment (;;; <@132,#105> -------------------- B13 --------------------) | |
0x20d3f3c36668 comment (;;; <@134,#106> store-keyed) | |
0x20d3f3c36677 comment (;;; <@135,#106> gap) | |
0x20d3f3c3667b comment (;;; <@136,#109> add-i) | |
0x20d3f3c3667b position (76) | |
0x20d3f3c3667e comment (;;; <@138,#112> gap) | |
0x20d3f3c3667e position (50) | |
0x20d3f3c3668d comment (;;; <@139,#112> goto) | |
0x20d3f3c36692 comment (;;; <@140,#51> -------------------- B14 (unreachable/replaced) --------------------) | |
0x20d3f3c36692 position (33) | |
0x20d3f3c36692 comment (;;; <@144,#113> -------------------- B15 --------------------) | |
0x20d3f3c36692 comment (;;; <@146,#6> constant-t) | |
0x20d3f3c36694 embedded object (0x3a907a904161 <undefined>) | |
0x20d3f3c3669c comment (;;; <@148,#115> return) | |
0x20d3f3c366a3 position (50) | |
0x20d3f3c366a3 comment (;;; <@36,#117> -------------------- Deferred tagged-to-i --------------------) | |
0x20d3f3c366d6 comment (;;; <@64,#56> -------------------- Deferred stack-check --------------------) | |
0x20d3f3c366fb code target (STUB) (0x20d3f3c07d00) | |
0x20d3f3c3671b comment (;;; -------------------- Jump table --------------------) | |
0x20d3f3c3671b position (29184) | |
0x20d3f3c3671b deopt reason (Smi) | |
0x20d3f3c3671c runtime entry (deoptimization bailout 2) | |
0x20d3f3c36720 position (29184) | |
0x20d3f3c36720 deopt reason (wrong map) | |
0x20d3f3c36721 runtime entry (deoptimization bailout 4) | |
0x20d3f3c36725 position (42496) | |
0x20d3f3c36725 deopt reason (wrong map) | |
0x20d3f3c36726 runtime entry (deoptimization bailout 6) | |
0x20d3f3c3672a position (42496) | |
0x20d3f3c3672a deopt reason (wrong map) | |
0x20d3f3c3672b runtime entry (deoptimization bailout 7) | |
0x20d3f3c3672f position (42496) | |
0x20d3f3c3672f deopt reason (out of bounds) | |
0x20d3f3c36730 runtime entry (deoptimization bailout 8) | |
0x20d3f3c36734 position (42496) | |
0x20d3f3c36734 deopt reason (Smi) | |
0x20d3f3c36735 runtime entry (deoptimization bailout 10) | |
0x20d3f3c36739 position (8704) | |
0x20d3f3c36739 deopt reason (not a heap number) | |
0x20d3f3c3673a runtime entry (deoptimization bailout 11) | |
0x20d3f3c3673e position (8704) | |
0x20d3f3c3673e deopt reason (lost precision) | |
0x20d3f3c3673f runtime entry (deoptimization bailout 11) | |
0x20d3f3c36743 position (8704) | |
0x20d3f3c36743 deopt reason (NaN) | |
0x20d3f3c36744 runtime entry (deoptimization bailout 11) | |
0x20d3f3c36748 comment (;;; Safepoint table.) | |
--- End code --- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
begin_compilation | |
name "runSplice" | |
method "runSplice:0" | |
date 1432073723000 | |
end_compilation | |
begin_cfg | |
name "Z_Code generation" | |
begin_block | |
name "B0" | |
from_bci -1 | |
to_bci -1 | |
predecessors | |
successors "B1" | |
xhandlers | |
flags | |
loop_depth 0 | |
first_lir_id 0 | |
last_lir_id 22 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v0 BlockEntry type:Tagged <|@ | |
0 2 i78 Constant 1 type:Smi <|@ | |
0 1 t14 Constant 0x3a907a9041f9 <true> [map 0x3e5b617044c9] <|@ | |
0 3 t6 Constant 0x3a907a904161 <undefined> [map 0x3e5b617043c1] <|@ | |
0 3 t1 Context type:Tagged <|@ | |
0 3 t2 Parameter 0 type:Tagged <|@ | |
0 3 t3 Parameter 1 type:Tagged <|@ | |
0 3 t4 Parameter 2 type:Tagged <|@ | |
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@ | |
0 0 v7 Simulate id=2 var[4] = t6, var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@ | |
0 0 v8 Goto B1 type:Tagged <|@ | |
end_HIR | |
begin_LIR | |
0 label () () () () [hir:v0] <|@ | |
2 gap () () () () [hir:v0] <|@ | |
4 context [rax|R]= [hir:t1] <|@ | |
6 gap ([stack:1] = [rax|R];) () () () [hir:t1] <|@ | |
8 parameter [stack:-3]= [hir:t2] <|@ | |
10 gap () ([stack:-3];) () () [hir:t2] <|@ | |
12 parameter [stack:-2]= [hir:t3] <|@ | |
14 gap () ([stack:-2];) () () [hir:t3] <|@ | |
16 parameter [stack:-1]= [hir:t4] <|@ | |
18 gap () ([stack:-1];) () () [hir:t4] <|@ | |
20 gap () () () () [hir:v8] <|@ | |
22 goto B1 [hir:v8] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B1" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B0" | |
successors "B3" "B2" | |
xhandlers | |
flags | |
dominator "B0" | |
loop_depth 0 | |
first_lir_id 24 | |
last_lir_id 38 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v9 BlockEntry type:Tagged <|@ | |
0 0 v10 Simulate id=3 type:Tagged <|@ | |
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@ | |
0 2 i12 Constant 0 type:Smi pos:30 <|@ | |
0 0 v15 Branch t14 goto (B3, B2) (None) type:Tagged pos:17 <|@ | |
end_HIR | |
begin_LIR | |
24 label () () () () [hir:v9] <|@ | |
26 gap () ([rsi|R] = [rax|R];) () () [hir:v9] <|@ | |
28 stack-check = [rsi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6]] {[rsi|R];[stack:1]} [hir:v11] <|@ | |
30 gap () () () () [hir:v11] <|@ | |
32 lazy-bailout = [id=3|deopt_id=0|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6]] [hir:v11] <|@ | |
34 gap () () () () [hir:v11] <|@ | |
36 gap () () () () [hir:v15] <|@ | |
38 goto B3 [hir:v15] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B2" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B1" | |
successors "B4" | |
xhandlers | |
flags "osr" | |
dominator "B1" | |
loop_depth 0 | |
first_lir_id 40 | |
last_lir_id 78 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v19 BlockEntry type:Tagged pos:17 <|@ | |
0 2 t20 UnknownOSRValue parameter @ 0 type:Tagged pos:17 <|@ | |
0 2 t21 UnknownOSRValue parameter @ 1 type:Tagged pos:17 <|@ | |
0 2 t22 UnknownOSRValue parameter @ 2 type:Tagged pos:17 <|@ | |
0 1 t23 UnknownOSRValue special @ 3 type:Tagged pos:17 <|@ | |
0 2 t24 UnknownOSRValue local @ 4 type:Tagged pos:17 <|@ | |
0 0 v25 Simulate id=8 var[4] = t24, var[3] = t23, var[2] = t22, var[1] = t21, var[0] = t20 type:Tagged pos:17 <|@ | |
0 0 v26 OsrEntry changes[NewSpacePromotion,OsrEntries] type:Tagged pos:17 <|@ | |
0 2 t27 Context type:Tagged pos:17 <|@ | |
0 0 v28 Simulate id=6 var[3] = t27 type:Tagged pos:17 <|@ | |
0 1 i117 Change t24 t to i type:TaggedNumber pos:17 <|@ | |
0 0 v29 Goto B4 type:Tagged pos:17 <|@ | |
end_HIR | |
begin_LIR | |
40 label () () () () [hir:v19] <|@ | |
42 gap () () () () [hir:v19] <|@ | |
44 unknown-osr-value [stack:-3]= [hir:t20] <|@ | |
46 gap () ([stack:-3];) () () [hir:t20] <|@ | |
48 unknown-osr-value [stack:-2]= [hir:t21] <|@ | |
50 gap () ([stack:-2];) () () [hir:t21] <|@ | |
52 unknown-osr-value [stack:-1]= [hir:t22] <|@ | |
54 gap () ([stack:-1];) () () [hir:t22] <|@ | |
56 unknown-osr-value [stack:-1]= [hir:t23] <|@ | |
58 gap () ([stack:-1];) () () [hir:t23] <|@ | |
60 unknown-osr-value [stack:0]= [hir:t24] <|@ | |
62 gap () ([stack:0];) () () [hir:t24] <|@ | |
64 osr-entry = [id=8|deopt_id=1|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:-1];[stack:0]] [hir:v26] <|@ | |
66 gap () () () () [hir:v26] <|@ | |
68 context [rsi|R]= [hir:t27] <|@ | |
70 gap ((0) = [rsi|R];) ([rax|R] = [stack:0];) () () [hir:t27] <|@ | |
72 tagged-to-i [rax|R]= [rax|R] [id=6|deopt_id=11|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[rsi|R];[stack:0]] [hir:i117] <|@ | |
74 gap ((0) = [rax|R];) () () () [hir:i117] <|@ | |
76 gap () ([rsi|R] = [stack:-3]; [rcx|R] = [stack:-2]; [rdx|R] = [stack:-1]; [rbx|R] = [rsi|R]; [rax|R];) () () [hir:v29] <|@ | |
78 goto B4 [hir:v29] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B3" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B1" | |
successors "B4" | |
xhandlers | |
flags | |
dominator "B1" | |
loop_depth 0 | |
first_lir_id 80 | |
last_lir_id 86 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v16 BlockEntry type:Tagged pos:17 <|@ | |
0 0 v17 Simulate id=6 var[4] = i12 type:Tagged pos:17 <|@ | |
0 0 v18 Goto B4 type:Tagged pos:17 <|@ | |
end_HIR | |
begin_LIR | |
80 label () () () () [hir:v16] <|@ | |
82 gap () () () () [hir:v16] <|@ | |
84 gap () ([rsi|R] = [stack:-3]; [rcx|R] = [stack:-2]; [rdx|R] = [stack:-1]; [rbx|R] = [stack:1]; [rax|R] = [constant:12];) () () [hir:v18] <|@ | |
86 goto B4 [hir:v18] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B4" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B3" "B2" | |
successors "B5" | |
xhandlers | |
flags | |
dominator "B1" | |
loop_depth 0 | |
first_lir_id 88 | |
last_lir_id 106 | |
begin_states | |
begin_locals | |
size 5 | |
method "None" | |
0 t30 [ t2 t20 uses:0_0s_0i_0d_0t type:Tagged] | |
1 t31 [ t3 t21 uses:15_0s_0i_0d_0t type:Tagged] | |
2 t32 [ t4 t22 uses:1_0s_0i_0d_0t type:Tagged] | |
3 t33 [ t1 t27 uses:5_0s_0i_0d_2t type:Tagged] | |
4 i34 [ i12 i117 uses:1_2s_0i_0d_0t type:TaggedNumber] | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v40 BlockEntry type:Tagged pos:17 <|@ | |
0 0 v41 Simulate id=6 type:Tagged pos:17 <|@ | |
0 1 i46 Constant 10000000 type:Smi pos:37 <|@ | |
0 0 t57 CheckHeapObject t31 pos:57 <|@ | |
0 2 t59 Constant 0x3e342e09b81 <JS Array[0]> [map 0x3e5b6170d421] pos:57 <|@ | |
0 0 t60 CheckMaps t59 [0x3e5b6170d421](stability-check) pos:57 <|@ | |
0 1 t63 Constant 0x3e342e0a171 <JS Function splice (SharedFunctionInfo 0x3a907a937911)> [map 0x3e5b6170cce9] pos:57 <|@ | |
0 1 t118 Constant 1 pos:57 <|@ | |
0 2 t75 Constant 0x3e342e044f9 <an Object with map 0x3e5b6170cc39> [map 0x3e5b6170cc39] pos:83 <|@ | |
0 0 t76 CheckMaps t75 [0x3e5b6170cc39](stability-check) pos:83 <|@ | |
0 1 s84 Constant 100 type:Smi [noOSE] pos:83 <|@ | |
0 1 t90 Constant 0x20d3f3c36101 <Code: STUB> [map 0x3e5b61704731] [noOSE] pos:83 <|@ | |
0 0 v42 Goto B5 type:Tagged pos:17 <|@ | |
end_HIR | |
begin_LIR | |
88 label () ([stack:5] = [rsi|R]; [stack:4] = [rcx|R]; [stack:3] = [rdx|R]; [stack:2] = [rbx|R]; (0) = [rax|R];) () () [hir:v40] <|@ | |
90 gap () () () () [hir:v40] <|@ | |
92 check-non-smi = [rcx|R] [id=6|deopt_id=2|parameters=3|arguments_stack_height=0|[rsi|R];[rcx|R];[rdx|R];[rbx|R];[rax|R]] [hir:t57] <|@ | |
94 gap () () () () [hir:t57] <|@ | |
96 check-maps = NULL [hir:t60] <|@ | |
98 gap () () () () [hir:t60] <|@ | |
100 check-maps = NULL [hir:t76] <|@ | |
102 gap () () () () [hir:t76] <|@ | |
104 gap () ([rax|R];) () () [hir:v42] <|@ | |
106 goto B5 [hir:v42] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B5" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B4" "B13" | |
successors "B6" "B14" | |
xhandlers | |
flags "dom-loop-succ" | |
dominator "B4" | |
loop_depth 1 | |
first_lir_id 108 | |
last_lir_id 114 | |
begin_states | |
begin_locals | |
size 1 | |
method "None" | |
4 i39 [ i34 i109 uses:2_2s_0i_0d_0t type:TaggedNumber] | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v43 BlockEntry type:Tagged pos:33 <|@ | |
0 0 i47 CompareNumericAndBranch LT i39 i46 goto (B6, B14) type:Tagged pos:35 <|@ | |
end_HIR | |
begin_LIR | |
108 label () ([stack:6] = [rax|R];) () () [hir:v43] <|@ | |
110 gap () () () () [hir:v43] <|@ | |
112 gap () () () () [hir:i47] <|@ | |
114 compare-numeric-and-branch if [rax|R] < [constant:46] then B6 else B14 [hir:i47] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B6" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B5" | |
successors "B7" | |
xhandlers | |
flags "dom-loop-succ" | |
dominator "B5" | |
loop_depth 1 | |
first_lir_id 116 | |
last_lir_id 122 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v48 BlockEntry type:Tagged pos:35 <|@ | |
0 0 v49 Simulate id=10 type:Tagged pos:35 <|@ | |
0 0 v50 Goto B7 type:Tagged pos:35 <|@ | |
end_HIR | |
begin_LIR | |
116 label () () () () Dead block replaced with B7 [hir:v48] <|@ | |
118 gap () () () () [hir:v48] <|@ | |
120 gap () () () () [hir:v50] <|@ | |
122 goto B7 [hir:v50] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B7" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B6" | |
successors "B9" "B8" | |
xhandlers | |
flags "dom-loop-succ" | |
dominator "B6" | |
loop_depth 1 | |
first_lir_id 124 | |
last_lir_id 182 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v54 BlockEntry type:Tagged pos:17 <|@ | |
0 0 v55 Simulate id=10 type:Tagged pos:17 <|@ | |
0 0 v56 StackCheck t33 changes[NewSpacePromotion] type:Tagged pos:17 <|@ | |
0 0 t58 CheckMaps t31 [0x3e5b6170db59] pos:57 <|@ | |
0 0 t64 PushArguments t31 t32 t118 type:Tagged pos:57 <|@ | |
0 0 t65 CallJSFunction t63 #3 changes[*] type:Tagged pos:57 <|@ | |
0 0 v66 Simulate id=42 type:Tagged pos:57 <|@ | |
0 0 t68 CheckMaps t31 [0x3e5b6170db59] pos:83 <|@ | |
0 6 i77 LoadNamedField t31.%length@24 type:Smi [noOSE] pos:83 <|@ | |
0 6 t81 LoadNamedField t31.%elements@16 type:Tagged [noOSE] pos:83 <|@ | |
0 0 t82 CheckMaps t81 [0x3e5b61704209] [noOSE] pos:83 <|@ | |
0 2 i83 LoadNamedField t31.%length@24 type:Smi [noOSE] pos:83 <|@ | |
0 0 i85 CompareNumericAndBranch GTE i77 i83 goto (B9, B8) type:Tagged pos:83 <|@ | |
end_HIR | |
begin_LIR | |
124 label () () () () [hir:v54] <|@ | |
126 gap () () () () [hir:v54] <|@ | |
128 stack-check = [rbx|R] [id=10|deopt_id=3|parameters=3|arguments_stack_height=0|[rsi|R];[rcx|R];[rdx|R];[rbx|R];[rax|R]] {[stack:5];[rsi|R];[stack:4];[rcx|R];[stack:3];[rdx|R];[stack:2];[rbx|R]} [hir:v56] <|@ | |
130 gap () () () () [hir:v56] <|@ | |
132 check-maps = [rcx|R] [id=10|deopt_id=4|parameters=3|arguments_stack_height=0|[rsi|R];[rcx|R];[rdx|R];[rbx|R];[rax|R]] [hir:t58] <|@ | |
134 gap () () () () [hir:t58] <|@ | |
136 push-argument = [rcx|R] [hir:t64] <|@ | |
138 gap () () () () [hir:t64] <|@ | |
140 push-argument = [rdx|R] [hir:t64] <|@ | |
142 gap () () () () [hir:t64] <|@ | |
144 push-argument = [constant:118] [hir:t64] <|@ | |
146 gap () () () () [hir:t64] <|@ | |
148 constant-t [rdi|R]= [hir:t63] <|@ | |
150 gap ((0) = [rdi|R];) ([rdi|R];) () () [hir:t63] <|@ | |
152 call-js-function [rax|R]= [rdi|R]#2 / {[rdi|R];[stack:5];[stack:4];[stack:3];[stack:2]} [hir:t65] <|@ | |
154 gap ((0) = [rax|R];) () () () [hir:t65] <|@ | |
156 lazy-bailout = [id=42|deopt_id=5|parameters=3|arguments_stack_height=0|[stack:5];[stack:4];[stack:3];[stack:2];[stack:6]] [hir:v66] <|@ | |
158 gap () () ([rdx|R] = [stack:4];) () [hir:v66] <|@ | |
160 check-maps = [rdx|R] [id=42|deopt_id=6|parameters=3|arguments_stack_height=0|[stack:5];[rdx|R];[stack:3];[stack:2];[stack:6]] [hir:t68] <|@ | |
162 gap () () () () [hir:t68] <|@ | |
164 load-named-field [rdi|R]= [rdx|R] [hir:i77] <|@ | |
166 gap ([stack:7] = [rdi|R];) () () () [hir:i77] <|@ | |
168 load-named-field [rax|R]= [rdx|R] [hir:t81] <|@ | |
170 gap ((0) = [rax|R];) () () () [hir:t81] <|@ | |
172 check-maps = [rax|R] [id=42|deopt_id=7|parameters=3|arguments_stack_height=0|[stack:5];[rdx|R];[stack:3];[stack:2];[stack:6]] [hir:t82] <|@ | |
174 gap () () () () [hir:t82] <|@ | |
176 load-named-field [rbx|R]= [rdx|R] [hir:i83] <|@ | |
178 gap ((0) = [rbx|R];) () () () [hir:i83] <|@ | |
180 gap () () () () [hir:i85] <|@ | |
182 compare-numeric-and-branch if [rdi|R] >= [rbx|R] then B9 else B8 [hir:i85] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B8" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B7" | |
successors "B13" | |
xhandlers | |
flags | |
dominator "B7" | |
loop_depth 1 | |
first_lir_id 184 | |
last_lir_id 194 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v100 BlockEntry type:Tagged pos:83 <|@ | |
0 0 i101 BoundsCheck i77 i83 type:Tagged [noOSE] pos:83 <|@ | |
0 0 v102 Goto B13 type:Tagged pos:83 <|@ | |
end_HIR | |
begin_LIR | |
184 label () () () () [hir:v100] <|@ | |
186 gap () () () () [hir:v100] <|@ | |
188 bounds-check = [rdi|R] [rbx|R] [id=42|deopt_id=8|parameters=3|arguments_stack_height=0|[stack:5];[rdx|R];[stack:3];[stack:2];[stack:6]] [hir:i101] <|@ | |
190 gap () () () () [hir:i101] <|@ | |
192 gap () ([rax|R]; [rbx|R] = [rdi|R];) () () [hir:v102] <|@ | |
194 goto B13 [hir:v102] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B9" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B7" | |
successors "B11" "B10" | |
xhandlers | |
flags | |
dominator "B7" | |
loop_depth 1 | |
first_lir_id 196 | |
last_lir_id 206 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v86 BlockEntry type:Tagged pos:83 <|@ | |
0 2 i87 LoadNamedField t81.%length@8 type:Smi [noOSE] pos:83 <|@ | |
0 0 i88 CompareNumericAndBranch GTE i77 i87 goto (B11, B10) type:Tagged pos:83 <|@ | |
end_HIR | |
begin_LIR | |
196 label () () () () [hir:v86] <|@ | |
198 gap () () () () [hir:v86] <|@ | |
200 load-named-field [rbx|R]= [rax|R] [hir:i87] <|@ | |
202 gap ((0) = [rbx|R];) () () () [hir:i87] <|@ | |
204 gap () () () () [hir:i88] <|@ | |
206 compare-numeric-and-branch if [rdi|R] >= [rbx|R] then B11 else B10 [hir:i88] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B10" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B9" | |
successors "B12" | |
xhandlers | |
flags | |
dominator "B9" | |
loop_depth 1 | |
first_lir_id 208 | |
last_lir_id 214 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v93 BlockEntry type:Tagged pos:83 <|@ | |
0 0 v94 Goto B12 type:Tagged pos:83 <|@ | |
end_HIR | |
begin_LIR | |
208 label () () () () Dead block replaced with B12 [hir:v93] <|@ | |
210 gap () () () () [hir:v93] <|@ | |
212 gap () ([rax|R];) () () [hir:v94] <|@ | |
214 goto B12 [hir:v94] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B11" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B9" | |
successors "B12" | |
xhandlers | |
flags | |
dominator "B9" | |
loop_depth 1 | |
first_lir_id 216 | |
last_lir_id 242 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v89 BlockEntry type:Tagged pos:83 <|@ | |
0 1 t119 Change i77 i to t pos:83 <|@ | |
0 1 t120 Change i87 i to t pos:83 <|@ | |
0 2 t91 CallWithDescriptor t90 t33 t31 t119 t120 #0 changes[*] type:Tagged [noOSE] pos:83 <|@ | |
0 0 t92 CheckHeapObject t91 [noOSE] pos:83 <|@ | |
0 0 v95 Goto B12 type:Tagged pos:83 <|@ | |
end_HIR | |
begin_LIR | |
216 label () () () () [hir:v89] <|@ | |
218 gap () () () () [hir:v89] <|@ | |
220 smi-tag [rax|R]= [rdi|R] [hir:t119] <|@ | |
222 gap ((0) = [rax|R];) () () () [hir:t119] <|@ | |
224 smi-tag [rcx|R]= [rbx|R] [hir:t120] <|@ | |
226 gap ((0) = [rcx|R];) ([rsi|R] = [stack:2]; [rax|R] = [rdx|R]; [rbx|R] = [rax|R]; [rcx|R];) () () [hir:t120] <|@ | |
228 call-with-descriptor [rax|R][constant:90] [rsi|R] [rax|R] [rbx|R] [rcx|R] #-1 / [id=42|parameters=3|arguments_stack_height=0|[stack:5];[stack:4];[stack:3];[stack:2];[stack:6]] {[rsi|R];[rax|R];[stack:5];[stack:4];[stack:3];[stack:2]} [hir:t91] <|@ | |
230 gap ((0) = [rax|R];) ([rax|R];) () () [hir:t91] <|@ | |
232 lazy-bailout = [id=42|deopt_id=9|parameters=3|arguments_stack_height=0|[stack:5];[stack:4];[stack:3];[stack:2];[stack:6]] [hir:t91] <|@ | |
234 gap () () () () [hir:t91] <|@ | |
236 check-non-smi = [rax|R] [id=42|deopt_id=10|parameters=3|arguments_stack_height=0|[stack:5];[stack:4];[stack:3];[stack:2];[stack:6]] [hir:t92] <|@ | |
238 gap () () () () [hir:t92] <|@ | |
240 gap () ([rax|R];) () () [hir:v95] <|@ | |
242 goto B12 [hir:v95] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B12" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B10" "B11" | |
successors "B13" | |
xhandlers | |
flags | |
dominator "B9" | |
loop_depth 1 | |
first_lir_id 244 | |
last_lir_id 262 | |
begin_states | |
begin_locals | |
size 1 | |
method "None" | |
-1 t96 [ t81 t91 uses:1_0s_0i_0d_1t type:Tagged] | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v97 BlockEntry type:Tagged pos:83 <|@ | |
0 1 i98 Add i77 i78 type:TaggedNumber [noOSE] pos:83 <|@ | |
0 1 s121 Change i98 i to s type:Smi pos:83 <|@ | |
0 0 v99 StoreNamedField t31.%length@24 = s121 changes[ArrayLengths] type:Tagged [noOSE] pos:83 <|@ | |
0 0 v103 Goto B13 type:Tagged pos:83 <|@ | |
end_HIR | |
begin_LIR | |
244 label () ((0) = [rax|R];) () () [hir:v97] <|@ | |
246 gap () () ([rbx|R] = [stack:7];) () [hir:v97] <|@ | |
248 add-i [rdx|R]= [rbx|R] [constant:78] [hir:i98] <|@ | |
250 gap ((0) = [rdx|R];) () () () [hir:i98] <|@ | |
252 smi-tag [rcx|R]= [rdx|R] [hir:s121] <|@ | |
254 gap ((0) = [rcx|R];) () ([rdx|R] = [stack:4];) () [hir:s121] <|@ | |
256 store-named-field [rdx|R].%length@24 <- [rcx|R] [hir:v99] <|@ | |
258 gap () () () () [hir:v99] <|@ | |
260 gap () ([rax|R];) () () [hir:v103] <|@ | |
262 goto B13 [hir:v103] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B13" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B8" "B12" | |
successors "B5" | |
xhandlers | |
flags "dom-loop-succ" | |
dominator "B7" | |
loop_depth 1 | |
first_lir_id 264 | |
last_lir_id 278 | |
begin_states | |
begin_locals | |
size 1 | |
method "None" | |
-1 t104 [ t81 t96 uses:1_0s_0i_0d_1t type:Tagged] | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v105 BlockEntry type:Tagged pos:83 <|@ | |
0 0 v106 StoreKeyed t104[i77] = s84 changes[ArrayElements] type:Tagged [noOSE] pos:83 <|@ | |
0 0 v107 Simulate id=60 type:Tagged [noOSE] pos:83 <|@ | |
0 2 i109 Add i39 i78 type:TaggedNumber pos:43 <|@ | |
0 0 v111 Simulate id=6 var[4] = i109 type:Tagged pos:17 <|@ | |
0 0 v112 Goto B5 type:Tagged pos:17 <|@ | |
end_HIR | |
begin_LIR | |
264 label () ((0) = [rax|R];) () () [hir:v105] <|@ | |
266 gap () () () () [hir:v105] <|@ | |
268 store-keyed [rax|R][[rbx|R]] <- [constant:84] [hir:v106] <|@ | |
270 gap () () ([rax|R] = [stack:6];) () [hir:v106] <|@ | |
272 add-i [rax|R]= [rax|R] [constant:78] [hir:i109] <|@ | |
274 gap ((0) = [rax|R];) () () () [hir:i109] <|@ | |
276 gap () ([rax|R]; [rsi|R] = [stack:5]; [rcx|R] = [rdx|R]; [rdx|R] = [stack:3]; [rbx|R] = [stack:2];) () () [hir:v112] <|@ | |
278 goto B5 [hir:v112] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B14" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B5" | |
successors "B15" | |
xhandlers | |
flags | |
dominator "B5" | |
loop_depth 0 | |
first_lir_id 280 | |
last_lir_id 286 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v51 BlockEntry type:Tagged pos:35 <|@ | |
0 0 v52 Simulate id=7 var[4] = t6 type:Tagged pos:35 <|@ | |
0 0 v53 Goto B15 type:Tagged pos:35 <|@ | |
end_HIR | |
begin_LIR | |
280 label () () () () Dead block replaced with B15 [hir:v51] <|@ | |
282 gap () () () () [hir:v51] <|@ | |
284 gap () () () () [hir:v53] <|@ | |
286 goto B15 [hir:v53] <|@ | |
end_LIR | |
end_block | |
begin_block | |
name "B15" | |
from_bci -1 | |
to_bci -1 | |
predecessors "B14" | |
successors | |
xhandlers | |
flags | |
dominator "B14" | |
loop_depth 0 | |
first_lir_id 288 | |
last_lir_id 298 | |
begin_states | |
begin_locals | |
size 0 | |
method "None" | |
end_locals | |
end_states | |
begin_HIR | |
0 0 v113 BlockEntry type:Tagged <|@ | |
0 1 s122 Constant 2 type:Smi <|@ | |
0 0 v115 Return t6 (pop s122 values) type:Tagged <|@ | |
end_HIR | |
begin_LIR | |
288 label () () () () [hir:v113] <|@ | |
290 gap () () () () [hir:v113] <|@ | |
292 constant-t [rax|R]= [hir:t6] <|@ | |
294 gap ((0) = [rax|R];) ([rax|R];) () () [hir:t6] <|@ | |
296 return = [rax|R] NULL [constant:122] [hir:v115] <|@ | |
298 gap () () () () [hir:v115] <|@ | |
end_LIR | |
end_block | |
end_cfg |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment