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

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 29 14:14:29 PDT 2019


nikic added a comment.

I'm not sure I understand the design/purpose of this utility. As far as I can see, the main benefit this has over a standard guaranteed-to-transfer loop is that it will be able to continue into a unique successor BB. As most must-exec uses I've seen (including your ArgPromotion example, as well as attribute deduction uses) are interested in instructions that must-exec from entry, this will not happen for non-degenerate CFGs (where BBs have not been merged).

To get something more accurate than a guaranteed-to-transfer loop over the entry block for purposes like attribute deduction, a different interface would be needed that can handle multiple successor blocks. Basically a backwards propagation that discards facts if there's no guaranteed-transfer.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65186/new/

https://reviews.llvm.org/D65186





More information about the llvm-commits mailing list