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

Issue 586943003: Subzero: Change the way bitcast stack slot lowering is handled. (Closed)

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

Description

Subzero: Change the way bitcast stack slot lowering is handled. When doing a bitcast between int and FP types, the way lowering works is that a spill temporary is created, with regalloc weight of zero to inhibit register allocation, and this spill temporary is used for the cvt instruction. If the other variable does not get register-allocated, then addProlog() forces the spill temporary to share the same stack slot as the other variable. Currently, the lowering code passes this information to addProlog() by using the setPreferredRegister() mechanism. This is changed by creating a target-specific subclass of Variable, so that only the spill temporaries need to carry this extra information. Ultimately, many of the existing Variable fields will be refactored into a separate structure, and only generated/used as needed by various optimization passes. The spill temporary linkage is the one thing that is still needed with Om1 when no optimizations are enabled, motivating this change. A couple other minor cleanups are also done here. The key test is that the cast cross tests continue to work, specifically the bitcast tests. BUG= none R=jvoung@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=800dab29d19d6cc9e842fc16bfb9433018322062

Patch Set 1 #

Total comments: 2

Patch Set 2 : Add clarifying comment to asType() #

Unified diffs Side-by-side diffs Delta from patch set Stats (+89 lines, -40 lines) Patch
M src/IceCfg.h View 3 chunks +14 lines, -2 lines 0 comments Download
M src/IceCfg.cpp View 2 chunks +2 lines, -6 lines 0 comments Download
M src/IceCfgNode.cpp View 1 chunk +1 line, -1 line 0 comments Download
M src/IceInstX8632.h View 1 1 chunk +27 lines, -0 lines 0 comments Download
M src/IceOperand.h View 5 chunks +17 lines, -9 lines 0 comments Download
M src/IceOperand.cpp View 1 1 chunk +3 lines, -1 line 0 comments Download
M src/IceRegAlloc.cpp View 3 chunks +3 lines, -3 lines 0 comments Download
M src/IceTargetLoweringX8632.cpp View 1 7 chunks +22 lines, -18 lines 0 comments Download

Messages

Total messages: 5 (1 generated)
Jim Stichnoth
6 years, 3 months ago (2014-09-20 00:12:43 UTC) #2
jvoung (off chromium)
LGTM https://codereview.chromium.org/586943003/diff/1/src/IceOperand.cpp File src/IceOperand.cpp (right): https://codereview.chromium.org/586943003/diff/1/src/IceOperand.cpp#newcode192 src/IceOperand.cpp:192: Variable V(kVariable, Ty, DefNode, Number, Name); Should it ...
6 years, 3 months ago (2014-09-20 18:30:56 UTC) #3
Jim Stichnoth
https://codereview.chromium.org/586943003/diff/1/src/IceOperand.cpp File src/IceOperand.cpp (right): https://codereview.chromium.org/586943003/diff/1/src/IceOperand.cpp#newcode192 src/IceOperand.cpp:192: Variable V(kVariable, Ty, DefNode, Number, Name); On 2014/09/20 18:30:56, ...
6 years, 3 months ago (2014-09-20 19:24:53 UTC) #4
Jim Stichnoth
6 years, 3 months ago (2014-09-20 19:25:05 UTC) #5
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as 800dab2 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698