DataLayout: Fix latent issues with getMaxIndexSizeInBits (#118740)
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.
This commit is contained in:
@@ -330,9 +330,6 @@ public:
|
||||
/// 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 @@ public:
|
||||
}
|
||||
|
||||
/// 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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user