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

Reply via email to