[PATCH] D44524: Add an analysis printer for must execute reasoning

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 15 09:23:05 PDT 2018


reames created this revision.
reames added reviewers: anna, hfinkel.
Herald added subscribers: bollu, mgorny, mcrosier.

Many of our loop passes make use of so called "must execute" or "guaranteed to execute" facts to prove the legality of code motion.  The basic notion is that we know (by assumption) an instruction didn't fault at it's original location, so if the location we move it to is strictly post dominated by the original, then we can't have introduced a new fault.

At the moment, the testing for this logic is somewhat adhoc and done mostly through LICM.  Since I'm working on that code, I want to improve the testing.  This patch is the first step in that direction.  It doesn't actually test the variant used by the loop passes - I need to move that to the Analysis library first - but instead exercises an alternate implementation used by SCEV.  (I plan on merging both implementations.)


Repository:
  rL LLVM

https://reviews.llvm.org/D44524

Files:
  include/llvm/Analysis/Passes.h
  include/llvm/InitializePasses.h
  include/llvm/LinkAllPasses.h
  lib/Analysis/Analysis.cpp
  lib/Analysis/CMakeLists.txt
  lib/Analysis/MustExecute.cpp
  test/Analysis/MustExecute/loop-header.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44524.138576.patch
Type: text/x-patch
Size: 9027 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180315/c38fdf13/attachment.bin>


More information about the llvm-commits mailing list