[all-commits] [llvm/llvm-project] f0967f: [mlir][LLVM] `FuncToLLVM`: Add 1:N type conversion...

Matthias Springer via All-commits all-commits at lists.llvm.org
Sat Aug 16 00:45:30 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f0967fca04c880e9aabd5be043a85127faabb4c6
      https://github.com/llvm/llvm-project/commit/f0967fca04c880e9aabd5be043a85127faabb4c6
  Author: Matthias Springer <me at m-sp.org>
  Date:   2025-08-16 (Sat, 16 Aug 2025)

  Changed paths:
    M mlir/include/mlir/Conversion/LLVMCommon/TypeConverter.h
    M mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
    M mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp
    M mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
    M mlir/test/Conversion/MemRefToLLVM/type-conversion.mlir
    M mlir/test/lib/Dialect/LLVM/TestPatterns.cpp

  Log Message:
  -----------
  [mlir][LLVM] `FuncToLLVM`: Add 1:N type conversion support (#153823)

Add support for 1:N type conversions to the `FuncToLLVM` lowering
patterns. This commit does not change the lowering of any types (such as
`MemRefType`). It just sets up the infrastructure, such that 1:N type
conversions can be used during `FuncToLLVM`.

Note: When the converted result types of a `func.func` have more than 1
type, then the results are wrapped in an `llvm.struct`. That's because
`llvm.func` does not support multiple result values. This "wrapping" was
already implemented for cases where the original `func.func` has
multiple results. With 1:N conversions, even a single result can now
expand to multiple converted results, triggering the same wrapping
mechanism.

The test cases are exercised with both the old and the new no-rollback
conversion driver.



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