[llvm-commits] CVS: llvm/include/llvm/DerivedTypes.h

Misha Brukman brukman at cs.uiuc.edu
Tue Feb 10 15:51:03 PST 2004


Changes in directory llvm/include/llvm:

DerivedTypes.h updated: 1.53 -> 1.54

---
Log message:

Sprinkle liberally with comments, saute with doxygen until readable.


---
Diffs of the changes:  (+77 -61)

Index: llvm/include/llvm/DerivedTypes.h
diff -u llvm/include/llvm/DerivedTypes.h:1.53 llvm/include/llvm/DerivedTypes.h:1.54
--- llvm/include/llvm/DerivedTypes.h:1.53	Sun Feb  8 23:40:14 2004
+++ llvm/include/llvm/DerivedTypes.h	Tue Feb 10 15:49:59 2004
@@ -53,9 +53,10 @@
   ///
   void notifyUsesThatTypeBecameConcrete();
 
-  // dropAllTypeUses - When this (abstract) type is resolved to be equal to
-  // another (more concrete) type, we must eliminate all references to other
-  // types, to avoid some circular reference problems.
+  /// dropAllTypeUses - When this (abstract) type is resolved to be equal to
+  /// another (more concrete) type, we must eliminate all references to other
+  /// types, to avoid some circular reference problems.
+  ///
   void dropAllTypeUses();
   
 public:
@@ -65,27 +66,27 @@
   // are managed by (add|remove)AbstractTypeUser. See comments in
   // AbstractTypeUser.h for more information.
 
-  // addAbstractTypeUser - Notify an abstract type that there is a new user of
-  // it.  This function is called primarily by the PATypeHandle class.
-  //
+  /// addAbstractTypeUser - Notify an abstract type that there is a new user of
+  /// it.  This function is called primarily by the PATypeHandle class.
+  ///
   void addAbstractTypeUser(AbstractTypeUser *U) const {
     assert(isAbstract() && "addAbstractTypeUser: Current type not abstract!");
     AbstractTypeUsers.push_back(U);
   }
 
-  // removeAbstractTypeUser - Notify an abstract type that a user of the class
-  // no longer has a handle to the type.  This function is called primarily by
-  // the PATypeHandle class.  When there are no users of the abstract type, it
-  // is annihilated, because there is no way to get a reference to it ever
-  // again.
-  //
+  /// removeAbstractTypeUser - Notify an abstract type that a user of the class
+  /// no longer has a handle to the type.  This function is called primarily by
+  /// the PATypeHandle class.  When there are no users of the abstract type, it
+  /// is annihilated, because there is no way to get a reference to it ever
+  /// again.
+  ///
   void removeAbstractTypeUser(AbstractTypeUser *U) const;
 
-  // refineAbstractTypeTo - This function is used to when it is discovered that
-  // the 'this' abstract type is actually equivalent to the NewType specified.
-  // This causes all users of 'this' to switch to reference the more concrete
-  // type NewType and for 'this' to be deleted.
-  //
+  /// refineAbstractTypeTo - This function is used to when it is discovered that
+  /// the 'this' abstract type is actually equivalent to the NewType specified.
+  /// This causes all users of 'this' to switch to reference the more concrete
+  /// type NewType and for 'this' to be deleted.
+  ///
   void refineAbstractTypeTo(const Type *NewType);
 
   void addRef() const {
@@ -117,8 +118,8 @@
 };
 
 
-
-
+/// FunctionType - Class to represent function types
+///
 class FunctionType : public DerivedType {
   friend class TypeMap<FunctionValType, FunctionType>;
   bool isVarArgs;
@@ -126,17 +127,19 @@
   FunctionType(const FunctionType &);                   // Do not implement
   const FunctionType &operator=(const FunctionType &);  // Do not implement
 protected:
-  // This should really be private, but it squelches a bogus warning
-  // from GCC to make them protected:  warning: `class FunctionType' only 
-  // defines private constructors and has no friends
-
-  // Private ctor - Only can be created by a static member...
+  /// This should really be private, but it squelches a bogus warning
+  /// from GCC to make them protected:  warning: `class FunctionType' only 
+  /// defines private constructors and has no friends
+  ///
+  /// Private ctor - Only can be created by a static member...
+  ///
   FunctionType(const Type *Result, const std::vector<const Type*> &Params, 
                bool IsVarArgs);
 
 public:
   /// FunctionType::get - This static method is the primary way of constructing
   /// a FunctionType
+  ///
   static FunctionType *get(const Type *Result,
                            const std::vector<const Type*> &Params,
                            bool isVarArg);
@@ -151,9 +154,9 @@
   // Parameter type accessors...
   const Type *getParamType(unsigned i) const { return ContainedTys[i+1]; }
 
-  // getNumParams - Return the number of fixed parameters this function type
-  // requires.  This does not consider varargs.
-  //
+  /// getNumParams - Return the number of fixed parameters this function type
+  /// requires.  This does not consider varargs.
+  ///
   unsigned getNumParams() const { return ContainedTys.size()-1; }
 
   // Implement the AbstractTypeUser interface.
@@ -171,16 +174,16 @@
 };
 
 
-// CompositeType - Common super class of ArrayType, StructType, and PointerType
-//
+/// CompositeType - Common super class of ArrayType, StructType, and PointerType
+///
 class CompositeType : public DerivedType {
 protected:
   inline CompositeType(PrimitiveID id) : DerivedType(id) { }
 public:
 
-  // getTypeAtIndex - Given an index value into the type, return the type of the
-  // element.
-  //
+  /// getTypeAtIndex - Given an index value into the type, return the type of
+  /// the element.
+  ///
   virtual const Type *getTypeAtIndex(const Value *V) const = 0;
   virtual bool indexValid(const Value *V) const = 0;
 
@@ -197,22 +200,26 @@
 };
 
 
+/// StructType - Class to represent struct types
+///
 class StructType : public CompositeType {
   friend class TypeMap<StructValType, StructType>;
   StructType(const StructType &);                   // Do not implement
   const StructType &operator=(const StructType &);  // Do not implement
 
 protected:
-  // This should really be private, but it squelches a bogus warning
-  // from GCC to make them protected:  warning: `class StructType' only 
-  // defines private constructors and has no friends
-
-  // Private ctor - Only can be created by a static member...
+  /// This should really be private, but it squelches a bogus warning
+  /// from GCC to make them protected:  warning: `class StructType' only 
+  /// defines private constructors and has no friends
+  ///
+  /// Private ctor - Only can be created by a static member...
+  ///
   StructType(const std::vector<const Type*> &Types);
 
 public:
   /// StructType::get - This static method is the primary way to create a
   /// StructType.
+  ///
   static StructType *get(const std::vector<const Type*> &Params);
 
   // Iterator access to the elements
@@ -227,9 +234,9 @@
     return ContainedTys[N];
   }
 
-  // getTypeAtIndex - Given an index value into the type, return the type of the
-  // element.  For a structure type, this must be a constant value...
-  //
+  /// getTypeAtIndex - Given an index value into the type, return the type of
+  /// the element.  For a structure type, this must be a constant value...
+  ///
   virtual const Type *getTypeAtIndex(const Value *V) const ;
   virtual bool indexValid(const Value *V) const;
 
@@ -248,12 +255,12 @@
 };
 
 
-// SequentialType - This is the superclass of the array and pointer type
-// classes.  Both of these represent "arrays" in memory.  The array type
-// represents a specifically sized array, pointer types are unsized/unknown size
-// arrays.  SequentialType holds the common features of both, which stem from
-// the fact that both lay their components out in memory identically.
-//
+/// SequentialType - This is the superclass of the array and pointer type
+/// classes.  Both of these represent "arrays" in memory.  The array type
+/// represents a specifically sized array, pointer types are unsized/unknown
+/// size arrays.  SequentialType holds the common features of both, which stem
+/// from the fact that both lay their components out in memory identically.
+///
 class SequentialType : public CompositeType {
   SequentialType(const SequentialType &);                  // Do not implement!
   const SequentialType &operator=(const SequentialType &); // Do not implement!
@@ -266,9 +273,9 @@
 public:
   inline const Type *getElementType() const { return ContainedTys[0]; }
 
-  // getTypeAtIndex - Given an index value into the type, return the type of the
-  // element.  For sequential types, there is only one subtype...
-  //
+  /// getTypeAtIndex - Given an index value into the type, return the type of
+  /// the element.  For sequential types, there is only one subtype...
+  ///
   virtual const Type *getTypeAtIndex(const Value *V) const {
     return ContainedTys[0];
   }
@@ -288,6 +295,8 @@
 };
 
 
+/// ArrayType - Class to represent array types
+///
 class ArrayType : public SequentialType {
   friend class TypeMap<ArrayValType, ArrayType>;
   unsigned NumElements;
@@ -295,16 +304,18 @@
   ArrayType(const ArrayType &);                   // Do not implement
   const ArrayType &operator=(const ArrayType &);  // Do not implement
 protected:
-  // This should really be private, but it squelches a bogus warning
-  // from GCC to make them protected:  warning: `class ArrayType' only 
-  // defines private constructors and has no friends
-
-  // Private ctor - Only can be created by a static member...
+  /// This should really be private, but it squelches a bogus warning
+  /// from GCC to make them protected:  warning: `class ArrayType' only 
+  /// defines private constructors and has no friends
+  ///
+  /// Private ctor - Only can be created by a static member...
+  ///
   ArrayType(const Type *ElType, unsigned NumEl);
 
 public:
   /// ArrayType::get - This static method is the primary way to construct an
   /// ArrayType
+  ///
   static ArrayType *get(const Type *ElementType, unsigned NumElements);
 
   inline unsigned    getNumElements() const { return NumElements; }
@@ -324,7 +335,8 @@
 };
 
 
-
+/// PointerType - Class to represent pointers
+///
 class PointerType : public SequentialType {
   friend class TypeMap<PointerValType, PointerType>;
   PointerType(const PointerType &);                   // Do not implement
@@ -356,19 +368,22 @@
 };
 
 
+/// OpaqueType - Class to represent abstract types
+///
 class OpaqueType : public DerivedType {
   OpaqueType(const OpaqueType &);                   // DO NOT IMPLEMENT
   const OpaqueType &operator=(const OpaqueType &);  // DO NOT IMPLEMENT
 protected:
-  // This should really be private, but it squelches a bogus warning
-  // from GCC to make them protected:  warning: `class OpaqueType' only 
-  // defines private constructors and has no friends
-
-  // Private ctor - Only can be created by a static member...
+  /// This should really be private, but it squelches a bogus warning
+  /// from GCC to make them protected:  warning: `class OpaqueType' only 
+  /// defines private constructors and has no friends
+  ///
+  /// Private ctor - Only can be created by a static member...
   OpaqueType();
 
 public:
-  // OpaqueType::get - Static factory method for the OpaqueType class...
+  /// OpaqueType::get - Static factory method for the OpaqueType class...
+  ///
   static OpaqueType *get() {
     return new OpaqueType();           // All opaque types are distinct
   }
@@ -429,6 +444,7 @@
 /// abstract types.  Before every access to the Type*, we check to see if the
 /// type we are pointing to is forwarding to a new type.  If so, we drop our
 /// reference to the type.
+///
 inline const Type* PATypeHolder::get() const {
   const Type *NewTy = Ty->getForwardedType();
   if (!NewTy) return Ty;





More information about the llvm-commits mailing list