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

Issue 627203002: Subzero: Optimize live range overlaps() computation through trimming. (Closed)

Created:
6 years, 2 months ago by Jim Stichnoth
Modified:
6 years, 2 months ago
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Visibility:
Public.

Description

Subzero: Optimize live range overlaps() computation through trimming. The main optimization is for the repeated overlaps() calls against the Inactive set, by iteratively trimming away the early sections of the Inactive live ranges that can no longer overlap with Cur. A more minor optimization doesn't bother checking pure point-valued Inactive ranges for expiring or reactivating. BUG= none R=jvoung@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=037fa1d997307fd68c7e6d9c385e30890d65604d

Patch Set 1 #

Patch Set 2 : Make overlap() conservative by default #

Total comments: 7

Patch Set 3 : Use more trimming #

Patch Set 4 : Remove the variable definitions trimming to simplify #

Unified diffs Side-by-side diffs Delta from patch set Stats (+64 lines, -18 lines) Patch
M src/IceOperand.h View 1 2 3 4 chunks +20 lines, -6 lines 0 comments Download
M src/IceOperand.cpp View 1 2 3 4 chunks +17 lines, -7 lines 0 comments Download
M src/IceRegAlloc.h View 1 2 1 chunk +4 lines, -2 lines 0 comments Download
M src/IceRegAlloc.cpp View 1 2 3 5 chunks +23 lines, -3 lines 0 comments Download

Messages

Total messages: 8 (1 generated)
Jim Stichnoth
This gains anywhere from 5-30% across the spec2k components. The linearScan() time is now down ...
6 years, 2 months ago (2014-10-04 15:52:13 UTC) #2
jvoung (off chromium)
Great speedup! https://codereview.chromium.org/627203002/diff/20001/src/IceOperand.cpp File src/IceOperand.cpp (right): https://codereview.chromium.org/627203002/diff/20001/src/IceOperand.cpp#newcode128 src/IceOperand.cpp:128: bool LiveRange::overlaps(InstNumberT OtherBegin) const { Would it ...
6 years, 2 months ago (2014-10-05 20:34:14 UTC) #3
Jim Stichnoth
I still want to make another pass on this. The trim() stuff is still too ...
6 years, 2 months ago (2014-10-06 13:38:02 UTC) #4
jvoung (off chromium)
https://codereview.chromium.org/627203002/diff/20001/src/IceOperand.cpp File src/IceOperand.cpp (right): https://codereview.chromium.org/627203002/diff/20001/src/IceOperand.cpp#newcode164 src/IceOperand.cpp:164: while (TrimmedBegin != Range.end() && TrimmedBegin->second <= Lower) On ...
6 years, 2 months ago (2014-10-06 21:57:26 UTC) #5
Jim Stichnoth
I tried trimming the variable definitions list as well, for the overlap validity tests, but ...
6 years, 2 months ago (2014-10-07 17:01:40 UTC) #6
jvoung (off chromium)
lgtm
6 years, 2 months ago (2014-10-07 18:07:44 UTC) #7
Jim Stichnoth
6 years, 2 months ago (2014-10-07 18:09:42 UTC) #8
Message was sent while issue was closed.
Committed patchset #4 (id:60001) manually as
037fa1d997307fd68c7e6d9c385e30890d65604d (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698