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
-~----------~----~----~----~------~----~------~--~---