Reviewers: iposva, William Hesse,

Message:
This should enable deferred code safely.  There is still the general
issue that we haven't sorted out what to do with non-frame register
references at CFG merge points.  We should ensure that they are
identical on all paths.

Description:
Experimental: thread live register references to deferred code.
Deferred code conceptually appears inline, but it is generated at the
very end of a function.  Since registers could be alive at entry
and/or exit, it needs to know which ones.

We take a snapshot of the global register file's reference counts and
a copy of the virtual frame on entry, and use that to generate the
deferred code.  This requires the register file and frame to match for
deferred code snippets with multiple incoming CFG edges.  That's
trivially true now because all uses of deferred code occur with fully
spilled frames.

Also included are fixes for some small lint issues.

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

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

Affected files:
   M     src/codegen-ia32.cc
   M     src/codegen.h
   M     src/codegen.cc
   M     src/jump-target-arm.cc
   M     src/macro-assembler-ia32.cc
   M     src/register-allocator-ia32.h
   M     src/register-allocator-ia32.cc
   M     src/virtual-frame-arm.h
   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