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

Christian Ulmann via All-commits all-commits at lists.llvm.org
Fri May 24 02:27:34 PDT 2024


  Branch: refs/heads/users/dinistro/remove-type-consistency-pass
  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.



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