[PATCH] D94308: [MachineSink] SinkIntoLoop: analyse stores in between. WIP

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 8 07:31:58 PST 2021


SjoerdMeijer created this revision.
SjoerdMeijer added reviewers: fhahn, dmgreen, samparker.
Herald added a subscriber: hiraditya.
SjoerdMeijer requested review of this revision.
Herald added a project: LLVM.

This depends on D93694 <https://reviews.llvm.org/D93694>, and extends the SinkIntoLoop analysis to be less conservative. I.e., it was assuming we couldn't move across a store with `isSafeToMove(AA, DontMoveAcrossStore)`, but now we do actually analyse that by querying `HasStoreBetween()`.  Thus, the SinkIntoLoop part now starts reusing the infrastructure already available in MachineSink, which was the motivation of D93694 <https://reviews.llvm.org/D93694>. Function `HasStoreBetween()` doesn't analyse the `From` and `To` blocks, and now we also perform alias analysis of the instructions in these blocks to see if sinking is legal (which also reuses bits and pieces from MachineSink).

This is WIP because I need to add my tests, but I wanted to show the direction and motivation for D93694 <https://reviews.llvm.org/D93694>.


https://reviews.llvm.org/D94308

Files:
  llvm/lib/CodeGen/MachineSink.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94308.315396.patch
Type: text/x-patch
Size: 6988 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210108/facc3b7f/attachment-0001.bin>


More information about the llvm-commits mailing list