[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