Updates:
Cc: [email protected]
Comment #1 on issue 2450 by [email protected]: Sink spill stores out of
loop when possible
http://code.google.com/p/v8/issues/detail?id=2450
Proposed improvement for register allocator:
https://codereview.chromium.org/11575030
With it we generate:
;;; B2 - LOOP entry
;;; @27: gap.
;;; @28: gap.
;;; @29: cmp-id-and-branch. <#29>
0x3282bda3 99 81f9e8030000 cmp ecx,0x3e8
0x3282bda9 105 0f8d1d000000 jnl 140 (0x3282bdcc)
;;; @34: label. <#36>
;;; B4
;;; @35: gap.
;;; @36: stack-check. <#38>
0x3282bdaf 111 3b2554878c08 cmp esp,[0x88c8754]
0x3282bdb5 117 0f82c4010000 jc 575 (0x3282bf7f)
;;; @37: gap.
0x3282bdbb 123 89d3 mov ebx,edx
;;; @38: add-i. <#39>
0x3282bdbd 125 03d9 add ebx,ecx
0x3282bdbf 127 0f8077d2f617 jo 0x4a79903c ;;
deoptimization bailout 6
;;; @39: gap.
;;; @40: add-i. <#42>
0x3282bdc5 133 83c101 add ecx,0x1
;;; @41: gap.
;;; @42: gap.
0x3282bdc8 136 89da mov edx,ebx
;;; @43: goto. <#44>
0x3282bdca 138 ebd7 jmp 99 (0x3282bda3)
;;; @48: label. <#45>
;;; B6
0x3282bdcc 140 894de8 mov [ebp+0xe8],ecx
0x3282bdcf 143 8955e4 mov [ebp+0xe4],edx
(spill stores were sunk from B2 down to B6).
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev