Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Issue 17414: Add register allocation for a lot of calls. (Closed)

Created:
11 years, 11 months ago by Kasper Lund
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Add register allocation for a lot of calls. Committed: http://code.google.com/p/v8/source/detail?r=1049

Patch Set 1 #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+58 lines, -33 lines) Patch
M src/codegen-ia32.h View 1 chunk +1 line, -1 line 0 comments Download
M src/codegen-ia32.cc View 15 chunks +49 lines, -30 lines 4 comments Download
M src/virtual-frame-ia32.cc View 1 chunk +8 lines, -2 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
Kasper Lund
11 years, 11 months ago (2009-01-08 12:54:06 UTC) #1
Kevin Millikin (Chromium)
11 years, 11 months ago (2009-01-08 13:13:49 UTC) #2
LGTM.  But for consistency, we should make either all or none of the frame's
call methods responsible for allocating the eax result register.

http://codereview.chromium.org/17414/diff/1/4
File src/codegen-ia32.cc (right):

http://codereview.chromium.org/17414/diff/1/4#newcode459
Line 459: Result temp = allocator_->Allocate();
We haven't sorted out what happens when a call to Allocate() fails.  It can fail
if there are too many off-frame register references.

For now, we have asserts that the result is valid after all the calls to
Allocate to help us catch when it happens.

http://codereview.chromium.org/17414/diff/1/4#newcode1358
Line 1358: Result result = allocator_->Allocate(eax);
CallStub should be responsible for allocating the eax result and returning it. 
There are some overloaded ones that do already.

http://codereview.chromium.org/17414/diff/1/4#newcode3198
Line 3198: Result result = allocator_->Allocate(eax);
Ditto CallCodeObject.

http://codereview.chromium.org/17414/diff/1/4#newcode3266
Line 3266: frame_->EmitPush(frame_->ElementAt(ref.size()));
There is a function in the frame class that copies a (base-relative) frame
element to the top of the frame without requiring spilling.  Maybe it's worth
considering the top-relative version of that here even though we know a call is
coming right up.

Powered by Google App Engine
This is Rietveld 408576698