[llvm] [SelectionDAG] Use LAST_INTEGER_VALUETYPE instead of i64 (PR #98299)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 10 03:47:23 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-selectiondag
Author: Dmitry Borisenkov (akiramenai)
<details>
<summary>Changes</summary>
When looking for a largest legal integer type for a target `TargetLowering::findOptimalMemOpLowering` assumes that `MVT::i64` is the largets possible integer type. The patch removes this assumption and uses `MVT::LAST_INTEGER_VALUETYPE` instead.
---
Full diff: https://github.com/llvm/llvm-project/pull/98299.diff
1 Files Affected:
- (modified) llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (+2-2)
``````````diff
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 458f962802b4c..690a86bd4606c 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -209,7 +209,7 @@ bool TargetLowering::findOptimalMemOpLowering(
// Use the largest integer type whose alignment constraints are satisfied.
// We only need to check DstAlign here as SrcAlign is always greater or
// equal to DstAlign (or zero).
- VT = MVT::i64;
+ VT = MVT::LAST_INTEGER_VALUETYPE;
if (Op.isFixedDstAlign())
while (Op.getDstAlign() < (VT.getSizeInBits() / 8) &&
!allowsMisalignedMemoryAccesses(VT, DstAS, Op.getDstAlign()))
@@ -217,7 +217,7 @@ bool TargetLowering::findOptimalMemOpLowering(
assert(VT.isInteger());
// Find the largest legal integer type.
- MVT LVT = MVT::i64;
+ MVT LVT = MVT::LAST_INTEGER_VALUETYPE;
while (!isTypeLegal(LVT))
LVT = (MVT::SimpleValueType)(LVT.SimpleTy - 1);
assert(LVT.isInteger());
``````````
</details>
https://github.com/llvm/llvm-project/pull/98299
More information about the llvm-commits
mailing list