Allow inline of all pure ops from the LLVM dialect.
This allows to inline regions containing pure LLVM ops into their call sites. (Note that this is not related to inlining of llvm.func but to any the inlining of any Callable.) For now, we only allow the inlining of Pure ops to be conservative but other ops may be considered inlinable in the future. Testing for purity of ops requires the C++ equivalent of the Pure trait from SideEffectInterfaces.td, which this patch also provide. Its implementation calls the C++ equivalents of the two traits that the Pure trait is based on and, thus, has to be kept with the tablegen trait. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D139187
Loading
Please sign in to comment