Reviewers: iposva, William Hesse,

Message:
This change includes my previous one.  Take a look at this one instead
if you haven't already started, otherwise I'll take comments on the
other one too (ie, whichever is most convenient for you).


Description:
Experimental: more code generator changes.

1. Enable virtual frame/register allocator for for loops.

2. Spill all registers before the stack check code. We were always
    spilled before simply due to it being the function entry.  Now that
    we handle for loops, that is not necessarily the case.

3. Label blocks first reached via JumpTarget::Bind with a 'mergable'
    frame in case they are the later target of a backward CFG edge.  We
    didn't have non-spilled code at backward CFG edges before.

4. Avoid generating a branch to a jump for JumpTarget::Branch in the
    case that there is no code necessary to make the expected frame
    mergable.

5. Remove some overzealous spilling.

Please review this at http://codereview.chromium.org/13246

SVN Base: http://v8.googlecode.com/svn/branches/experimental/toiger/

Affected files:
   M     src/assembler-ia32.h
   M     src/codegen-ia32.cc
   M     src/jump-target-ia32.cc
   M     src/virtual-frame-ia32.h
   M     src/virtual-frame-ia32.cc



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to