Go to file
kmillikin@chromium.org 437914da90 Change the algorithm and generated code for parallel moves on IA32.
Instead of spilling and then immediately restoring eax to resolve
memory to memory moves, the gap move resolver now tracks registers
that are known to be free and uses one if available.  If not it spills
but restores lazily when the spilled value is needed or at the end of
the algorithm.

Instead of using esi for resolving cycles and assuming it is free to
overwrite because it can be rematerialized, the gap move resolver now
resolves cycles using swaps, possibly using a free register as above.

The algorithm is also changed to be simpler: a recursive depth-first
traversal of the move dependence graph.  It uses a list of moves to be
performed (because it mutates the moves themselves), but does not use
any auxiliary structure other than the control stack.  It does not
build up a separate list of scheduled moves to be interpreted by the
code generate, but emits code on the fly.

Review URL: http://codereview.chromium.org/6263005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 11:25:36 +00:00
benchmarks Promote the current V8 benchmark suite candidate to version 6. 2010-10-07 07:25:22 +00:00
build Initial attempt to add support for using gyp to build V8 itself 2010-12-14 08:16:39 +00:00
include Wrap external pointers more carefully. 2011-01-13 15:56:33 +00:00
preparser Use the file opened from argv[1] in preparser-process.cc 2010-12-08 10:47:59 +00:00
samples Initial attempt to add support for using gyp to build V8 itself 2010-12-14 08:16:39 +00:00
src Change the algorithm and generated code for parallel moves on IA32. 2011-01-17 11:25:36 +00:00
test Make invalid break/continue statements an early syntax error. 2011-01-17 09:36:10 +00:00
tools Change the algorithm and generated code for parallel moves on IA32. 2011-01-17 11:25:36 +00:00
.gitignore Add '.cpplint-cache' to ignore lists for SVN and Git. This change also sets 'ignore' property on '.', although this change isn't visible in Rietveld. 2009-12-11 09:01:38 +00:00
AUTHORS nGW build 2010-12-02 15:37:45 +00:00
ChangeLog Prepare push to trunk. We are now working in 3.0.9. 2011-01-17 10:38:47 +00:00
LICENSE Remove Gay's dtoa from sources. 2010-11-22 14:42:07 +00:00
SConstruct Revert accidental part of http://codereview.chromium.org/6123007/ 2011-01-12 14:32:51 +00:00