[llvm] [InstCombine] Remove redundant align 1 assumptions. (PR #160695)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 25 05:24:34 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Florian Hahn (fhahn)
<details>
<summary>Changes</summary>
It seems like we have a bunch of align 1 assumptions in practice and unless I am missing something they should not add any value.
See https://github.com/dtcxzyw/llvm-opt-benchmark/pull/2861/files
---
Full diff: https://github.com/llvm/llvm-project/pull/160695.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (+3)
``````````diff
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
index 6ad493772d170..896548ddd9931 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -3412,6 +3412,9 @@ Instruction *InstCombinerImpl::visitCallInst(CallInst &CI) {
!isPowerOf2_64(RK.ArgValue) || !isa<ConstantInt>(RK.IRArgValue))
continue;
+ if (RK.ArgValue == 1)
+ return CallBase::removeOperandBundle(II, OBU.getTagID());
+
// Don't try to remove align assumptions for pointers derived from
// arguments. We might lose information if the function gets inline and
// the align argument attribute disappears.
``````````
</details>
https://github.com/llvm/llvm-project/pull/160695
More information about the llvm-commits
mailing list