[PATCH] D89050: Add support for !noundef metatdata on loads

Juneyoung Lee via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 12 02:40:23 PDT 2020


aqjune added a comment.

I made D89219 <https://reviews.llvm.org/D89219> that updates relevant functions to exploit `llvm.assume`'s `noundef` operand bundle.

BTW, given `v = op; call llvm.assume()["noundef"(v)]`, if we want to move `v` across the assume call, the call should be appropriately moved with `v`. I wonder whether there is a handy way to do this, since things get complicated when the assume has several operand bundles that are not using `v`.

What about leaving `call llvm.assume` whenever the `load !noundef` is moved to somewhere else? I guess this is what LLVM is doing as well.

`!noundef` is a syntactic sugar of `llvm.assume()["noundef"(..)]`, but seems helpful for the brevity and size of the bitcode.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D89050



More information about the llvm-commits mailing list