[all-commits] [llvm/llvm-project] a38f34: [MLIR] Harmonize the behavior of the folding API f...

Christian Ulmann via All-commits all-commits at lists.llvm.org
Wed Apr 17 08:56:49 PDT 2024


  Branch: refs/heads/users/dinistro/mem2reg-allow-smaller-accesses
  Home:   https://github.com/llvm/llvm-project
  Commit: a38f3417acb55b4d966bfcf3dd07e6b3545c9784
      https://github.com/llvm/llvm-project/commit/a38f3417acb55b4d966bfcf3dd07e6b3545c9784
  Author: Christian Ulmann <christian.ulmann at nextsilicon.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M mlir/include/mlir/IR/Builders.h
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/IR/Builders.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Transforms/test-legalizer.mlir
    M mlir/test/lib/Dialect/Test/TestDialect.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  [MLIR] Harmonize the behavior of the folding API functions

This commit changes `OpBuilder::tryFold` to behave more similarly to
`Operation::fold`. Concretely, this ensures that even an in-place fold
returns `success`. This is necessary to fix a bug in the dialect
conversion that occurred when an in-place folding made an operation
legal. The dialect conversion infrastructure did not check if the result
of an in-place folding legalized the operation and just went ahead and
tried to apply pattern anyways.


  Commit: ecbf33ecf7addf9f393f587a38d9a873f543e832
      https://github.com/llvm/llvm-project/commit/ecbf33ecf7addf9f393f587a38d9a873f543e832
  Author: Christian Ulmann <christian.ulmann at nextsilicon.com>
  Date:   2024-04-17 (Wed, 17 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
    M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefMemorySlot.cpp
    M mlir/lib/Transforms/Mem2Reg.cpp
    M mlir/test/Dialect/LLVMIR/mem2reg.mlir

  Log Message:
  -----------
  [MLIR][Mem2Reg][LLVM] Enhance partial load support

This commit improves LLVM dialect's Mem2Reg interfaces to support
promotions of partial loads from larger memory slots. To support this,
the Mem2Reg interface methods are extended with additional data layout
parameters. The data layout is required to determine type sizes to
produce correct conversion sequences.


Compare: https://github.com/llvm/llvm-project/compare/a38f3417acb5%5E...ecbf33ecf7ad

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