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

Issue 1182603004: Subzero: Transform suitable Load/Arith/Store sequences into RMW ops. (Closed)

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

Description

Subzero: Transform suitable Load/Arith/Store sequences into RMW ops. Search for sequences of Load/Arith/Store instructions that can be transformed into single non-atomic Read-Modify-Write instructions. Corresponding operands must match up, and it is limited to the operator/type combinations that have simple lowerings. For suitable sequences, an RMW pseudo-instruction is added. Extra variables are attached to the RMW instruction and the original Store instruction, to make it easy to figure out whether to retain the original Store instruction or the new RMW instruction (but never both). The RMW instructions are similar to their non-RMW counterparts, except that the RMW instruction has no Dest variable - the Src[0] operand doubles as the memory-operand dest. The x86-32 integrated assembler has some new forms of existing instructions added. Note: this CL puts the machinery in place to identify, lower, and emit RMW operations only for the "add" instruction operating on i32/i16/i8 operands. The next CL will fill in the rest of the options. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4095 R=jvoung@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=e4f65d86d863cc8ec0851846b5716280443cd882

Patch Set 1 #

Patch Set 2 : Cleanup #

Total comments: 20

Patch Set 3 : Code review changes #

Total comments: 4

Patch Set 4 : Code review changes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+478 lines, -18 lines) Patch
M src/IceAssemblerX8632.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/IceAssemblerX8632.cpp View 1 chunk +23 lines, -0 lines 0 comments Download
M src/IceCfg.cpp View 1 chunk +5 lines, -1 line 0 comments Download
M src/IceClFlags.cpp View 1 chunk +1 line, -0 lines 0 comments Download
M src/IceDefs.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/IceInst.h View 1 chunk +4 lines, -2 lines 0 comments Download
M src/IceInst.cpp View 2 chunks +15 lines, -1 line 0 comments Download
M src/IceInstX8632.h View 1 2 3 6 chunks +84 lines, -0 lines 0 comments Download
M src/IceInstX8632.cpp View 1 2 5 chunks +28 lines, -1 line 0 comments Download
M src/IceTargetLowering.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M src/IceTargetLowering.cpp View 1 2 3 3 chunks +12 lines, -11 lines 0 comments Download
M src/IceTargetLoweringX8632.h View 1 2 3 3 chunks +6 lines, -0 lines 0 comments Download
M src/IceTargetLoweringX8632.cpp View 1 2 3 4 chunks +190 lines, -1 line 0 comments Download
M tests_lit/llvm2ice_tests/ias-multi-reloc.ll View 2 chunks +2 lines, -1 line 0 comments Download
A tests_lit/llvm2ice_tests/rmw.ll View 1 2 3 1 chunk +104 lines, -0 lines 0 comments Download

Messages

Total messages: 7 (1 generated)
Jim Stichnoth
5 years, 6 months ago (2015-06-16 07:04:41 UTC) #2
jvoung (off chromium)
https://codereview.chromium.org/1182603004/diff/20001/src/IceInst.cpp File src/IceInst.cpp (right): https://codereview.chromium.org/1182603004/diff/20001/src/IceInst.cpp#newcode429 src/IceInst.cpp:429: addSource(Data); Would it be safer to have nullptr as ...
5 years, 6 months ago (2015-06-16 17:59:22 UTC) #3
Jim Stichnoth
https://codereview.chromium.org/1182603004/diff/20001/src/IceInst.cpp File src/IceInst.cpp (right): https://codereview.chromium.org/1182603004/diff/20001/src/IceInst.cpp#newcode429 src/IceInst.cpp:429: addSource(Data); On 2015/06/16 17:59:21, jvoung wrote: > Would it ...
5 years, 6 months ago (2015-06-17 00:15:40 UTC) #4
jvoung (off chromium)
otherwise LGTM https://codereview.chromium.org/1182603004/diff/20001/src/IceTargetLoweringX8632.cpp File src/IceTargetLoweringX8632.cpp (right): https://codereview.chromium.org/1182603004/diff/20001/src/IceTargetLoweringX8632.cpp#newcode4494 src/IceTargetLoweringX8632.cpp:4494: void TargetX8632::doAddressOptStore() { On 2015/06/17 00:15:40, stichnot ...
5 years, 6 months ago (2015-06-17 16:40:23 UTC) #5
Jim Stichnoth
https://codereview.chromium.org/1182603004/diff/20001/src/IceTargetLoweringX8632.cpp File src/IceTargetLoweringX8632.cpp (right): https://codereview.chromium.org/1182603004/diff/20001/src/IceTargetLoweringX8632.cpp#newcode4494 src/IceTargetLoweringX8632.cpp:4494: void TargetX8632::doAddressOptStore() { On 2015/06/17 16:40:22, jvoung wrote: > ...
5 years, 6 months ago (2015-06-18 05:15:12 UTC) #6
Jim Stichnoth
5 years, 6 months ago (2015-06-18 05:16:07 UTC) #7
Message was sent while issue was closed.
Committed patchset #4 (id:60001) manually as
e4f65d86d863cc8ec0851846b5716280443cd882 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698