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

Issue 6690006: Improve GVN dependency tracking by adding parameters to certain flags.

Created:
9 years, 9 months ago by Vitaly Repeshko
Modified:
9 years, 9 months ago
Reviewers:
fschneider
CC:
v8-dev
Visibility:
Public.

Description

Improve GVN dependency tracking by adding parameters to certain flags. A set of GVN flags with parameters is represented by a zone-allocated HEffectSet. This changes allows global, context, and field loads and stores that operate on different cells, slot indices, and field indices to become independent.

Patch Set 1 #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+219 lines, -46 lines) Patch
M src/hydrogen.h View 2 chunks +4 lines, -1 line 0 comments Download
M src/hydrogen.cc View 13 chunks +163 lines, -41 lines 4 comments Download
M src/hydrogen-instructions.h View 11 chunks +50 lines, -4 lines 2 comments Download
M src/hydrogen-instructions.cc View 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
Vitaly Repeshko
9 years, 9 months ago (2011-03-14 10:43:12 UTC) #1
fschneider
9 years, 9 months ago (2011-03-16 15:43:28 UTC) #2
LGTM.

I'm curious about the performance improvements. 

However we should keep an eye on the increased allocation and compile time. If
this causes a big degradation, we should consider optimizing the underlying data
structures in gvn.

http://codereview.chromium.org/6690006/diff/1/src/hydrogen-instructions.h
File src/hydrogen-instructions.h (right):

http://codereview.chromium.org/6690006/diff/1/src/hydrogen-instructions.h#new...
src/hydrogen-instructions.h:2950: return (offset_ << 1) || (is_in_object_ ? 1 :
0);
Shouldn't be this bitwise-or "|"?

http://codereview.chromium.org/6690006/diff/1/src/hydrogen-instructions.h#new...
src/hydrogen-instructions.h:3123: return (offset_ << 1) || (is_in_object_ ? 1 :
0);
-> use "|" here as well.

http://codereview.chromium.org/6690006/diff/1/src/hydrogen.cc
File src/hydrogen.cc (right):

http://codereview.chromium.org/6690006/diff/1/src/hydrogen.cc#newcode1010
src/hydrogen.cc:1010: HEffectSet() : parameters_(0) {
Since Initialize() also initializes paramters_, there is no need to mention it
in the initializer list.

http://codereview.chromium.org/6690006/diff/1/src/hydrogen.cc#newcode1014
src/hydrogen.cc:1014: explicit HEffectSet(int flags) : parameters_(0) {
Same here.

http://codereview.chromium.org/6690006/diff/1/src/hydrogen.cc#newcode1039
src/hydrogen.cc:1039: int flag = i << 1;
You could move this line to after the continue.

http://codereview.chromium.org/6690006/diff/1/src/hydrogen.cc#newcode1102
src/hydrogen.cc:1102: if (parameters_.length() <= flag_index) {
I find (flag_index >= parameters_.length()) better.

Powered by Google App Engine
This is Rietveld 408576698