/** * @fileoverview * @author Taketoshi Aono */
const Benchmark = require('benchmark');const suite = new Benchmark.Suite;
const anyType1 = 'a';const anyType2 = 2;const anyType3 = /klfjakl/;const anyType4 = {a:2,b:3};const anyType5 = {f:2,d:4};const anyType6 = Date.now();
const anyMap1 = {a:2,b:3};const anyMap2 = {f:2,d:4};const anyMap3 = {e:2,f:4};const anyMap4 = {h:2,i:4};const anyMap5 = {j:2,k:4};const anyMap6 = {l:2,m:4};
const sameType1 = 1;const sameType2 = 2;const sameType3 = 3;const sameType4 = 4;const sameType5 = 5;const sameType6 = 6;
function heavy() { let ret = 0; for (let i = 0; i < 100; i++) { let a = Date.now() ret += a; } return ret;}
// add testssuite .add('one loop', () => { for (let i = 0; i < 10000; i++) { heavy(); heavy(); } }) .add('divide loop', () => { for (let i = 0; i < 10000; i++) { heavy(); } for (let i = 0; i < 10000; i++) { heavy(); } }) .on('cycle', function(event) { console.log(String(event.target)); }) .on('complete', function() { console.log('Fastest is ' + this.filter('fastest').map('name')); }) .run({ 'async': true });
optimization_id = 2source_position = 0kind = OPTIMIZED_FUNCTIONstack_slots = 22compiler = turbofanInstructions (size = 1445)0x3f4a6c304800 0 55 push rbp0x3f4a6c304801 1 4889e5 REX.W movq rbp,rsp0x3f4a6c304804 4 56 push rsi0x3f4a6c304805 5 57 push rdi0x3f4a6c304806 6 48ba00000000c2000000 REX.W movq rdx,0xc2000000000x3f4a6c304810 10 e84bf9dfff call 0x3f4a6c104160 (Abort) ;; code: BUILTIN0x3f4a6c304815 15 cc int3l0x3f4a6c304816 16 4883ec30 REX.W subq rsp,0x300x3f4a6c30481a 1a 48897580 REX.W movq [rbp-0x80],rsi0x3f4a6c30481e 1e 488b55a8 REX.W movq rdx,[rbp-0x58]0x3f4a6c304822 22 488b45b8 REX.W movq rax,[rbp-0x48]0x3f4a6c304826 26 488b5dc0 REX.W movq rbx,[rbp-0x40]0x3f4a6c30482a 2a 660f1f440000 nop0x3f4a6c304830 30 4533c0 xorl r8,r80x3f4a6c304833 33 48bf0000000010270000 REX.W movq rdi,0x2710000000000x3f4a6c30483d 3d 48b90000000001000000 REX.W movq rcx,0x1000000000x3f4a6c304847 47 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3f4a6c30484e 4e 0f86ae020000 jna 0x3f4a6c304b02 <+0x302>0x3f4a6c304854 54 a801 test al,0x10x3f4a6c304856 56 0f85a0040000 jnz 0x3f4a6c304cfc <+0x4fc>0x3f4a6c30485c 5c 483bc8 REX.W cmpq rcx,rax0x3f4a6c30485f 5f 0f842c000000 jz 0x3f4a6c304891 <+0x91>0x3f4a6c304865 65 f6c301 testb rbx,0x10x3f4a6c304868 68 0f8593040000 jnz 0x3f4a6c304d01 <+0x501>0x3f4a6c30486e 6e 488bf3 REX.W movq rsi,rbx0x3f4a6c304871 71 48c1ee20 REX.W shrq rsi, 320x3f4a6c304875 75 83eeff subl rsi,0xff0x3f4a6c304878 78 0f8088040000 jo 0x3f4a6c304d06 <+0x506>0x3f4a6c30487e 7e 48c1e620 REX.W shlq rsi, 320x3f4a6c304882 82 48898570ffffff REX.W movq [rbp-0x90],rax0x3f4a6c304889 89 4c8bce REX.W movq r9,rsi0x3f4a6c30488c 8c e90c000000 jmp 0x3f4a6c30489d <+0x9d>0x3f4a6c304891 91 33c0 xorl rax,rax0x3f4a6c304893 93 4c8bcb REX.W movq r9,rbx0x3f4a6c304896 96 48898570ffffff REX.W movq [rbp-0x90],rax0x3f4a6c30489d 9d 41f6c101 testb r9,0x10x3f4a6c3048a1 a1 0f8564040000 jnz 0x3f4a6c304d0b <+0x50b>0x3f4a6c3048a7 a7 4c898d78ffffff REX.W movq [rbp-0x88],r90x3f4a6c3048ae ae 4c3bcf REX.W cmpq r9,rdi0x3f4a6c3048b1 b1 0f8d41020000 jge 0x3f4a6c304af8 <+0x2f8>0x3f4a6c3048b7 b7 be01000000 movl rsi,0x10x3f4a6c3048bc bc 498b45a0 REX.W movq rax,[r13-0x60]0x3f4a6c3048c0 c0 ba01000000 movl rdx,0x10x3f4a6c3048c5 c5 83fe01 cmpl rsi,0x10x3f4a6c3048c8 c8 0f851b020000 jnz 0x3f4a6c304ae9 <+0x2e9>0x3f4a6c3048ce ce 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3f4a6c3048d5 d5 0f867c020000 jna 0x3f4a6c304b57 <+0x357>0x3f4a6c3048db db 498bc0 REX.W movq rax,r80x3f4a6c3048de de 488bda REX.W movq rbx,rdx0x3f4a6c3048e1 e1 49ba0000000000000000 REX.W movq r10,0x00x3f4a6c3048eb eb 4c895588 REX.W movq [rbp-0x78],r100x3f4a6c3048ef ef 90 nop0x3f4a6c3048f0 f0 c5f957c0 vxorpd xmm0,xmm0,xmm00x3f4a6c3048f4 f4 49bc7092890801000000 REX.W movq r12,0x108899270 ;; external reference (Runtime::DateCurrentTime)0x3f4a6c3048fe fe 49bbd13bb8122d320000 REX.W movq r11,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304908 108 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3f4a6c30490f 10f 0f867f020000 jna 0x3f4a6c304b94 <+0x394>0x3f4a6c304915 115 83fb01 cmpl rbx,0x10x3f4a6c304918 118 0f841b000000 jz 0x3f4a6c304939 <+0x139>0x3f4a6c30491e 11e 488bf0 REX.W movq rsi,rax0x3f4a6c304921 121 83eeff subl rsi,0xff0x3f4a6c304924 124 0f80e6030000 jo 0x3f4a6c304d10 <+0x510>0x3f4a6c30492a 12a 48899d60ffffff REX.W movq [rbp-0xa0],rbx0x3f4a6c304931 131 4c8bf6 REX.W movq r14,rsi0x3f4a6c304934 134 e90a000000 jmp 0x3f4a6c304943 <+0x143>0x3f4a6c304939 139 4c898560ffffff REX.W movq [rbp-0xa0],r80x3f4a6c304940 140 4c8bf0 REX.W movq r14,rax0x3f4a6c304943 143 4c89b568ffffff REX.W movq [rbp-0x98],r140x3f4a6c30494a 14a 4183fe6k4 cmpl r14,0x640x3f4a6c30494e 14e 0f8373000000 jnc 0x3f4a6c3049c7 <+0x1c7>0x3f4a6c304954 154 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3f4a6c30495b 15b 0f86aa020000 jna 0x3f4a6c304c0b <+0x40b>0x3f4a6c304961 161 4c89e3 REX.W movq rbx,r120x3f4a6c304964 164 498bc0 REX.W movq rax,r80x3f4a6c304967 167 498bf3 REX.W movq rsi,r110x3f4a6c30496a 16a e891f8dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c30496f 16f a801 test al,0x10x3f4a6c304971 171 0f85f6020000 jnz 0x3f4a6c304c6d <+0x46d>0x3f4a6c304977 177 48c1e820 REX.W shrq rax, 320x3f4a6c30497b 17b c5f957c0 vxorpd xmm0,xmm0,xmm00x3f4a6c30497f 17f c5fb2ac0 vcvtlsi2sd xmm0,xmm0,rax0x3f4a6c304983 183 c5fb104d88 vmovsd xmm1,[rbp-0x78]0x3f4a6c304988 188 c5f358c0 vaddsd xmm0,xmm1,xmm00x3f4a6c30498c 18c 488b9d60ffffff REX.W movq rbx,[rbp-0xa0]0x3f4a6c304993 193 c5fb114588 vmovsd [rbp-0x78],xmm00x3f4a6c304998 198 488b8568ffffff REX.W movq rax,[rbp-0x98]0x3f4a6c30499f 19f 4c8b8d78ffffff REX.W movq r9,[rbp-0x88]0x3f4a6c3049a6 1a6 48b90000000001000000 REX.W movq rcx,0x1000000000x3f4a6c3049b0 1b0 4533c0 xorl r8,r80x3f4a6c3049b3 1b3 48bf0000000010270000 REX.W movq rdi,0x2710000000000x3f4a6c3049bd 1bd ba01000000 movl rdx,0x10x3f4a6c3049c2 1c2 e929ffffff jmp 0x3f4a6c3048f0 <+0xf0>0x3f4a6c3049c7 1c7 bb01000000 movl rbx,0x10x3f4a6c3049cc 1cc 49ba0000000000000000 REX.W movq r10,0x00x3f4a6c3049d6 1d6 4c895588 REX.W movq [rbp-0x78],r100x3f4a6c3049da 1da 33c0 xorl rax,rax0x3f4a6c3049dc 1dc 0f1f4000 nop0x3f4a6c3049e0 1e0 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3f4a6c3049e7 1e7 0f868a020000 jna 0x3f4a6c304c77 <+0x477>0x3f4a6c3049ed 1ed 83fb01 cmpl rbx,0x10x3f4a6c3049f0 1f0 0f8418000000 jz 0x3f4a6c304a0e <+0x20e>0x3f4a6c3049f6 1f6 488bd0 REX.W movq rdx,rax0x3f4a6c3049f9 1f9 83eaff subl rdx,0xff0x3f4a6c3049fc 1fc 0f8013030000 jo 0x3f4a6c304d15 <+0x515>0x3f4a6c304a02 202 48899d60ffffff REX.W movq [rbp-0xa0],rbx0x3f4a6c304a09 209 e90d000000 jmp 0x3f4a6c304a1b <+0x21b>0x3f4a6c304a0e 20e 4533d2 xorl r10,r100x3f4a6c304a11 211 4c899560ffffff REX.W movq [rbp-0xa0],r100x3f4a6c304a18 218 488bd0 REX.W movq rdx,rax0x3f4a6c304a1b 21b 48899568ffffff REX.W movq [rbp-0x98],rdx0x3f4a6c304a22 222 83fa64 cmpl rdx,0x640x3f4a6c304a25 225 0f835d000000 jnc 0x3f4a6c304a88 <+0x288>0x3f4a6c304a2b 22b 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3f4a6c304a32 232 0f867b020000 jna 0x3f4a6c304cb3 <+0x4b3>0x3f4a6c304a38 238 48bb7092890801000000 REX.W movq rbx,0x108899270 ;; external reference (Runtime::DateCurrentTime)0x3f4a6c304a42 242 33c0 xorl rax,rax0x3f4a6c304a44 244 48bed13bb8122d320000 REX.W movq rsi,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304a4e 24e e8adf7dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c304a53 253 a801 test al,0x10x3f4a6c304a55 255 0f857f020000 jnz 0x3f4a6c304cda <+0x4da>0x3f4a6c304a5b 25b 48c1e820 REX.W shrq rax, 320x3f4a6c304a5f 25f c5f957c0 vxorpd xmm0,xmm0,xmm00x3f4a6c304a63 263 c5fb2ac0 vcvtlsi2sd xmm0,xmm0,rax0x3f4a6c304a67 267 c5fb104d88 vmovsd xmm1,[rbp-0x78]0x3f4a6c304a6c 26c c5f358c0 vaddsd xmm0,xmm1,xmm00x3f4a6c304a70 270 488b9d60ffffff REX.W movq rbx,[rbp-0xa0]0x3f4a6c304a77 277 c5fb114588 vmovsd [rbp-0x78],xmm00x3f4a6c304a7c 27c 488b8568ffffff REX.W movq rax,[rbp-0x98]0x3f4a6c304a83 283 e958ffffff jmp 0x3f4a6c3049e0 <+0x1e0>0x3f4a6c304a88 288 498b8520ce0400 REX.W movq rax,[r13+0x4ce20]0x3f4a6c304a8f 28f 488d5810 REX.W leaq rbx,[rax+0x10]0x3f4a6c304a93 293 c5fb104d88 vmovsd xmm1,[rbp-0x78]0x3f4a6c304a98 298 49399d28ce0400 REX.W cmpq [r13+0x4ce28],rbx0x3f4a6c304a9f 29f 0f863f020000 jna 0x3f4a6c304ce4 <+0x4e4>0x3f4a6c304aa5 2a5 488d5810 REX.W leaq rbx,[rax+0x10]0x3f4a6c304aa9 2a9 4883c001 REX.W addq rax,0x10x3f4a6c304aad 2ad 49899d20ce0400 REX.W movq [r13+0x4ce20],rbx0x3f4a6c304ab4 2b4 498b5d50 REX.W movq rbx,[r13+0x50]0x3f4a6c304ab8 2b8 488958ff REX.W movq [rax-0x1],rbx0x3f4a6c304abc 2bc c5fb114807 vmovsd [rax+0x7],xmm10x3f4a6c304ac1 2c1 48b90000000001000000 REX.W movq rcx,0x1000000000x3f4a6c304acb 2cb 33f6 xorl rsi,rsi0x3f4a6c304acd 2cd 488b9d78ffffff REX.W movq rbx,[rbp-0x88]0x3f4a6c304ad4 2d4 48bf0000000010270000 REX.W movq rdi,0x2710000000000x3f4a6c304ade 2de 4c8bc6 REX.W movq r8,rsi0x3f4a6c304ae1 2e1 4c8bcb REX.W movq r9,rbx0x3f4a6c304ae4 2e4 e9d7fdffff jmp 0x3f4a6c3048c0 <+0xc0>0x3f4a6c304ae9 2e9 488bd0 REX.W movq rdx,rax0x3f4a6c304aec 2ec 488b8570ffffff REX.W movq rax,[rbp-0x90]0x3f4a6c304af3 2f3 e938fdffff jmp 0x3f4a6c304830 <+0x30>0x3f4a6c304af8 2f8 488bc2 REX.W movq rax,rdx0x3f4a6c304afb 2fb 488be5 REX.W movq rsp,rbp0x3f4a6c304afe 2fe 5d pop rbp0x3f4a6c304aff 2ff c20800 ret 0x80x3f4a6c304b02 302 48895588 REX.W movq [rbp-0x78],rdx0x3f4a6c304b06 306 48899d68ffffff REX.W movq [rbp-0x98],rbx0x3f4a6c304b0d 30d 48898578ffffff REX.W movq [rbp-0x88],rax0x3f4a6c304b14 314 48bb20b28e0801000000 REX.W movq rbx,0x1088eb220 ;; external reference (Runtime::StackGuard)0x3f4a6c304b1e 31e 33c0 xorl rax,rax0x3f4a6c304b20 320 488b7580 REX.W movq rsi,[rbp-0x80]0x3f4a6c304b24 324 e8d7f6dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c304b29 329 48b90000000001000000 REX.W movq rcx,0x1000000000x3f4a6c304b33 333 488b5588 REX.W movq rdx,[rbp-0x78]0x3f4a6c304b37 337 4533c0 xorl r8,r80x3f4a6c304b3a 33a 488b9d68ffffff REX.W movq rbx,[rbp-0x98]0x3f4a6c304b41 341 48bf0000000010270000 REX.W movq rdi,0x2710000000000x3f4a6c304b4b 34b 488b8578ffffff REX.W movq rax,[rbp-0x88]0x3f4a6c304b52 352 e9fdfcffff jmp 0x3f4a6c304854 <+0x54>0x3f4a6c304b57 357 48bb20b28e0801000000 REX.W movq rbx,0x1088eb220 ;; external reference (Runtime::StackGuard)0x3f4a6c304b61 361 33c0 xorl rax,rax0x3f4a6c304b63 363 488b7580 REX.W movq rsi,[rbp-0x80]0x3f4a6c304b67 367 e894f6dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c304b6c 36c 48b90000000001000000 REX.W movq rcx,0x1000000000x3f4a6c304b76 376 4c8b8d78ffffff REX.W movq r9,[rbp-0x88]0x3f4a6c304b7d 37d 4533c0 xorl r8,r80x3f4a6c304b80 380 ba01000000 movl rdx,0x10x3f4a6c304b85 385 48bf0000000010270000 REX.W movq rdi,0x2710000000000x3f4a6c304b8f 38f e947fdffff jmp 0x3f4a6c3048db <+0xdb>0x3f4a6c304b94 394 48899d68ffffff REX.W movq [rbp-0x98],rbx0x3f4a6c304b9b 39b 48898560ffffff REX.W movq [rbp-0xa0],rax0x3f4a6c304ba2 3a2 48bb20b28e0801000000 REX.W movq rbx,0x1088eb220 ;; external reference (Runtime::StackGuard)0x3f4a6c304bac 3ac 33c0 xorl rax,rax0x3f4a6c304bae 3ae 48bed13bb8122d320000 REX.W movq rsi,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304bb8 3b8 e843f6dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c304bbd 3bd 48b90000000001000000 REX.W movq rcx,0x1000000000x3f4a6c304bc7 3c7 4c8b8d78ffffff REX.W movq r9,[rbp-0x88]0x3f4a6c304bce 3ce 49bc7092890801000000 REX.W movq r12,0x108899270 ;; external reference (Runtime::DateCurrentTime)0x3f4a6c304bd8 3d8 4533c0 xorl r8,r80x3f4a6c304bdb 3db 49bbd13bb8122d320000 REX.W movq r11,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304be5 3e5 ba01000000 movl rdx,0x10x3f4a6c304bea 3ea c5f957c0 vxorpd xmm0,xmm0,xmm00x3f4a6c304bee 3ee 488b9d68ffffff REX.W movq rbx,[rbp-0x98]0x3f4a6c304bf5 3f5 488b8560ffffff REX.W movq rax,[rbp-0xa0]0x3f4a6c304bfc 3fc 48bf0000000010270000 REX.W movq rdi,0x2710000000000x3f4a6c304c06 406 e90afdffff jmp 0x3f4a6c304915 <+0x115>0x3f4a6c304c0b 40b 48bb20b28e0801000000 REX.W movq rbx,0x1088eb220 ;; external reference (Runtime::StackGuard)0x3f4a6c304c15 415 33c0 xorl rax,rax0x3f4a6c304c17 417 48bed13bb8122d320000 REX.W movq rsi,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304c21 421 e8daf5dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c304c26 426 48b90000000001000000 REX.W movq rcx,0x1000000000x3f4a6c304c30 430 4c8b8d78ffffff REX.W movq r9,[rbp-0x88]0x3f4a6c304c37 437 49bc7092890801000000 REX.W movq r12,0x108899270 ;; external reference (Runtime::DateCurrentTime)0x3f4a6c304c41 441 4533c0 xorl r8,r80x3f4a6c304c44 444 49bbd13bb8122d320000 REX.W movq r11,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304c4e 44e ba01000000 movl rdx,0x10x3f4a6c304c53 453 c5f957c0 vxorpd xmm0,xmm0,xmm00x3f4a6c304c57 457 4c8bb568ffffff REX.W movq r14,[rbp-0x98]0x3f4a6c304c5e 45e 48bf0000000010270000 REX.W movq rdi,0x2710000000000x3f4a6c304c68 468 e9f4fcffff jmp 0x3f4a6c304961 <+0x161>0x3f4a6c304c6d 46d c5fb104007 vmovsd xmm0,[rax+0x7]0x3f4a6c304c72 472 e90cfdffff jmp 0x3f4a6c304983 <+0x183>0x3f4a6c304c77 477 48899d68ffffff REX.W movq [rbp-0x98],rbx0x3f4a6c304c7e 47e 48898560ffffff REX.W movq [rbp-0xa0],rax0x3f4a6c304c85 485 48bb20b28e0801000000 REX.W movq rbx,0x1088eb220 ;; external reference (Runtime::StackGuard)0x3f4a6c304c8f 48f 33c0 xorl rax,rax0x3f4a6c304c91 491 48bed13bb8122d320000 REX.W movq rsi,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304c9b 49b e860f5dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c304ca0 4a0 488b8560ffffff REX.W movq rax,[rbp-0xa0]0x3f4a6c304ca7 4a7 488b9d68ffffff REX.W movq rbx,[rbp-0x98]0x3f4a6c304cae 4ae e93afdffff jmp 0x3f4a6c3049ed <+0x1ed>0x3f4a6c304cb3 4b3 48bb20b28e0801000000 REX.W movq rbx,0x1088eb220 ;; external reference (Runtime::StackGuard)0x3f4a6c304cbd 4bd 33c0 xorl rax,rax0x3f4a6c304cbf 4bf 48bed13bb8122d320000 REX.W movq rsi,0x322d12b83bd1 ;; object: 0x322d12b83bd1 <FixedArray[267]>0x3f4a6c304cc9 4c9 e832f5dfff call 0x3f4a6c104200 ;; code: STUB, CEntryStub, minor: 80x3f4a6c304cce 4ce 488b9568ffffff REX.W movq rdx,[rbp-0x98]0x3f4a6c304cd5 4d5 e95efdffff jmp 0x3f4a6c304a38 <+0x238>0x3f4a6c304cda 4da c5fb104007 vmovsd xmm0,[rax+0x7]0x3f4a6c304cdf 4df e983fdffff jmp 0x3f4a6c304a67 <+0x267>0x3f4a6c304ce4 4e4 ba10000000 movl rdx,0x100x3f4a6c304ce9 4e9 e8f286efff call 0x3f4a6c1fd3e0 (AllocateInNewSpace) ;; code: BUILTIN0x3f4a6c304cee 4ee 4883e801 REX.W subq rax,0x10x3f4a6c304cf2 4f2 c5fb104d88 vmovsd xmm1,[rbp-0x78]0x3f4a6c304cf7 4f7 e9a9fdffff jmp 0x3f4a6c304aa5 <+0x2a5>0x3f4a6c304cfc 4fc e8fff2c7ff call 0x3f4a6bf84000 ;; deoptimization bailout 00x3f4a6c304d01 501 e804f3c7ff call 0x3f4a6bf8400a ;; deoptimization bailout 10x3f4a6c304d06 506 e809f3c7ff call 0x3f4a6bf84014 ;; deoptimization bailout 20x3f4a6c304d0b 50b e80ef3c7ff call 0x3f4a6bf8401e ;; deoptimization bailout 30x3f4a6c304d10 510 e813f3c7ff call 0x3f4a6bf84028 ;; deoptimization bailout 40x3f4a6c304d15 515 e82cf3c7ff call 0x3f4a6bf84046 ;; deoptimization bailout 70x3f4a6c304d1a 51a 90 nop0x3f4a6c304d1b 51b 90 nop0x3f4a6c304d1c 51c 90 nop0x3f4a6c304d1d 51d 90 nop0x3f4a6c304d1e 51e 90 nop0x3f4a6c304d1f 51f 90 nop0x3f4a6c304d20 520 90 nop0x3f4a6c304d21 521 90 nop0x3f4a6c304d22 522 90 nop0x3f4a6c304d23 523 90 nop0x3f4a6c304d24 524 90 nop0x3f4a6c304d25 525 90 nop0x3f4a6c304d26 526 90 nop0x3f4a6c304d27 527 90 nop
optimization_id = 2source_position = 0kind = OPTIMIZED_FUNCTIONstack_slots = 27compiler = turbofanInstructions (size = 1456)0x3b9775a04800 0 55 push rbp0x3b9775a04801 1 4889e5 REX.W movq rbp,rsp0x3b9775a04804 4 56 push rsi0x3b9775a04805 5 57 push rdi0x3b9775a04806 6 48ba00000000c2000000 REX.W movq rdx,0xc2000000000x3b9775a04810 10 e84bf9dfff call 0x3b9775804160 (Abort) ;; code: BUILTIN0x3b9775a04815 15 cc int3l0x3b9775a04816 16 4883ec30 REX.W subq rsp,0x300x3b9775a0481a 1a 4889b558ffffff REX.W movq [rbp-0xa8],rsi0x3b9775a04821 21 488b45a8 REX.W movq rax,[rbp-0x58]0x3b9775a04825 25 488b5db0 REX.W movq rbx,[rbp-0x50]0x3b9775a04829 29 0f1f8000000000 nop0x3b9775a04830 30 4533c0 xorl r8,r80x3b9775a04833 33 bf01000000 movl rdi,0x10x3b9775a04838 38 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a0483c 3c 48b90000000010270000 REX.W movq rcx,0x2710000000000x3b9775a04846 46 48ba0000000001000000 REX.W movq rdx,0x1000000000x3b9775a04850 50 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3b9775a04857 57 0f869f020000 jna 0x3b9775a04afc <+0x2fc>0x3b9775a0485d 5d a801 test al,0x10x3b9775a0485f 5f 0f85ab040000 jnz 0x3b9775a04d10 <+0x510>0x3b9775a04865 65 483bd0 REX.W cmpq rdx,rax0x3b9775a04868 68 0f842c000000 jz 0x3b9775a0489a <+0x9a>0x3b9775a0486e 6e f6c301 testb rbx,0x10x3b9775a04871 71 0f859e040000 jnz 0x3b9775a04d15 <+0x515>0x3b9775a04877 77 488bf3 REX.W movq rsi,rbx0x3b9775a0487a 7a 48c1ee20 REX.W shrq rsi, 320x3b9775a0487e 7e 83eeff subl rsi,0xff0x3b9775a04881 81 0f8093040000 jo 0x3b9775a04d1a <+0x51a>0x3b9775a04887 87 48c1e620 REX.W shlq rsi, 320x3b9775a0488b 8b 48898548ffffff REX.W movq [rbp-0xb8],rax0x3b9775a04892 92 4c8bce REX.W movq r9,rsi0x3b9775a04895 95 e90c000000 jmp 0x3b9775a048a6 <+0xa6>0x3b9775a0489a 9a 33c0 xorl rax,rax0x3b9775a0489c 9c 4c8bcb REX.W movq r9,rbx0x3b9775a0489f 9f 48898548ffffff REX.W movq [rbp-0xb8],rax0x3b9775a048a6 a6 41f6c101 testb r9,0x10x3b9775a048aa aa 0f856f040000 jnz 0x3b9775a04d1f <+0x51f>0x3b9775a048b0 b0 4c898d50ffffff REX.W movq [rbp-0xb0],r90x3b9775a048b7 b7 4c3bc9 REX.W cmpq r9,rcx0x3b9775a048ba ba 0f8d57010000 jge 0x3b9775a04a17 <+0x217>0x3b9775a048c0 c0 488bc7 REX.W movq rax,rdi0x3b9775a048c3 c3 6666660f1f840000000000 nop0x3b9775a048ce ce 6690 nop0x3b9775a048d0 d0 83f801 cmpl rax,0x10x3b9775a048d3 d3 0f8532010000 jnz 0x3b9775a04a0b <+0x20b>0x3b9775a048d9 d9 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3b9775a048e0 e0 0f866f020000 jna 0x3b9775a04b55 <+0x355>0x3b9775a048e6 e6 488bdf REX.W movq rbx,rdi0x3b9775a048e9 e9 c5fb118560ffffff vmovsd [rbp-0xa0],xmm00x3b9775a048f1 f1 498bc0 REX.W movq rax,r80x3b9775a048f4 f4 6666660f1f840000000000 nop0x3b9775a048ff ff 90 nop0x3b9775a04900 100 49bbd13b485ef92f0000 REX.W movq r11,0x2ff95e483bd1 ;; object: 0x2ff95e483bd1 <FixedArray[267]>0x3b9775a0490a 10a 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3b9775a04911 111 0f8682020000 jna 0x3b9775a04b99 <+0x399>0x3b9775a04917 117 83fb01 cmpl rbx,0x10x3b9775a0491a 11a 0f841b000000 jz 0x3b9775a0493b <+0x13b>0x3b9775a04920 120 488bf0 REX.W movq rsi,rax0x3b9775a04923 123 83eeff subl rsi,0xff0x3b9775a04926 126 0f80f8030000 jo 0x3b9775a04d24 <+0x524>0x3b9775a0492c 12c 48899d38ffffff REX.W movq [rbp-0xc8],rbx0x3b9775a04933 133 4c8be6 REX.W movq r12,rsi0x3b9775a04936 136 e90a000000 jmp 0x3b9775a04945 <+0x145>0x3b9775a0493b 13b 4c898538ffffff REX.W movq [rbp-0xc8],r80x3b9775a04942 142 4c8be0 REX.W movq r12,rax0x3b9775a04945 145 4c89a540ffffff REX.W movq [rbp-0xc0],r120x3b9775a0494c 14c 4183fc64 cmpl r12,0x640x3b9775a04950 150 0f8384000000 jnc 0x3b9775a049da <+0x1da>0x3b9775a04956 156 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3b9775a0495d 15d 0f86a3020000 jna 0x3b9775a04c06 <+0x406>0x3b9775a04963 163 48bb7032860f01000000 REX.W movq rbx,0x10f863270 ;; external reference (Runtime::DateCurrentTime)0x3b9775a0496d 16d 498bc0 REX.W movq rax,r80x3b9775a04970 170 498bf3 REX.W movq rsi,r110x3b9775a04973 173 e888f8dfff call 0x3b9775804200 ;; code: STUB, CEntryStub, minor: 80x3b9775a04978 178 a801 test al,0x10x3b9775a0497a 17a 0f85de020000 jnz 0x3b9775a04c5e <+0x45e>0x3b9775a04980 180 48c1e820 REX.W shrq rax, 320x3b9775a04984 184 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a04988 188 c5fb2ac0 vcvtlsi2sd xmm0,xmm0,rax0x3b9775a0498c 18c c5fb108d60ffffff vmovsd xmm1,[rbp-0xa0]0x3b9775a04994 194 c5f358c0 vaddsd xmm0,xmm1,xmm00x3b9775a04998 198 488b9d38ffffff REX.W movq rbx,[rbp-0xc8]0x3b9775a0499f 19f c5fb118560ffffff vmovsd [rbp-0xa0],xmm00x3b9775a049a7 1a7 488b8540ffffff REX.W movq rax,[rbp-0xc0]0x3b9775a049ae 1ae 4533c0 xorl r8,r80x3b9775a049b1 1b1 bf01000000 movl rdi,0x10x3b9775a049b6 1b6 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a049ba 1ba 4c8b8d50ffffff REX.W movq r9,[rbp-0xb0]0x3b9775a049c1 1c1 48ba0000000001000000 REX.W movq rdx,0x1000000000x3b9775a049cb 1cb 48b90000000010270000 REX.W movq rcx,0x2710000000000x3b9775a049d5 1d5 e926ffffff jmp 0x3b9775a04900 <+0x100>0x3b9775a049da 1da 33c0 xorl rax,rax0x3b9775a049dc 1dc 488b9d50ffffff REX.W movq rbx,[rbp-0xb0]0x3b9775a049e3 1e3 48ba0000000001000000 REX.W movq rdx,0x1000000000x3b9775a049ed 1ed bf01000000 movl rdi,0x10x3b9775a049f2 1f2 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a049f6 1f6 48b90000000010270000 REX.W movq rcx,0x2710000000000x3b9775a04a00 200 4c8bc0 REX.W movq r8,rax0x3b9775a04a03 203 4c8bcb REX.W movq r9,rbx0x3b9775a04a06 206 e9c5feffff jmp 0x3b9775a048d0 <+0xd0>0x3b9775a04a0b 20b 488b8548ffffff REX.W movq rax,[rbp-0xb8]0x3b9775a04a12 212 e919feffff jmp 0x3b9775a04830 <+0x30>0x3b9775a04a17 217 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a04a1b 21b 498b55a0 REX.W movq rdx,[r13-0x60]0x3b9775a04a1f 21f b801000000 movl rax,0x10x3b9775a04a24 224 6666660f1f840000000000 nop0x3b9775a04a2f 22f 90 nop
0x3b9775a04a30 230 498b5da0 REX.W movq rbx,[r13-0x60]0x3b9775a04a34 234 48b919fb4a5ef92f0000 REX.W movq rcx,0x2ff95e4afb19 ;; object: 0x2ff95e4afb19 <JSFunction heavy (sfi = 0x2ff95e4af691)>0x3b9775a04a3e 23e 49ba000000000088c340 REX.W movq r10,0x40c38800000000000x3b9775a04a48 248 c4c1f96eca vmovq xmm1,r100x3b9775a04a4d 24d 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3b9775a04a54 254 0f860e020000 jna 0x3b9775a04c68 <+0x468>0x3b9775a04a5a 25a 83f801 cmpl rax,0x10x3b9775a04a5d 25d 0f841f000000 jz 0x3b9775a04a82 <+0x282>0x3b9775a04a63 263 49ba000000000000f0bf REX.W movq r10,0xbff00000000000000x3b9775a04a6d 26d c4c1f96ed2 vmovq xmm2,r100x3b9775a04a72 272 c5fb5cc2 vsubsd xmm0,xmm0,xmm20x3b9775a04a76 276 48898548ffffff REX.W movq [rbp-0xb8],rax0x3b9775a04a7d 27d e90a000000 jmp 0x3b9775a04a8c <+0x28c>0x3b9775a04a82 282 4533d2 xorl r10,r100x3b9775a04a85 285 4c899548ffffff REX.W movq [rbp-0xb8],r100x3b9775a04a8c 28c c5fb118550ffffff vmovsd [rbp-0xb0],xmm00x3b9775a04a94 294 c5f92ec8 vucomisd xmm1,xmm00x3b9775a04a98 298 0f8654000000 jna 0x3b9775a04af2 <+0x2f2>0x3b9775a04a9e 29e 493ba5900c0000 REX.W cmpq rsp,[r13+0xc90]0x3b9775a04aa5 2a5 0f8623020000 jna 0x3b9775a04cce <+0x4ce>0x3b9775a04aab 2ab 488b7127 REX.W movq rsi,[rcx+0x27]0x3b9775a04aaf 2af 488b4627 REX.W movq rax,[rsi+0x27]0x3b9775a04ab3 2b3 488b502f REX.W movq rdx,[rax+0x2f]0x3b9775a04ab7 2b7 ff702f push [rax+0x2f]0x3b9775a04aba 2ba 488bf9 REX.W movq rdi,rcx0x3b9775a04abd 2bd 488bd3 REX.W movq rdx,rbx0x3b9775a04ac0 2c0 33c0 xorl rax,rax0x3b9775a04ac2 2c2 483b7727 REX.W cmpq rsi,[rdi+0x27]0x3b9775a04ac6 2c6 7410 jz 0x3b9775a04ad8 <+0x2d8>0x3b9775a04ac8 2c8 48ba00000000bf000000 REX.W movq rdx,0xbf000000000x3b9775a04ad2 2d2 e889f6dfff call 0x3b9775804160 (Abort) ;; code: BUILTIN0x3b9775a04ad7 2d7 cc int3l0x3b9775a04ad8 2d8 ff5737 call [rdi+0x37]0x3b9775a04adb 2db 488bd0 REX.W movq rdx,rax0x3b9775a04ade 2de 488b8548ffffff REX.W movq rax,[rbp-0xb8]0x3b9775a04ae5 2e5 c5fb108550ffffff vmovsd xmm0,[rbp-0xb0]0x3b9775a04aed 2ed e93effffff jmp 0x3b9775a04a30 <+0x230>0x3b9775a04af2 2f2 488bc2 REX.W movq rax,rdx0x3b9775a04af5 2f5 488be5 REX.W movq rsp,rbp0x3b9775a04af8 2f8 5d pop rbp0x3b9775a04af9 2f9 c20800 ret 0x80x3b9775a04afc 2fc 48899d60ffffff REX.W movq [rbp-0xa0],rbx0x3b9775a04b03 303 48898550ffffff REX.W movq [rbp-0xb0],rax0x3b9775a04b0a 30a 48bb20528b0f01000000 REX.W movq rbx,0x10f8b5220 ;; external reference (Runtime::StackGuard)0x3b9775a04b14 314 33c0 xorl rax,rax0x3b9775a04b16 316 488bb558ffffff REX.W movq rsi,[rbp-0xa8]0x3b9775a04b1d 31d e8def6dfff call 0x3b9775804200 ;; code: STUB, CEntryStub, minor: 80x3b9775a04b22 322 48ba0000000001000000 REX.W movq rdx,0x1000000000x3b9775a04b2c 32c 4533c0 xorl r8,r80x3b9775a04b2f 32f bf01000000 movl rdi,0x10x3b9775a04b34 334 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a04b38 338 488b9d60ffffff REX.W movq rbx,[rbp-0xa0]0x3b9775a04b3f 33f 48b90000000010270000 REX.W movq rcx,0x2710000000000x3b9775a04b49 349 488b8550ffffff REX.W movq rax,[rbp-0xb0]0x3b9775a04b50 350 e908fdffff jmp 0x3b9775a0485d <+0x5d>0x3b9775a04b55 355 48bb20528b0f01000000 REX.W movq rbx,0x10f8b5220 ;; external reference (Runtime::StackGuard)0x3b9775a04b5f 35f 33c0 xorl rax,rax0x3b9775a04b61 361 488bb558ffffff REX.W movq rsi,[rbp-0xa8]0x3b9775a04b68 368 e893f6dfff call 0x3b9775804200 ;; code: STUB, CEntryStub, minor: 80x3b9775a04b6d 36d 48ba0000000001000000 REX.W movq rdx,0x1000000000x3b9775a04b77 377 4533c0 xorl r8,r80x3b9775a04b7a 37a bf01000000 movl rdi,0x10x3b9775a04b7f 37f c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a04b83 383 4c8b8d50ffffff REX.W movq r9,[rbp-0xb0]0x3b9775a04b8a 38a 48b90000000010270000 REX.W movq rcx,0x2710000000000x3b9775a04b94 394 e94dfdffff jmp 0x3b9775a048e6 <+0xe6>0x3b9775a04b99 399 48899d40ffffff REX.W movq [rbp-0xc0],rbx0x3b9775a04ba0 3a0 48898538ffffff REX.W movq [rbp-0xc8],rax0x3b9775a04ba7 3a7 48bb20528b0f01000000 REX.W movq rbx,0x10f8b5220 ;; external reference (Runtime::StackGuard)0x3b9775a04bb1 3b1 33c0 xorl rax,rax0x3b9775a04bb3 3b3 48bed13b485ef92f0000 REX.W movq rsi,0x2ff95e483bd1 ;; object: 0x2ff95e483bd1 <FixedArray[267]>0x3b9775a04bbd 3bd e83ef6dfff call 0x3b9775804200 ;; code: STUB, CEntryStub, minor: 80x3b9775a04bc2 3c2 48ba0000000001000000 REX.W movq rdx,0x1000000000x3b9775a04bcc 3cc 4533c0 xorl r8,r80x3b9775a04bcf 3cf bf01000000 movl rdi,0x10x3b9775a04bd4 3d4 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a04bd8 3d8 4c8b8d50ffffff REX.W movq r9,[rbp-0xb0]0x3b9775a04bdf 3df 49bbd13b485ef92f0000 REX.W movq r11,0x2ff95e483bd1 ;; object: 0x2ff95e483bd1 <FixedArray[267]>0x3b9775a04be9 3e9 488b9d40ffffff REX.W movq rbx,[rbp-0xc0]0x3b9775a04bf0 3f0 488b8538ffffff REX.W movq rax,[rbp-0xc8]0x3b9775a04bf7 3f7 48b90000000010270000 REX.W movq rcx,0x2710000000000x3b9775a04c01 401 e911fdffff jmp 0x3b9775a04917 <+0x117>0x3b9775a04c06 406 48bb20528b0f01000000 REX.W movq rbx,0x10f8b5220 ;; external reference (Runtime::StackGuard)0x3b9775a04c10 410 33c0 xorl rax,rax0x3b9775a04c12 412 48bed13b485ef92f0000 REX.W movq rsi,0x2ff95e483bd1 ;; object: 0x2ff95e483bd1 <FixedArray[267]>0x3b9775a04c1c 41c e8dff5dfff call 0x3b9775804200 ;; code: STUB, CEntryStub, minor: 80x3b9775a04c21 421 48ba0000000001000000 REX.W movq rdx,0x1000000000x3b9775a04c2b 42b 4533c0 xorl r8,r80x3b9775a04c2e 42e bf01000000 movl rdi,0x10x3b9775a04c33 433 c5f957c0 vxorpd xmm0,xmm0,xmm00x3b9775a04c37 437 4c8b8d50ffffff REX.W movq r9,[rbp-0xb0]0x3b9775a04c3e 43e 4c8ba540ffffff REX.W movq r12,[rbp-0xc0]0x3b9775a04c45 445 49bbd13b485ef92f0000 REX.W movq r11,0x2ff95e483bd1 ;; object: 0x2ff95e483bd1 <FixedArray[267]>0x3b9775a04c4f 44f 48b90000000010270000 REX.W movq rcx,0x2710000000000x3b9775a04c59 459 e905fdffff jmp 0x3b9775a04963 <+0x163>0x3b9775a04c5e 45e c5fb104007 vmovsd xmm0,[rax+0x7]0x3b9775a04c63 463 e924fdffff jmp 0x3b9775a0498c <+0x18c>0x3b9775a04c68 468 48899560ffffff REX.W movq [rbp-0xa0],rdx0x3b9775a04c6f 46f 48898550ffffff REX.W movq [rbp-0xb0],rax0x3b9775a04c76 476 c5fb118548ffffff vmovsd [rbp-0xb8],xmm00x3b9775a04c7e 47e 48bb20528b0f01000000 REX.W movq rbx,0x10f8b5220 ;; external reference (Runtime::StackGuard)0x3b9775a04c88 488 33c0 xorl rax,rax0x3b9775a04c8a 48a 488bb558ffffff REX.W movq rsi,[rbp-0xa8]0x3b9775a04c91 491 e86af5dfff call 0x3b9775804200 ;; code: STUB, CEntryStub, minor: 80x3b9775a04c96 496 c5fb108548ffffff vmovsd xmm0,[rbp-0xb8]0x3b9775a04c9e 49e 488b9560ffffff REX.W movq rdx,[rbp-0xa0]0x3b9775a04ca5 4a5 48b919fb4a5ef92f0000 REX.W movq rcx,0x2ff95e4afb19 ;; object: 0x2ff95e4afb19 <JSFunction heavy (sfi = 0x2ff95e4af691)>0x3b9775a04caf 4af 498b5da0 REX.W movq rbx,[r13-0x60]0x3b9775a04cb3 4b3 49ba000000000088c340 REX.W movq r10,0x40c38800000000000x3b9775a04cbd 4bd c4c1f96eca vmovq xmm1,r100x3b9775a04cc2 4c2 488b8550ffffff REX.W movq rax,[rbp-0xb0]0x3b9775a04cc9 4c9 e98cfdffff jmp 0x3b9775a04a5a <+0x25a>0x3b9775a04cce 4ce 48bb20528b0f01000000 REX.W movq rbx,0x10f8b5220 ;; external reference (Runtime::StackGuard)0x3b9775a04cd8 4d8 33c0 xorl rax,rax0x3b9775a04cda 4da 488bb558ffffff REX.W movq rsi,[rbp-0xa8]0x3b9775a04ce1 4e1 e81af5dfff call 0x3b9775804200 ;; code: STUB, CEntryStub, minor: 80x3b9775a04ce6 4e6 49ba000000000088c340 REX.W movq r10,0x40c38800000000000x3b9775a04cf0 4f0 c4c1f96eca vmovq xmm1,r100x3b9775a04cf5 4f5 48b919fb4a5ef92f0000 REX.W movq rcx,0x2ff95e4afb19 ;; object: 0x2ff95e4afb19 <JSFunction heavy (sfi = 0x2ff95e4af691)>0x3b9775a04cff 4ff c5fb108550ffffff vmovsd xmm0,[rbp-0xb0]0x3b9775a04d07 507 498b5da0 REX.W movq rbx,[r13-0x60]0x3b9775a04d0b 50b e99bfdffff jmp 0x3b9775a04aab <+0x2ab>0x3b9775a04d10 510 e8ebf2c7ff call 0x3b9775684000 ;; deoptimization bailout 00x3b9775a04d15 515 e8f0f2c7ff call 0x3b977568400a ;; deoptimization bailout 10x3b9775a04d1a 51a e8f5f2c7ff call 0x3b9775684014 ;; deoptimization bailout 20x3b9775a04d1f 51f e8faf2c7ff call 0x3b977568401e ;; deoptimization bailout 30x3b9775a04d24 524 e8fff2c7ff call 0x3b9775684028 ;; deoptimization bailout 40x3b9775a04d29 529 90 nop0x3b9775a04d2a 52a 90 nop0x3b9775a04d2b 52b 90 nop0x3b9775a04d2c 52c 90 nop0x3b9775a04d2d 52d 90 nop0x3b9775a04d2e 52e 90 nop0x3b9775a04d2f 52f 90 nop0x3b9775a04d30 530 90 nop0x3b9775a04d31 531 90 nop0x3b9775a04d32 532 90 nop0x3b9775a04d33 533 90 nop0x3b9775a04d34 534 90 nop0x3b9775a04d35 535 90 nop0x3b9775a04d36 536 6690 nop
I think this might be due to loop fission optimization (https://en.wikipedia.org/wiki/Loop_fission), even GCC (C++ compiler) sometimes does that when appropriate.
--
--
v8-users mailing list
v8-u...@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups "v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.