From: Graham Hunter <graham.hunter@arm.com> Date: Wed, 16 Oct 2019 16:33:41 +0000 (+0000) Subject: [SVE][IR] Small TypeSize improvements left out of initial commit X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3ec0313340c6c15c59951770e2df53bc7165ed40;p=llvm [SVE][IR] Small TypeSize improvements left out of initial commit The commit for D53137 left out the last round of improvements requested by reviewers. Adding those in now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375013 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/DataLayout.h b/include/llvm/IR/DataLayout.h index 022d2e944b5..08fd269807a 100644 --- a/include/llvm/IR/DataLayout.h +++ b/include/llvm/IR/DataLayout.h @@ -453,7 +453,7 @@ public: /// /// For example, returns 5 for i36 and 10 for x86_fp80. TypeSize getTypeStoreSize(Type *Ty) const { - auto BaseSize = getTypeSizeInBits(Ty); + TypeSize BaseSize = getTypeSizeInBits(Ty); return { (BaseSize.getKnownMinSize() + 7) / 8, BaseSize.isScalable() }; } diff --git a/include/llvm/Support/TypeSize.h b/include/llvm/Support/TypeSize.h index ea08358485a..711679cdcac 100644 --- a/include/llvm/Support/TypeSize.h +++ b/include/llvm/Support/TypeSize.h @@ -120,7 +120,7 @@ public: // Return the minimum size with the assumption that the size is exact. // Use in places where a scalable size doesn't make sense (e.g. non-vector - // types, or vectors in backends which don't support scalable vectors) + // types, or vectors in backends which don't support scalable vectors). uint64_t getFixedSize() const { assert(!IsScalable && "Request for a fixed size on a scalable object"); return MinSize; @@ -141,12 +141,12 @@ public: // Casts to a uint64_t if this is a fixed-width size. // // NOTE: This interface is obsolete and will be removed in a future version - // of LLVM in favour of calling getFixedSize() directly + // of LLVM in favour of calling getFixedSize() directly. operator uint64_t() const { return getFixedSize(); } - // Additional convenience operators needed to avoid ambiguous parses + // Additional convenience operators needed to avoid ambiguous parses. // TODO: Make uint64_t the default operator? TypeSize operator*(uint64_t RHS) const { return { MinSize * RHS, IsScalable }; diff --git a/lib/IR/Instructions.cpp b/lib/IR/Instructions.cpp index 20331803f60..579e38e30a0 100644 --- a/lib/IR/Instructions.cpp +++ b/lib/IR/Instructions.cpp @@ -2983,8 +2983,8 @@ bool CastInst::isCastable(Type *SrcTy, Type *DestTy) { } // Get the bit sizes, we'll need these - auto SrcBits = SrcTy->getPrimitiveSizeInBits(); // 0 for ptr - auto DestBits = DestTy->getPrimitiveSizeInBits(); // 0 for ptr + TypeSize SrcBits = SrcTy->getPrimitiveSizeInBits(); // 0 for ptr + TypeSize DestBits = DestTy->getPrimitiveSizeInBits(); // 0 for ptr // Run through the possibilities ... if (DestTy->isIntegerTy()) { // Casting to integral @@ -3045,8 +3045,8 @@ bool CastInst::isBitCastable(Type *SrcTy, Type *DestTy) { } } - auto SrcBits = SrcTy->getPrimitiveSizeInBits(); // 0 for ptr - auto DestBits = DestTy->getPrimitiveSizeInBits(); // 0 for ptr + TypeSize SrcBits = SrcTy->getPrimitiveSizeInBits(); // 0 for ptr + TypeSize DestBits = DestTy->getPrimitiveSizeInBits(); // 0 for ptr // Could still have vectors of pointers if the number of elements doesn't // match