[llvm] DataLayout: Fix latent issues with getMaxIndexSizeInBits (PR #118740)
Owen Anderson via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 4 21:25:42 PST 2024
https://github.com/resistor updated https://github.com/llvm/llvm-project/pull/118740
>From 246adf91c41f2ea7c96eac0de66729dbb001923d Mon Sep 17 00:00:00 2001
From: Owen Anderson <resistor at mac.com>
Date: Thu, 5 Dec 2024 18:18:51 +1300
Subject: [PATCH] DataLayout: Fix latent issues with getMaxIndexSizeInBits
Because it was implemented in terms of getMaxIndexSize, it was always
rounding the values up to a multiple of 8. Additionally, it was using
the PointerSpec's BitWidth rather than its IndexBitWidth, which was
self-evidently incorrect.
Since getMaxIndexSize was only used by getMaxIndexSizeInBits, and its
name and function seem niche and somewhat confusing, go ahead and remove
it until a concrete need for it arises.
---
llvm/include/llvm/IR/DataLayout.h | 7 +------
llvm/lib/IR/DataLayout.cpp | 6 ++----
2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/llvm/include/llvm/IR/DataLayout.h b/llvm/include/llvm/IR/DataLayout.h
index 93bd519f5727d8..5e6a6198a94733 100644
--- a/llvm/include/llvm/IR/DataLayout.h
+++ b/llvm/include/llvm/IR/DataLayout.h
@@ -330,9 +330,6 @@ class DataLayout {
/// the backends/clients are updated.
unsigned getPointerSize(unsigned AS = 0) const;
- /// Returns the maximum index size over all address spaces.
- unsigned getMaxIndexSize() const;
-
// Index size in bytes used for address calculation,
/// rounded up to a whole number of bytes.
unsigned getIndexSize(unsigned AS) const;
@@ -369,9 +366,7 @@ class DataLayout {
}
/// Returns the maximum index size over all address spaces.
- unsigned getMaxIndexSizeInBits() const {
- return getMaxIndexSize() * 8;
- }
+ unsigned getMaxIndexSizeInBits() const;
/// Size in bits of index used for address calculation in getelementptr.
unsigned getIndexSizeInBits(unsigned AS) const {
diff --git a/llvm/lib/IR/DataLayout.cpp b/llvm/lib/IR/DataLayout.cpp
index a4af0ead07cf61..5b3ce2d62efd5b 100644
--- a/llvm/lib/IR/DataLayout.cpp
+++ b/llvm/lib/IR/DataLayout.cpp
@@ -740,12 +740,10 @@ unsigned DataLayout::getPointerSize(unsigned AS) const {
return divideCeil(getPointerSpec(AS).BitWidth, 8);
}
-unsigned DataLayout::getMaxIndexSize() const {
+unsigned DataLayout::getMaxIndexSizeInBits() const {
unsigned MaxIndexSize = 0;
for (const PointerSpec &Spec : PointerSpecs)
- MaxIndexSize =
- std::max(MaxIndexSize, (unsigned)divideCeil(Spec.BitWidth, 8));
-
+ MaxIndexSize = std::max(MaxIndexSize, Spec.IndexBitWidth);
return MaxIndexSize;
}
More information about the llvm-commits
mailing list