[all-commits] [llvm/llvm-project] 480a10: [MLIR][LLVM] Remove the type consistency pass

Christian Ulmann via All-commits all-commits at lists.llvm.org
Tue May 28 02:00:23 PDT 2024


  Branch: refs/heads/users/dinistro/relax-llvm-dialect-inlining-assumptions
  Home:   https://github.com/llvm/llvm-project
  Commit: 480a10c4c8a9568473936062271e9e49f27d2061
      https://github.com/llvm/llvm-project/commit/480a10c4c8a9568473936062271e9e49f27d2061
  Author: Christian Ulmann <christian.ulmann at nextsilicon.com>
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/Transforms/Passes.h
    M mlir/include/mlir/Dialect/LLVMIR/Transforms/Passes.td
    R mlir/include/mlir/Dialect/LLVMIR/Transforms/TypeConsistency.h
    M mlir/lib/Dialect/LLVMIR/Transforms/CMakeLists.txt
    R mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp
    R mlir/test/Dialect/LLVMIR/type-consistency.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Remove the type consistency pass

This commit removes the LLVM dialect's type consistency pass. This pass
was originally introduced to make type information on memory operations
consistent. The main benefactor of this consistency where Mem2Reg and
SROA, which were in the meantime improved to no longer require consitent
type information.

Appart from providing a no longer required functionality, the pass had
some fundamental flaws that lead to issues:
* It introduced trivial GEPs (only zero indices) that could fold be
  folded again.
* Aggressively splitting stores lead to substantial performance
  regressions in some cases. Subsequent memory coalescings were not
  able to recover this information, due to using non-trivial
  bit-fiddling.


  Commit: 3379dfe92be5a4208aa9e117d2757012bb0eecbc
      https://github.com/llvm/llvm-project/commit/3379dfe92be5a4208aa9e117d2757012bb0eecbc
  Author: Christian Ulmann <christian.ulmann at nextsilicon.com>
  Date:   2024-05-28 (Tue, 28 May 2024)

  Changed paths:
    M mlir/lib/Dialect/LLVMIR/IR/LLVMInlining.cpp
    M mlir/test/Dialect/LLVMIR/inlining-alias-scopes.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Relax the LLVM dialect's inliner assuming UCF

This commit changes the LLVM dialect's inliner interface to stop
assuming that the inlined function only contained unstructured control
flow. This is not necessarily true, and it lead to not properly
propagating the noalias information.


Compare: https://github.com/llvm/llvm-project/compare/480a10c4c8a9%5E...3379dfe92be5

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