[all-commits] [llvm/llvm-project] c012e4: [MLIR][LLVM] Promote noinline/alwaysinline/optnone...

Johannes de Fine Licht via All-commits all-commits at lists.llvm.org
Tue Jun 11 23:29:23 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c012e487b7246239c31bd378ab074fb110631186
      https://github.com/llvm/llvm-project/commit/c012e487b7246239c31bd378ab074fb110631186
  Author: Johannes de Fine Licht <johannes at musicmedia.dk>
  Date:   2024-06-12 (Wed, 12 Jun 2024)

  Changed paths:
    M mlir/docs/Dialects/LLVM.md
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMInlining.cpp
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/test/Conversion/SPIRVToLLVM/func-ops-to-llvm.mlir
    M mlir/test/Dialect/LLVMIR/inlining.mlir
    M mlir/test/Dialect/LLVMIR/invalid.mlir
    M mlir/test/Target/LLVMIR/Import/function-attributes.ll
    M mlir/test/Target/LLVMIR/llvmir-invalid.mlir
    M mlir/test/Target/LLVMIR/llvmir.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Promote noinline/alwaysinline/optnone out of passthrough (#95110)

The `noinline`, `alwaysinline`, and `optnone` function attributes are
already being used in MLIR code for the LLVM inlining interface and in
some SPIR-V lowering, despite residing in the passthrough dictionary,
which is intended as exactly that -- a pass through MLIR -- and not to
model any actual semantics being handled in MLIR itself.

Promote the `noinline`, `alwaysinline`, and `optnone` attributes out of
the passthrough dictionary on `llvm.func` into first class unit
attributes, updating the import and export accordingly.

Add a verifier to `llvm.func` that checks that these attributes are not
set in an incompatible way according to the LLVM specification.

Update the LLVM dialect inlining interface to use the first class
attributes to check whether inlining is possible.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list