From 231022954fbdc6514814af6721eb81b229325a49 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 27 Aug 2001 15:49:16 +0000 Subject: [PATCH] Remove target specific code, move to TargetData.cpp file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@377 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/DerivedTypes.h | 51 +------------------------------------ 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h index 6b3fd1fc48b..eae4b7357e6 100644 --- a/include/llvm/DerivedTypes.h +++ b/include/llvm/DerivedTypes.h @@ -12,12 +12,10 @@ #define LLVM_DERIVED_TYPES_H #include "llvm/Type.h" -#include "llvm/CodeGen/TargetMachine.h" #include // Future derived types: SIMD packed format - class MethodType : public Type { public: typedef vector ParamTypes; @@ -87,13 +85,7 @@ public: private: ElementTypes ETypes; - struct StructSizeAndOffsetInfo { - int storageSize; // -1 until the value is computd - vector memberOffsets; // -1 until values are computed - const TargetMachine* targetInfo; - } *layoutCache; - -private: + StructType(const StructType &); // Do not implement const StructType &operator=(const StructType &); // Do not implement @@ -105,53 +97,12 @@ protected: // Private ctor - Only can be created by a static member... StructType(const vector &Types, const string &Name); - // Reset cached info so it will be computed when first requested - void ResetCachedInfo() const { - layoutCache->storageSize = -1; - layoutCache->memberOffsets.insert(layoutCache->memberOffsets.begin(), - ETypes.size(), -1); - layoutCache->targetInfo = 0; - } - public: inline const ElementTypes &getElementTypes() const { return ETypes; } static const StructType *getStructType(const ElementTypes &Params); static const StructType *get(const ElementTypes &Params) { return getStructType(Params); } - - - unsigned int getStorageSize(const TargetMachine& tmi) const { - if (layoutCache->targetInfo && layoutCache->targetInfo != &tmi) { - // target machine has changed (hey it could happen). discard cached info. - ResetCachedInfo(); - layoutCache->targetInfo = &tmi; - } - - if (layoutCache->storageSize < 0) { - layoutCache->storageSize = tmi.findOptimalStorageSize(this); - assert(layoutCache->storageSize >= 0); - } - return layoutCache->storageSize; - } - unsigned int getElementOffset(int i, const TargetMachine& tmi) const { - // target machine has changed (hey it could happen). discard cached info. - if (layoutCache->targetInfo && layoutCache->targetInfo != &tmi) - ResetCachedInfo(); - - if (layoutCache->memberOffsets[i] < 0) { - layoutCache->targetInfo = &tmi; // remember which target was used - - unsigned int *offsetVec = tmi.findOptimalMemberOffsets(this); - for (unsigned i=0, N=layoutCache->memberOffsets.size(); i < N; ++i) { - layoutCache->memberOffsets[i] = offsetVec[i]; - assert(layoutCache->memberOffsets[i] >= 0); - } - delete[] offsetVec; - } - - return layoutCache->memberOffsets[i]; - } }; -- 2.34.1