Reviewers: iposva,

Description:
Experimental: three small codegen changes.

1. Do not let the esi register (reserved for the context) be available
    for register allocation.  This was unsafe as it stood.  We noe
    generate better code, because we do not spill it at a call (it's
    callee saved) and do not restore it after a call.

2. Move the code for making frames mergable from the common CFG edge
    leading to a branch and onto the labeled (non-fall-through) basic
    block.  This needs improvement: it should be triggered by a test
    that VirtualFrame::MakeMergable will actually generate code
    (sometimes it updates internal state and generates no code, in
    which case we now get an annoying branch to a jump).

3. Push the virtual frame farther.  It is enabled for blocks and some
    code paths through assignments.  It can now reach the entry of loop
    statements in the two loop benchmarks.


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

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.cc



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

Reply via email to