java -cp classes/ -Xverify:none -XX:+EnableMVT -XX:+ValueArrayFlatten -Dvalhalla.enableValueLambdaForms=true -Dvalhalla.enablePoolPatches=true -XX:-TieredCompilation -Xbatch -XX:CICompilerCount=1 -XX:CompileCommand=dontinline,valhalla.vector.VectorTest::sumArrayL2 -XX:CompileCommand=print,valhalla.vector.VectorTest::sumArrayL2 -XX:-UseTLAB -XX:LoopMaxUnroll=0 -XX:+PrintEliminateAllocations -XX:+PrintEscapeAnalysis valhalla.vector.VectorTest 10 ... 33546 184 !b valhalla.vector.VectorTest::sumArrayL2 (18 bytes) ======== Connection graph for valhalla.vector.VectorTest::sumArrayL2 JavaObject NoEscape(NoEscape) NSR [ 1267F 1265F 756F 754F 1581F 1579F [ 1259 1264 532 1525 ]] 1247 Allocate === 1150 1147 1227 8 1 ( 305 304 58 1 1233 1 1 1 1 1 23 1 1 233 1 1 1 1 1 1 1 1 174 236 1 533 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ) [[ 1248 1249 1250 1257 1258 1259 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top, bottom ) 1651945012::invokeStatic004_LQJ_Q @ bci:14 87765719::invoke034_LIQIL_Q @ bci:122 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 !jvms: 1651945012::invokeStatic004_LQJ_Q @ bci:-1 87765719::invoke034_LIQIL_Q @ bci:122 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 1247P [ 1264 ]] 1259 Proj === 1247 [[ 1260 1264 ]] #5 !jvms: 1651945012::invokeStatic004_LQJ_Q @ bci:-1 87765719::invoke034_LIQIL_Q @ bci:122 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 1259 1247P [ 1267b 1265b 532 1525 ]] 1264 CheckCastPP === 1261 1259 [[ 1265 1265 1267 1267 1525 532 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !jvms: 1651945012::invokeStatic004_LQJ_Q @ bci:-1 87765719::invoke034_LIQIL_Q @ bci:122 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 324 1264 1247P 307P [ 756b 754b ]] 532 Phi === 1930 324 1264 [[ 754 633 603 756 756 754 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !orig=[752] !jvms: 553871028::invoke044_LL_J @ bci:170 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 1264 324 1247P 307P [ 1581b 1579b ]] 1525 Phi === 490 1264 324 [[ 1581 1579 1579 1581 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !jvms: 553871028::invoke044_LL_J @ bci:149 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 JavaObject NoEscape(NoEscape) [ 1154F [ 1148 1153 ]] 1136 Allocate === 1055 1052 1116 8 1 ( 305 304 58 1 1122 1 1 1 1 1 23 1 1 233 1 1 1 1 1 1 1 1 174 236 1 533 543 1 1 1 1 1 1 1 813 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ) [[ 1137 1138 1139 1146 1147 1148 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top, bottom ) 1651945012::invokeStatic004_LQJ_Q @ bci:14 1167116739::invoke006_LJ_Q @ bci:40 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 !jvms: 1651945012::invokeStatic004_LQJ_Q @ bci:-1 1167116739::invoke006_LJ_Q @ bci:40 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 1136P [ 1153 ]] 1148 Proj === 1136 [[ 1149 1153 ]] #5 !jvms: 1651945012::invokeStatic004_LQJ_Q @ bci:-1 1167116739::invoke006_LJ_Q @ bci:40 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 1148 1136P [ 1154b ]] 1153 CheckCastPP === 1150 1148 [[ 1154 1154 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !jvms: 1651945012::invokeStatic004_LQJ_Q @ bci:-1 1167116739::invoke006_LJ_Q @ bci:40 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 JavaObject NoEscape(NoEscape) [ [ 1053 ]] 1041 Allocate === 647 644 1021 8 1 ( 305 304 58 1 293 1 1 1 1 1 23 1 1 233 1 1 1 1 1 1 1 1 174 236 1 533 543 1 1 1 1 1 1 1 813 1 1 1 1 1 1 1 979 969 1 1 1 1 1 1 ) [[ 1042 1043 1044 1051 1052 1053 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top, bottom ) 64830413::invokeStatic003_L_Q @ bci:9 1167116739::invoke006_LJ_Q @ bci:15 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 !jvms: 64830413::invokeStatic003_L_Q @ bci:-1 1167116739::invoke006_LJ_Q @ bci:15 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 1041P [ ]] 1053 Proj === 1041 [[ 1054 ]] #5 !jvms: 64830413::invokeStatic003_L_Q @ bci:-1 1167116739::invoke006_LJ_Q @ bci:15 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 JavaObject NoEscape(NoEscape) [ 653F 651F [ 645 650 ]] 633 Allocate === 598 526 587 8 1 ( 305 304 58 1 615 1 1 1 1 1 23 1 1 233 1 1 1 1 1 1 1 1 174 236 1 533 543 1 532 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ) [[ 634 635 636 643 644 645 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top, bottom ) 1547425104::invokeStatic013_LLI_Q @ bci:11 87765719::invoke034_LIQIL_Q @ bci:20 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 !jvms: 1547425104::invokeStatic013_LLI_Q @ bci:-1 87765719::invoke034_LIQIL_Q @ bci:20 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 633P [ 650 ]] 645 Proj === 633 [[ 646 650 ]] #5 !jvms: 1547425104::invokeStatic013_LLI_Q @ bci:-1 87765719::invoke034_LIQIL_Q @ bci:20 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 645 633P [ 653b 651b ]] 650 CheckCastPP === 647 645 [[ 651 651 653 653 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !jvms: 1547425104::invokeStatic013_LLI_Q @ bci:-1 87765719::invoke034_LIQIL_Q @ bci:20 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 JavaObject NoEscape(NoEscape) NSR [ 756F 754F 1581F 1579F [ 319 324 532 1525 ]] 307 Allocate === 225 6 7 8 1 ( 305 304 58 1 293 1 1 1 1 1 23 1 1 233 1 1 1 1 1 1 1 1 174 236 1 1 1 1 1 1 1 ) [[ 308 309 310 317 318 319 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top, bottom ) 64830413::invokeStatic003_L_Q @ bci:9 1121454968::invoke028_LL_Q @ bci:12 553871028::invoke044_LL_J @ bci:89 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 !jvms: 64830413::invokeStatic003_L_Q @ bci:-1 1121454968::invoke028_LL_Q @ bci:12 553871028::invoke044_LL_J @ bci:89 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 307P [ 324 ]] 319 Proj === 307 [[ 320 324 ]] #5 !jvms: 64830413::invokeStatic003_L_Q @ bci:-1 1121454968::invoke028_LL_Q @ bci:12 553871028::invoke044_LL_J @ bci:89 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 319 307P [ 532 1525 ]] 324 CheckCastPP === 321 319 [[ 532 1525 519 506 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !orig=497 !jvms: 64830413::invokeStatic003_L_Q @ bci:-1 1121454968::invoke028_LL_Q @ bci:12 553871028::invoke044_LL_J @ bci:89 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 324 1264 1247P 307P [ 756b 754b ]] 532 Phi === 1930 324 1264 [[ 754 633 603 756 756 754 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !orig=[752] !jvms: 553871028::invoke044_LL_J @ bci:170 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 LocalVar [ 1264 324 1247P 307P [ 1581b 1579b ]] 1525 Phi === 490 1264 324 [[ 1581 1579 1579 1581 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !jvms: 553871028::invoke044_LL_J @ bci:149 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 Scalar 1153 CheckCastPP === 1150 1148 [[ 1154 1154 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !jvms: 1651945012::invokeStatic004_LQJ_Q @ bci:-1 1167116739::invoke006_LJ_Q @ bci:40 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 ++++ Eliminated: 1136 Allocate Scalar 1041 Allocate === 647 644 1021 8 1 ( 305 304 58 1 293 1 1 1 1 1 23 1 1 233 1 1 1 1 1 1 1 1 174 236 1 533 543 1 1 1 1 1 1 1 813 1 1 1 1 1 1 1 979 969 1 1 1 1 1 1 ) [[ 1042 1043 1044 1051 1052 1053 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top, bottom ) 64830413::invokeStatic003_L_Q @ bci:9 1167116739::invoke006_LJ_Q @ bci:15 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 !jvms: 64830413::invokeStatic003_L_Q @ bci:-1 1167116739::invoke006_LJ_Q @ bci:15 87765719::invoke034_LIQIL_Q @ bci:96 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 ++++ Eliminated: 1041 Allocate Scalar 650 CheckCastPP === 647 645 [[ 651 651 653 653 ]] #valuetype* valhalla/vector/Long2$Value:NotNull !jvms: 1547425104::invokeStatic013_LLI_Q @ bci:-1 87765719::invoke034_LIQIL_Q @ bci:20 553871028::invoke044_LL_J @ bci:185 861842890::invokeExact_MT001_LLL_J @ bci:19 VectorTest::sumArrayL2 @ bci:4 ++++ Eliminated: 633 Allocate Compiled method (c2) 33636 184 ! valhalla.vector.VectorTest::sumArrayL2 (18 bytes) ... # {method} {0x0000000127198be0} 'sumArrayL2' '(Ljava/lang/Object;)J' in 'valhalla/vector/VectorTest' # parm0: rsi:rsi = 'java/lang/Object' # [sp+0x40] (sp of caller) ;; N1: # B1 <- B14 B18 B13 B11 B19 B20 Freq: 1 ;; B1: # B18 B2 <- BLOCK HEAD IS JUNK Freq: 1 0x00000001175d0c40: mov %eax,-0x16000(%rsp) 0x00000001175d0c47: push %rbp 0x00000001175d0c48: sub $0x30,%rsp ;*synchronization entry ; - valhalla.vector.VectorTest::sumArrayL2@-1 (line 34) 0x00000001175d0c4c: mov %rsi,%r10 0x00000001175d0c4f: mov 0x8(%rsi),%r11d ; implicit exception: dispatches to 0x00000001175d0d60 ;; B2: # B14 B3 <- B1 Freq: 0.999999 0x00000001175d0c53: cmp $0xf8018086,%r11d ; {metadata('valhalla/vector/Long2$Value'[])} 0x00000001175d0c5a: jne 0x00000001175d0d35 ;; B3: # B15 B4 <- B2 Freq: 0.999999 0x00000001175d0c60: mov 0xc(%r10),%ebp ;*arraylength {reexecute=0 rethrow=0 return_oop=0 return_vt=0} 0x00000001175d0c64: mov %r10,(%rsp) 0x00000001175d0c68: movabs $0x7c0060420,%rsi ; {metadata('valhalla/vector/Long2$Value')} 0x00000001175d0c72: nop 0x00000001175d0c73: nop 0x00000001175d0c74: vzeroupper 0x00000001175d0c77: callq 0x0000000117579820 ; {runtime_call _new_instance_Java} ;; B4: # B12 B5 <- B3 Freq: 0.999979 0x00000001175d0c7c: mov %ebp,%r11d 0x00000001175d0c7f: test %ebp,%ebp 0x00000001175d0c81: jbe 0x00000001175d0d11 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0 return_vt=0} ;; B5: # B13 B6 <- B4 Freq: 0.90895 0x00000001175d0c87: mov %ebp,%r10d 0x00000001175d0c8a: dec %r10d 0x00000001175d0c8d: cmp %ebp,%r10d 0x00000001175d0c90: jae 0x00000001175d0d15 ;; B6: # B8 <- B5 Freq: 0.908949 0x00000001175d0c96: xor %ebp,%ebp 0x00000001175d0c98: mov %rax,0x10(%rsp) 0x00000001175d0c9d: jmp 0x00000001175d0caa 0x00000001175d0c9f: nop ;; B7: # B8 <- B9 top-of-loop Freq: 9.07508 0x00000001175d0ca0: mov %r9,0x10(%rsp) 0x00000001175d0ca5: mov 0x8(%rsp),%r11d ;; B8: # B16 B9 <- B6 B7 Loop: B8-B7 inner Freq: 9.98413 0x00000001175d0caa: mov %r11d,0x8(%rsp) 0x00000001175d0caf: movabs $0x7c0060420,%rsi ; {metadata('valhalla/vector/Long2$Value')} 0x00000001175d0cb9: nop 0x00000001175d0cba: nop 0x00000001175d0cbb: nop 0x00000001175d0cbc: vzeroupper 0x00000001175d0cbf: callq 0x0000000117579820 ; {runtime_call _new_instance_Java} ;; B9: # B7 B10 <- B8 Freq: 9.98393 0x00000001175d0cc4: mov %rax,%r9 0x00000001175d0cc7: mov 0x10(%rsp),%r11 0x00000001175d0ccc: mov 0x10(%r11),%r10 0x00000001175d0cd0: mov 0x18(%r11),%r11 0x00000001175d0cd4: movslq %ebp,%r8 0x00000001175d0cd7: shl $0x4,%r8 0x00000001175d0cdb: mov (%rsp),%rcx 0x00000001175d0cdf: mov 0x18(%rcx,%r8,1),%rax 0x00000001175d0ce4: mov 0x10(%rcx,%r8,1),%r8 ;*vaload {reexecute=0 rethrow=0 return_oop=0 return_vt=0} 0x00000001175d0ce9: add %r11,%rax ;*ladd {reexecute=0 rethrow=0 return_oop=0 return_vt=0} 0x00000001175d0cec: mov %rax,0x18(%r9) 0x00000001175d0cf0: add %r10,%r8 ;*ladd {reexecute=0 rethrow=0 return_oop=0 return_vt=0} 0x00000001175d0cf3: mov %r8,0x10(%r9) 0x00000001175d0cf7: inc %ebp ;*iadd {reexecute=0 rethrow=0 return_oop=0 return_vt=0} 0x00000001175d0cf9: cmp 0x8(%rsp),%ebp 0x00000001175d0cfd: jl 0x00000001175d0ca0 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0 return_vt=0} ;; B10: # B11 <- B9 Freq: 0.908849 0x00000001175d0cff: add %r8,%rax ;; B11: # N1 <- B10 B12 Freq: 0.999878 0x00000001175d0d02: vzeroupper 0x00000001175d0d05: add $0x30,%rsp 0x00000001175d0d09: pop %rbp 0x00000001175d0d0a: test %eax,-0xa01ad10(%rip) # 0x000000010d5b6000 ; {poll_return} 0x00000001175d0d10: retq ;; B12: # B11 <- B4 Freq: 0.0910293 0x00000001175d0d11: xor %eax,%eax 0x00000001175d0d13: jmp 0x00000001175d0d02 ;; B13: # N1 <- B5 Freq: 9.2102e-07 0x00000001175d0d15: mov $0xffffff86,%esi 0x00000001175d0d1a: mov (%rsp),%rbp 0x00000001175d0d1e: mov %r11d,(%rsp) 0x00000001175d0d22: mov %rax,0x8(%rsp) 0x00000001175d0d27: nop 0x00000001175d0d28: vzeroupper 0x00000001175d0d2b: callq 0x000000011749d0a0 ; {runtime_call UncommonTrapBlob} ;; B14: # N1 <- B2 Freq: 1e-35 0x00000001175d0d35: mov $0xffffff76,%esi 0x00000001175d0d3a: mov %r10,%rbp 0x00000001175d0d3d: nop 0x00000001175d0d3e: nop 0x00000001175d0d3f: nop 0x00000001175d0d40: vzeroupper 0x00000001175d0d43: callq 0x000000011749d0a0 ; {runtime_call UncommonTrapBlob} ;; B15: # B17 <- B3 Freq: 9.99999e-06 0x00000001175d0d4d: mov %rax,%rsi 0x00000001175d0d50: jmp 0x00000001175d0d55 ;; B16: # B17 <- B8 Freq: 9.98413e-05 0x00000001175d0d52: mov %rax,%rsi ;; B17: # B19 B20 <- B15 B16 Freq: 0.000109841 0x00000001175d0d55: nop 0x00000001175d0d56: nop 0x00000001175d0d57: nop 0x00000001175d0d58: vzeroupper 0x00000001175d0d5b: callq 0x000000011757c020 ; {runtime_call _rethrow_Java} ;; B18: # N1 <- B1 Freq: 1.01328e-06 0x00000001175d0d60: mov $0xffffff6e,%esi 0x00000001175d0d65: nop 0x00000001175d0d66: nop 0x00000001175d0d67: nop 0x00000001175d0d68: vzeroupper 0x00000001175d0d6b: callq 0x000000011749d0a0 ; {runtime_call UncommonTrapBlob} ;; B19: # N1 <- B17 Freq: 1.09841e-09 0x00000001175d0d75: mov %rax,%rsi 0x00000001175d0d78: vzeroupper 0x00000001175d0d7b: add $0x30,%rsp 0x00000001175d0d7f: pop %rbp 0x00000001175d0d80: jmpq 0x000000011757c020 ; {runtime_call _rethrow_Java} ;; B20: # N1 <- B17 Freq: 1.09841e-09 0x00000001175d0d85: mov $0xffffffbd,%esi 0x00000001175d0d8a: mov %rax,%rbp 0x00000001175d0d8d: nop 0x00000001175d0d8e: nop 0x00000001175d0d8f: nop 0x00000001175d0d90: vzeroupper 0x00000001175d0d93: callq 0x000000011749d0a0 ; {runtime_call UncommonTrapBlob} 0x00000001175d0d9d: hlt