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

Issue 2172313002: Subzero : Live Range Splitting after initial Register Allocation (Closed)

Created:
4 years, 5 months ago by manasijm
Modified:
4 years, 4 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

Live Range Splitting after initial Register Allocation After register allocation is done once, this pass targets the variables that do not get registers, break them into multiple variables with shorter (at most spanning a basic block) live ranges. After discarding the new variables with too few uses, the register allocator is run again and the new variables that manage to get registers are inserted. BUG=None R=stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=7cd926d6d4f401dd3595e0682f48ede3e04ac7f7

Patch Set 1 #

Patch Set 2 : Remove unused functions #

Patch Set 3 : Refactor #

Patch Set 4 : Remove unused functions #

Patch Set 5 : Remove iostream #

Patch Set 6 : Discard variables before regalloc #

Patch Set 7 : Cleanup #

Total comments: 58

Patch Set 8 : Address Comments #

Patch Set 9 : Format #

Total comments: 23

Patch Set 10 : Address Comments #

Patch Set 11 : Add comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+260 lines, -28 lines) Patch
M src/IceCfgNode.cpp View 1 2 3 4 5 6 7 3 chunks +9 lines, -6 lines 0 comments Download
M src/IceClFlags.def View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M src/IceDefs.h View 1 2 2 chunks +3 lines, -0 lines 0 comments Download
M src/IceInst.h View 1 2 2 chunks +2 lines, -1 line 0 comments Download
M src/IceOperand.h View 1 2 3 4 5 6 7 8 9 4 chunks +20 lines, -6 lines 0 comments Download
M src/IceOperand.cpp View 1 2 3 4 5 6 7 1 chunk +15 lines, -8 lines 0 comments Download
M src/IceRegAlloc.h View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M src/IceRegAlloc.cpp View 1 2 3 4 5 6 7 8 4 chunks +7 lines, -4 lines 0 comments Download
M src/IceTargetLowering.h View 1 2 3 4 5 6 7 3 chunks +9 lines, -1 line 0 comments Download
M src/IceTargetLowering.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +177 lines, -0 lines 0 comments Download
M src/IceTargetLoweringX86Base.h View 1 2 1 chunk +11 lines, -0 lines 0 comments Download
M src/IceTimerTree.def View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 13 (5 generated)
manasijm
4 years, 4 months ago (2016-07-28 21:44:28 UTC) #2
Jim Stichnoth
Initial comments while I study the implementation in IceTargetLowering.cpp. https://codereview.chromium.org/2172313002/diff/120001/src/IceCfgNode.cpp File src/IceCfgNode.cpp (right): https://codereview.chromium.org/2172313002/diff/120001/src/IceCfgNode.cpp#newcode462 src/IceCfgNode.cpp:462: ...
4 years, 4 months ago (2016-07-29 17:04:07 UTC) #6
Jim Stichnoth
https://codereview.chromium.org/2172313002/diff/120001/src/IceTargetLowering.cpp File src/IceTargetLowering.cpp (right): https://codereview.chromium.org/2172313002/diff/120001/src/IceTargetLowering.cpp#newcode517 src/IceTargetLowering.cpp:517: } blank line after this https://codereview.chromium.org/2172313002/diff/120001/src/IceTargetLowering.cpp#newcode519 src/IceTargetLowering.cpp:519: CfgVector<Inst *> ...
4 years, 4 months ago (2016-07-29 19:14:32 UTC) #7
manasijm
https://codereview.chromium.org/2172313002/diff/120001/src/IceCfgNode.cpp File src/IceCfgNode.cpp (right): https://codereview.chromium.org/2172313002/diff/120001/src/IceCfgNode.cpp#newcode462 src/IceCfgNode.cpp:462: if (Func->getLiveness()->getLiveIn(this).size() >= VarNum) { On 2016/07/29 17:04:06, stichnot ...
4 years, 4 months ago (2016-08-01 22:20:05 UTC) #8
Jim Stichnoth
https://codereview.chromium.org/2172313002/diff/160001/src/IceClFlags.def File src/IceClFlags.def (right): https://codereview.chromium.org/2172313002/diff/160001/src/IceClFlags.def#newcode171 src/IceClFlags.def:171: cl::desc("Live range splitting after initial register allocation"), \ To ...
4 years, 4 months ago (2016-08-02 05:57:50 UTC) #9
manasijm
https://codereview.chromium.org/2172313002/diff/160001/src/IceClFlags.def File src/IceClFlags.def (right): https://codereview.chromium.org/2172313002/diff/160001/src/IceClFlags.def#newcode171 src/IceClFlags.def:171: cl::desc("Live range splitting after initial register allocation"), \ On ...
4 years, 4 months ago (2016-08-02 21:41:59 UTC) #10
Jim Stichnoth
otherwise lgtm https://codereview.chromium.org/2172313002/diff/160001/src/IceTargetLowering.cpp File src/IceTargetLowering.cpp (right): https://codereview.chromium.org/2172313002/diff/160001/src/IceTargetLowering.cpp#newcode599 src/IceTargetLowering.cpp:599: if (Instr->getDest() == Info.Replacing && !llvm::isa<InstPhi>(Instr)) { ...
4 years, 4 months ago (2016-08-04 01:59:17 UTC) #11
manasijm
4 years, 4 months ago (2016-08-04 19:33:32 UTC) #13
Message was sent while issue was closed.
Committed patchset #11 (id:200001) manually as
7cd926d6d4f401dd3595e0682f48ede3e04ac7f7 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698