[llvm-commits] [llvm] r161371 - in /llvm/trunk: include/llvm/Target/TargetData.h lib/Target/TargetData.cpp
Bill Wendling
isanbard at gmail.com
Mon Aug 6 22:49:42 PDT 2012
On Aug 6, 2012, at 9:41 PM, David Blaikie <dblaikie at gmail.com> wrote:
> On Mon, Aug 6, 2012 at 5:26 PM, Bill Wendling <isanbard at gmail.com> wrote:
>> Author: void
>> Date: Mon Aug 6 19:26:35 2012
>> New Revision: 161371
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=161371&view=rev
>> Log:
>> Constify the Type parameter to some methods (which are const anyway).
>
> FWIW we /removed/ the const from llvm::Types after the great Type
> rewrite of 3.0 because Types can be nothing other than const (they
> have no non-const public members) so it's just redundant/verbose.
>
> (while I don't necessarily agree with this attitude, it was Chris's
> preference & I made the patches to make the conversion)
>
> http://llvm.org/viewvc/llvm-project?view=rev&revision=135375
>
Yeah. I was thinking about that on the way home today. I'll revert this.
-bw
>>
>> Modified:
>> llvm/trunk/include/llvm/Target/TargetData.h
>> llvm/trunk/lib/Target/TargetData.cpp
>>
>> Modified: llvm/trunk/include/llvm/Target/TargetData.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetData.h?rev=161371&r1=161370&r2=161371&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/Target/TargetData.h (original)
>> +++ llvm/trunk/include/llvm/Target/TargetData.h Mon Aug 6 19:26:35 2012
>> @@ -100,9 +100,9 @@
>> void setAlignment(AlignTypeEnum align_type, unsigned abi_align,
>> unsigned pref_align, uint32_t bit_width);
>> unsigned getAlignmentInfo(AlignTypeEnum align_type, uint32_t bit_width,
>> - bool ABIAlign, Type *Ty) const;
>> + bool ABIAlign, const Type *Ty) const;
>> //! Internal helper method that returns requested alignment for type.
>> - unsigned getAlignment(Type *Ty, bool abi_or_pref) const;
>> + unsigned getAlignment(const Type *Ty, bool abi_or_pref) const;
>>
>> /// Valid alignment predicate.
>> ///
>> @@ -223,19 +223,19 @@
>>
>> /// getTypeSizeInBits - Return the number of bits necessary to hold the
>> /// specified type. For example, returns 36 for i36 and 80 for x86_fp80.
>> - uint64_t getTypeSizeInBits(Type* Ty) const;
>> + uint64_t getTypeSizeInBits(const Type* Ty) const;
>>
>> /// getTypeStoreSize - Return the maximum number of bytes that may be
>> /// overwritten by storing the specified type. For example, returns 5
>> /// for i36 and 10 for x86_fp80.
>> - uint64_t getTypeStoreSize(Type *Ty) const {
>> + uint64_t getTypeStoreSize(const Type *Ty) const {
>> return (getTypeSizeInBits(Ty)+7)/8;
>> }
>>
>> /// getTypeStoreSizeInBits - Return the maximum number of bits that may be
>> /// overwritten by storing the specified type; always a multiple of 8. For
>> /// example, returns 40 for i36 and 80 for x86_fp80.
>> - uint64_t getTypeStoreSizeInBits(Type *Ty) const {
>> + uint64_t getTypeStoreSizeInBits(const Type *Ty) const {
>> return 8*getTypeStoreSize(Ty);
>> }
>>
>> @@ -243,7 +243,7 @@
>> /// of the specified type, including alignment padding. This is the amount
>> /// that alloca reserves for this type. For example, returns 12 or 16 for
>> /// x86_fp80, depending on alignment.
>> - uint64_t getTypeAllocSize(Type* Ty) const {
>> + uint64_t getTypeAllocSize(const Type* Ty) const {
>> // Round up to the next alignment boundary.
>> return RoundUpAlignment(getTypeStoreSize(Ty), getABITypeAlignment(Ty));
>> }
>> @@ -252,13 +252,13 @@
>> /// objects of the specified type, including alignment padding; always a
>> /// multiple of 8. This is the amount that alloca reserves for this type.
>> /// For example, returns 96 or 128 for x86_fp80, depending on alignment.
>> - uint64_t getTypeAllocSizeInBits(Type* Ty) const {
>> + uint64_t getTypeAllocSizeInBits(const Type* Ty) const {
>> return 8*getTypeAllocSize(Ty);
>> }
>>
>> /// getABITypeAlignment - Return the minimum ABI-required alignment for the
>> /// specified type.
>> - unsigned getABITypeAlignment(Type *Ty) const;
>> + unsigned getABITypeAlignment(const Type *Ty) const;
>>
>> /// getABIIntegerTypeAlignment - Return the minimum ABI-required alignment for
>> /// an integer type of the specified bitwidth.
>> @@ -267,17 +267,17 @@
>>
>> /// getCallFrameTypeAlignment - Return the minimum ABI-required alignment
>> /// for the specified type when it is part of a call frame.
>> - unsigned getCallFrameTypeAlignment(Type *Ty) const;
>> + unsigned getCallFrameTypeAlignment(const Type *Ty) const;
>>
>>
>> /// getPrefTypeAlignment - Return the preferred stack/global alignment for
>> /// the specified type. This is always at least as good as the ABI alignment.
>> - unsigned getPrefTypeAlignment(Type *Ty) const;
>> + unsigned getPrefTypeAlignment(const Type *Ty) const;
>>
>> /// getPreferredTypeAlignmentShift - Return the preferred alignment for the
>> /// specified type, returned as log2 of the value (a shift amount).
>> ///
>> - unsigned getPreferredTypeAlignmentShift(Type *Ty) const;
>> + unsigned getPreferredTypeAlignmentShift(const Type *Ty) const;
>>
>> /// getIntPtrType - Return an unsigned integer type that is the same size or
>> /// greater to the host pointer size.
>> @@ -292,7 +292,7 @@
>> /// getStructLayout - Return a StructLayout object, indicating the alignment
>> /// of the struct, its size, and the offsets of its fields. Note that this
>> /// information is lazily cached.
>> - const StructLayout *getStructLayout(StructType *Ty) const;
>> + const StructLayout *getStructLayout(const StructType *Ty) const;
>>
>> /// getPreferredAlignment - Return the preferred alignment of the specified
>> /// global. This includes an explicitly requested alignment (if the global
>> @@ -355,7 +355,7 @@
>>
>> private:
>> friend class TargetData; // Only TargetData can create this class
>> - StructLayout(StructType *ST, const TargetData &TD);
>> + StructLayout(const StructType *ST, const TargetData &TD);
>> };
>>
>> } // End llvm namespace
>>
>> Modified: llvm/trunk/lib/Target/TargetData.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetData.cpp?rev=161371&r1=161370&r2=161371&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/TargetData.cpp (original)
>> +++ llvm/trunk/lib/Target/TargetData.cpp Mon Aug 6 19:26:35 2012
>> @@ -41,7 +41,7 @@
>> // Support for StructLayout
>> //===----------------------------------------------------------------------===//
>>
>> -StructLayout::StructLayout(StructType *ST, const TargetData &TD) {
>> +StructLayout::StructLayout(const StructType *ST, const TargetData &TD) {
>> assert(!ST->isOpaque() && "Cannot get layout of opaque structs");
>> StructAlignment = 0;
>> StructSize = 0;
>> @@ -332,7 +332,7 @@
>> /// preferred if ABIInfo = false) the target wants for the specified datatype.
>> unsigned TargetData::getAlignmentInfo(AlignTypeEnum AlignType,
>> uint32_t BitWidth, bool ABIInfo,
>> - Type *Ty) const {
>> + const Type *Ty) const {
>> // Check to see if we have an exact match and remember the best match we see.
>> int BestMatchIdx = -1;
>> int LargestInt = -1;
>> @@ -386,7 +386,7 @@
>> namespace {
>>
>> class StructLayoutMap {
>> - typedef DenseMap<StructType*, StructLayout*> LayoutInfoTy;
>> + typedef DenseMap<const StructType*, StructLayout*> LayoutInfoTy;
>> LayoutInfoTy LayoutInfo;
>>
>> public:
>> @@ -400,7 +400,7 @@
>> }
>> }
>>
>> - StructLayout *&operator[](StructType *STy) {
>> + StructLayout *&operator[](const StructType *STy) {
>> return LayoutInfo[STy];
>> }
>>
>> @@ -414,7 +414,7 @@
>> delete static_cast<StructLayoutMap*>(LayoutMap);
>> }
>>
>> -const StructLayout *TargetData::getStructLayout(StructType *Ty) const {
>> +const StructLayout *TargetData::getStructLayout(const StructType *Ty) const {
>> if (!LayoutMap)
>> LayoutMap = new StructLayoutMap();
>>
>> @@ -462,14 +462,14 @@
>> }
>>
>>
>> -uint64_t TargetData::getTypeSizeInBits(Type *Ty) const {
>> +uint64_t TargetData::getTypeSizeInBits(const Type *Ty) const {
>> assert(Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!");
>> switch (Ty->getTypeID()) {
>> case Type::LabelTyID:
>> case Type::PointerTyID:
>> return getPointerSizeInBits();
>> case Type::ArrayTyID: {
>> - ArrayType *ATy = cast<ArrayType>(Ty);
>> + const ArrayType *ATy = cast<ArrayType>(Ty);
>> return getTypeAllocSizeInBits(ATy->getElementType())*ATy->getNumElements();
>> }
>> case Type::StructTyID:
>> @@ -508,7 +508,7 @@
>> Get the ABI (\a abi_or_pref == true) or preferred alignment (\a abi_or_pref
>> == false) for the requested type \a Ty.
>> */
>> -unsigned TargetData::getAlignment(Type *Ty, bool abi_or_pref) const {
>> +unsigned TargetData::getAlignment(const Type *Ty, bool abi_or_pref) const {
>> int AlignType = -1;
>>
>> assert(Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!");
>> @@ -558,7 +558,7 @@
>> abi_or_pref, Ty);
>> }
>>
>> -unsigned TargetData::getABITypeAlignment(Type *Ty) const {
>> +unsigned TargetData::getABITypeAlignment(const Type *Ty) const {
>> return getAlignment(Ty, true);
>> }
>>
>> @@ -569,7 +569,7 @@
>> }
>>
>>
>> -unsigned TargetData::getCallFrameTypeAlignment(Type *Ty) const {
>> +unsigned TargetData::getCallFrameTypeAlignment(const Type *Ty) const {
>> for (unsigned i = 0, e = Alignments.size(); i != e; ++i)
>> if (Alignments[i].AlignType == STACK_ALIGN)
>> return Alignments[i].ABIAlign;
>> @@ -577,11 +577,11 @@
>> return getABITypeAlignment(Ty);
>> }
>>
>> -unsigned TargetData::getPrefTypeAlignment(Type *Ty) const {
>> +unsigned TargetData::getPrefTypeAlignment(const Type *Ty) const {
>> return getAlignment(Ty, false);
>> }
>>
>> -unsigned TargetData::getPreferredTypeAlignmentShift(Type *Ty) const {
>> +unsigned TargetData::getPreferredTypeAlignmentShift(const Type *Ty) const {
>> unsigned Align = getPrefTypeAlignment(Ty);
>> assert(!(Align & (Align-1)) && "Alignment is not a power of two!");
>> return Log2_32(Align);
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list