[all-commits] [llvm/llvm-project] 3a43e6: Allow inline of all pure ops from the LLVM dialect.
Ingo Müller via All-commits
all-commits at lists.llvm.org
Wed Dec 14 07:18:49 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3a43e68ed1cbd96bc70359f0d9dced517195ae9c
https://github.com/llvm/llvm-project/commit/3a43e68ed1cbd96bc70359f0d9dced517195ae9c
Author: Ingo Müller <ingomueller at google.com>
Date: 2022-12-14 (Wed, 14 Dec 2022)
Changed paths:
M mlir/include/mlir/Interfaces/SideEffectInterfaces.h
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Interfaces/SideEffectInterfaces.cpp
A mlir/test/Dialect/LLVMIR/inlining.mlir
Log Message:
-----------
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
More information about the All-commits
mailing list