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

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 8 12:37:44 PDT 2020


jdoerfert added a comment.

> 15% loads, and now you add one extra assume for every load, that will be a significant increase in instructions (not that metadata is completely free either).

`llvm.assume(i1 true) ["noundef"(%a), "noundef"(%b)]` works right now just fine, we even merge assumes already with a pass in-tree (IIRC, @Tyker). The operand bundles could/should also take more operands to make it even simpler.

That said, I think @nikic is right that there is a trade off we have to consider and actually measure. I don't know what is best. What I know is that I would like us to employ assume aggressively to "retain knowledge". That will mean we have to deal with many `llvm.assume`s either way and I'd much rather have one encoding and smarts to deal with it than multiple ones.


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