DescriptionLoop 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 #
Messages
Total messages: 7 (2 generated)
|