* Privatize the TargetName
authorChris Lattner <sabre@nondot.org>
Tue, 29 Oct 2002 21:48:17 +0000 (21:48 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 29 Oct 2002 21:48:17 +0000 (21:48 +0000)
* Move optSizeForSubWordData to TargetData
* Remove unused fields

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4417 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetData.h
include/llvm/Target/TargetMachine.h
lib/Target/SparcV9/SparcV9TargetMachine.cpp
lib/Target/TargetData.cpp

index 074345023fe73301ec62d7f3570fa2b09a241575..b1ea6b9a17bdbaedfefe94b453d5aa619902fa6b 100644 (file)
@@ -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; }
index 860d67eeae66149f4f2109ff96fbcabba655264a..85ee5e077e8c5b8c255a2d96bda27e74107721f6 100644 (file)
@@ -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
index e8f9c9ee728c6a0794827e794222c17e8f669e1e..948cbfbceaa34f89ba9773306f8c2efff8bea93e 100644 (file)
@@ -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) {
 }
 
 
index 1207a6eed149d7ffbf144a3c8bd28147e5ac6efa..20e7522e5036f8fef6c6798ae06108d82d6e7a99 100644 (file)
@@ -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;