[PATCH] D64975: [MustExec][WIP] Add a generic "must-be-executed-context" explorer

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 19 00:25:01 PDT 2019


jdoerfert created this revision.
jdoerfert added reviewers: hfinkel, reames, spatel, fhahn, arsenm, lebedev.ri.
Herald added subscribers: bollu, hiraditya, wdng.
Herald added a project: LLVM.

NOTE: This is not a finished patch, testing and tests are missing. I
      will add tests and update this revision shortly.

Given an instruction `I`, the MustBeExecutedContextExplorer allows to
easily traverse all instructions that are guaranteed to be executed
whenever `I` is. These instruction can be statically and/or dynamically
before or after `I`, in the same or different basic blocks, and in the
same or different functions. So far, we can exploit: call sites, return
instructions, loops, (post-)dominance information, certain simply CFG
patterns, and branches that are constant in the first loop iteration.

There are options to limit the search and analyses are optional.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D64975

Files:
  llvm/include/llvm/Analysis/MustExecute.h
  llvm/lib/Analysis/MustExecute.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64975.210752.patch
Type: text/x-patch
Size: 49524 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190719/057afe75/attachment.bin>


More information about the llvm-commits mailing list