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

Issue 691693003: Subzero: Improve the representation and handling of the FakeKill instruction. (Closed)

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

Description

Subzero: Improve the representation and handling of the FakeKill instruction. The FakeKill instruction is always used for killing scratch registers, and a fair amount of effort is spent building new copies of the same scratch register list each time (i.e., for each lowered call instruction). As such, we can create one master list of scratch registers and share it among all FakeKill instructions. Also, in all situations where an instruction's Srcs[] were considered for liveness, we had to either explicitly ignore an InstFakeKill instruction, or treat it specially. Now that InstFakeKill lacks any Srcs[] (or Dest), it doesn't need to be specially ignored, and the code is simplified. In addition, the text asm emitter no longer clutters the output with FakeKill comments (and FakeUse as well). BUG= none R=jvoung@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=bb8b624e7c2a4fcdf9275bad310df779797e91a8

Patch Set 1 #

Patch Set 2 : Reformat #

Patch Set 3 : Simplify special-casing of the FakeKills #

Total comments: 2

Patch Set 4 : Add an assert #

Unified diffs Side-by-side diffs Delta from patch set Stats (+39 lines, -48 lines) Patch
M src/IceCfg.cpp View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M src/IceCfgNode.cpp View 1 chunk +1 line, -3 lines 0 comments Download
M src/IceInst.h View 2 chunks +2 lines, -0 lines 0 comments Download
M src/IceInst.cpp View 1 4 chunks +13 lines, -20 lines 0 comments Download
M src/IceOperand.cpp View 1 2 1 chunk +2 lines, -12 lines 0 comments Download
M src/IceTargetLoweringX8632.h View 1 chunk +10 lines, -0 lines 0 comments Download
M src/IceTargetLoweringX8632.cpp View 1 2 3 6 chunks +11 lines, -11 lines 0 comments Download

Messages

Total messages: 5 (1 generated)
Jim Stichnoth
This seems to give a marginal performance improvement in translation time, on the order of ...
6 years, 1 month ago (2014-11-04 15:46:37 UTC) #2
jvoung (off chromium)
LGTM https://codereview.chromium.org/691693003/diff/40001/src/IceTargetLoweringX8632.cpp File src/IceTargetLoweringX8632.cpp (right): https://codereview.chromium.org/691693003/diff/40001/src/IceTargetLoweringX8632.cpp#newcode4544 src/IceTargetLoweringX8632.cpp:4544: // allocator. Maybe this can be an assert ...
6 years, 1 month ago (2014-11-04 16:47:07 UTC) #3
Jim Stichnoth
Committed patchset #4 (id:60001) manually as bb8b624e7c2a4fcdf9275bad310df779797e91a8 (tree was closed).
6 years, 1 month ago (2014-11-04 17:10:06 UTC) #4
Jim Stichnoth
6 years, 1 month ago (2014-11-04 17:10:39 UTC) #5
Message was sent while issue was closed.
https://codereview.chromium.org/691693003/diff/40001/src/IceTargetLoweringX86...
File src/IceTargetLoweringX8632.cpp (right):

https://codereview.chromium.org/691693003/diff/40001/src/IceTargetLoweringX86...
src/IceTargetLoweringX8632.cpp:4544: // allocator.
On 2014/11/04 16:47:07, jvoung wrote:
> Maybe this can be an assert that isa<InstFakeKill>(Inst) implies that the
> NumSrcs are 0. Then the comment above will be clearer about why InstFakeKill
is
> brought up here, but no code checks for it anymore.

Done.

Powered by Google App Engine
This is Rietveld 408576698