[PATCH] D17429: Don't mark convergent instructions as trivially rematerializable.

Justin Lebar via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 18 21:11:28 PST 2016


jlebar added a comment.

In http://reviews.llvm.org/D17429#356746, @resistor wrote:

> My targets have convergent instructions that are rematerializable.


Interesting.

Are they *trivially* rematerializable?  The documentation says a trivially-rematerializable instr must have no side-effects and must have the same effect wherever it's placed in the function.  But if you can move the instruction wherever you want, then in particular you can add a control-flow dependency, which is what's specifically disallowed by convergence.

Maybe the documentation needs to be updated?  I admit that I don't yet have a non-superficial understanding of what this is *used* for.


http://reviews.llvm.org/D17429





More information about the llvm-commits mailing list