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

Issue 2138443002: Subzero: Loop Invariant Code Motion (Closed)

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

Loop Invariant Code Motion Implemented behind the new -licm flag. Hoists invariant arithmetic instructions from loop bodies to pre-headers. Does not trigger for loops where headers have two incoming edges from outside the loop. Also enables multi block address optimization, because most of the instructions hoisted are address calculations coming from gep. Does not touch memory operations. This algorithm does not seem to work well for load-hoisting. BUG=none R=jpp@chromium.org, stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=f47d520c1a91bb029d73a5a5f7c0e416ed763f23

Patch Set 1 #

Total comments: 8

Patch Set 2 : Put invariant detection logic into separate function #

Total comments: 2

Patch Set 3 : Address comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+184 lines, -27 lines) Patch
M src/IceCfg.h View 1 4 chunks +4 lines, -2 lines 0 comments Download
M src/IceCfg.cpp View 1 2 2 chunks +99 lines, -3 lines 0 comments Download
M src/IceClFlags.def View 1 chunk +3 lines, -0 lines 0 comments Download
M src/IceLoopAnalyzer.h View 1 2 3 chunks +6 lines, -1 line 0 comments Download
M src/IceLoopAnalyzer.cpp View 2 chunks +7 lines, -0 lines 0 comments Download
M src/IceTargetLoweringX86BaseImpl.h View 3 chunks +19 lines, -12 lines 0 comments Download
M src/IceTimerTree.def View 1 chunk +1 line, -0 lines 0 comments Download
A tests_lit/llvm2ice_tests/licm.ll View 1 chunk +36 lines, -0 lines 0 comments Download
M tests_lit/llvm2ice_tests/loop-nest-depth.ll View 9 chunks +9 lines, -9 lines 0 comments Download

Messages

Total messages: 7 (2 generated)
manasijm
4 years, 5 months ago (2016-07-08 20:06:20 UTC) #2
John
lgtm https://codereview.chromium.org/2138443002/diff/1/src/IceCfg.cpp File src/IceCfg.cpp (right): https://codereview.chromium.org/2138443002/diff/1/src/IceCfg.cpp#newcode643 src/IceCfg.cpp:643: void Cfg::loopInvariantCodeMotion() { please create a helper function ...
4 years, 5 months ago (2016-07-08 21:04:46 UTC) #3
manasijm
https://codereview.chromium.org/2138443002/diff/1/src/IceCfg.cpp File src/IceCfg.cpp (right): https://codereview.chromium.org/2138443002/diff/1/src/IceCfg.cpp#newcode669 src/IceCfg.cpp:669: CfgUnorderedSet<Inst *> InvariantInsts; On 2016/07/08 21:04:46, John wrote: > ...
4 years, 5 months ago (2016-07-08 21:09:31 UTC) #4
Jim Stichnoth
lgtm https://codereview.chromium.org/2138443002/diff/20001/src/IceCfg.cpp File src/IceCfg.cpp (right): https://codereview.chromium.org/2138443002/diff/20001/src/IceCfg.cpp#newcode678 src/IceCfg.cpp:678: Ice::CfgVector<Inst *> add extra blank line https://codereview.chromium.org/2138443002/diff/20001/src/IceLoopAnalyzer.h File ...
4 years, 5 months ago (2016-07-12 10:51:52 UTC) #5
manasijm
4 years, 5 months ago (2016-07-12 23:59:22 UTC) #7
Message was sent while issue was closed.
Committed patchset #3 (id:40001) manually as
f47d520c1a91bb029d73a5a5f7c0e416ed763f23 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698