[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