From: Chris Lattner Date: Tue, 29 Oct 2002 21:48:17 +0000 (+0000) Subject: * Privatize the TargetName X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c56406c236478f718a2257c2b660561ebc855f16;p=oota-llvm.git * Privatize the TargetName * Move optSizeForSubWordData to TargetData * Remove unused fields git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4417 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetData.h b/include/llvm/Target/TargetData.h index 074345023fe..b1ea6b9a17b 100644 --- a/include/llvm/Target/TargetData.h +++ b/include/llvm/Target/TargetData.h @@ -24,6 +24,7 @@ class StructLayout; class TargetData : public ImmutablePass { bool LittleEndian; // Defaults to false + unsigned char SubWordDataSize; // Defaults to 1 byte (no rounding up) unsigned char ByteAlignment; // Defaults to 1 bytes unsigned char ShortAlignment; // Defaults to 2 bytes unsigned char IntAlignment; // Defaults to 4 bytes @@ -39,6 +40,7 @@ class TargetData : public ImmutablePass { public: TargetData(const std::string &TargetName = "SparcV9", bool LittleEndian = false, + unsigned char SubWordDataSize = 1, unsigned char IntRegSize = 8, unsigned char PtrSize = 8, unsigned char PtrAl = 8, unsigned char DoubleAl = 8, @@ -52,6 +54,7 @@ public: bool isBigEndian() const { return !LittleEndian; } /// Target alignment constraints + unsigned char getSubWordDataSize() const { return SubWordDataSize; } unsigned char getByteAlignment() const { return ByteAlignment; } unsigned char getShortAlignment() const { return ShortAlignment; } unsigned char getIntAlignment() const { return IntAlignment; } diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h index 860d67eeae6..85ee5e077e8 100644 --- a/include/llvm/Target/TargetMachine.h +++ b/include/llvm/Target/TargetMachine.h @@ -31,27 +31,25 @@ class Pass; //--------------------------------------------------------------------------- class TargetMachine : public NonCopyableV { + const std::string Name; public: - const std::string TargetName; const TargetData DataLayout; // Calculates type size & alignment - int optSizeForSubWordData; - int minMemOpWordSize; - int maxAtomicMemOpWordSize; protected: - TargetMachine(const std::string &targetname, // Can only create subclasses... - unsigned char IntRegSize = 8, + TargetMachine(const std::string &name, // Can only create subclasses... + unsigned char SubWordSize = 1, unsigned char IntRegSize = 8, unsigned char PtrSize = 8, unsigned char PtrAl = 8, unsigned char DoubleAl = 8, unsigned char FloatAl = 4, unsigned char LongAl = 8, unsigned char IntAl = 4, unsigned char ShortAl = 2, unsigned char ByteAl = 1) - : TargetName(targetname), DataLayout(targetname, IntRegSize, - PtrSize, PtrAl, - DoubleAl, FloatAl, LongAl, IntAl, - ShortAl, ByteAl) { } + : Name(name), DataLayout(name, SubWordSize, IntRegSize, PtrSize, PtrAl, + DoubleAl, FloatAl, LongAl, + IntAl, ShortAl, ByteAl) {} public: virtual ~TargetMachine() {} + const std::string &getName() const { return Name; } + // // Interfaces to the major aspects of target machine information: // -- Instruction opcode and operand information @@ -70,7 +68,7 @@ public: // Data storage information // - virtual unsigned int findOptimalStorageSize (const Type* ty) const; + virtual unsigned findOptimalStorageSize(const Type* ty) const; /// addPassesToEmitAssembly - Add passes to the specified pass manager to get /// assembly langage code emited. Typically this will involve several steps diff --git a/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/lib/Target/SparcV9/SparcV9TargetMachine.cpp index e8f9c9ee728..948cbfbceaa 100644 --- a/lib/Target/SparcV9/SparcV9TargetMachine.cpp +++ b/lib/Target/SparcV9/SparcV9TargetMachine.cpp @@ -125,16 +125,12 @@ UltraSparcFrameInfo::getDynamicAreaOffset(MachineFunction& mcInfo, //--------------------------------------------------------------------------- UltraSparc::UltraSparc() - : TargetMachine("UltraSparc-Native"), + : TargetMachine("UltraSparc-Native", 4), schedInfo(*this), regInfo(*this), frameInfo(*this), cacheInfo(*this), - optInfo(*this) -{ - optSizeForSubWordData = 4; - minMemOpWordSize = 8; - maxAtomicMemOpWordSize = 8; + optInfo(*this) { } diff --git a/lib/Target/TargetData.cpp b/lib/Target/TargetData.cpp index 1207a6eed14..20e7522e503 100644 --- a/lib/Target/TargetData.cpp +++ b/lib/Target/TargetData.cpp @@ -81,7 +81,7 @@ Annotation *TargetData::TypeAnFactory(AnnotationID AID, const Annotable *T, //===----------------------------------------------------------------------===// TargetData::TargetData(const std::string &TargetName, - bool isLittleEndian, + bool isLittleEndian, unsigned char SubWordSize, unsigned char IntRegSize, unsigned char PtrSize, unsigned char PtrAl, unsigned char DoubleAl, unsigned char FloatAl, unsigned char LongAl, @@ -91,6 +91,7 @@ TargetData::TargetData(const std::string &TargetName, AnnotationManager::registerAnnotationFactory(AID, TypeAnFactory, this); LittleEndian = isLittleEndian; + SubWordDataSize = SubWordSize; IntegerRegSize = IntRegSize; PointerSize = PtrSize; PointerAlignment = PtrAl;