[PATCH] D50854: [LICM] Add a diagnostic analysis for identifying alias information of loads within loop

Anna Thomas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 16 10:45:11 PDT 2018


anna created this revision.
anna added reviewers: reames, mkazantsev, fedor.sergeev, hfinkel.

Currently, in LICM, we use the alias set tracker to identify if the load
instruction (we're interested in hoisting) aliases with instruction that
modifies the memory location referenced by the load.

This patch adds an LICM alias analysis diagnostic tool that checks the mod
ref info of the load instruction with every instruction in the loop.
Because of O(N^2) complexity this is now only a diagnostic tool to show
the limitation we have with the alias set tracker.

Test cases show the difference with the diagnostic analysis tool, where
we're able to hoist out loads today from the loop, where the alias set
tracker analysis is not able to hoist the load out.


Repository:
  rL LLVM

https://reviews.llvm.org/D50854

Files:
  lib/Transforms/Scalar/LICM.cpp
  test/Transforms/LICM/invariant.start.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50854.161062.patch
Type: text/x-patch
Size: 7132 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180816/b528e17f/attachment.bin>


More information about the llvm-commits mailing list