[all-commits] [llvm/llvm-project] 731807: [mlir] allow function type cloning to fail (#137130)

ftynse via All-commits all-commits at lists.llvm.org
Wed Apr 30 00:27:03 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7318074168e324097b7f6ec93e34915463bf70f1
      https://github.com/llvm/llvm-project/commit/7318074168e324097b7f6ec93e34915463bf70f1
  Author: Oleksandr "Alex" Zinenko <git at ozinenko.com>
  Date:   2025-04-30 (Wed, 30 Apr 2025)

  Changed paths:
    M flang/lib/Optimizer/Transforms/AbstractResult.cpp
    M mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.td
    M mlir/include/mlir/Interfaces/FunctionInterfaces.td
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/DropEquivalentBufferResults.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
    M mlir/lib/Query/Query.cpp
    M mlir/lib/Transforms/RemoveDeadValues.cpp
    M mlir/test/IR/test-func-erase-result.mlir
    M mlir/test/lib/IR/TestFunc.cpp

  Log Message:
  -----------
  [mlir] allow function type cloning to fail (#137130)

`FunctionOpInterface` assumed the fact that the function type (attribute
of the operation) can be cloned with arbirary lists of function
arguments and results to support argument and result list mutation. This
is not always correct, in particular, LLVM dialect functions require
exactly one result making it impossible to erase the result.

Allow function type cloning to fail and propagate this failure through
various APIs that use it. The common assumption is that existing IR has
not been modified.

Fixes #131142.

Reland a8c7ecdcbc3e89b493b495c6831cc93671c3b844 / #136300.



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