OSDN Git Service

Extend some comments around GCModuleInfo, GCFunctionInfo, & GCStrategy
authorPhilip Reames <listmail@philipreames.com>
Wed, 10 Dec 2014 00:30:11 +0000 (00:30 +0000)
committerPhilip Reames <listmail@philipreames.com>
Wed, 10 Dec 2014 00:30:11 +0000 (00:30 +0000)
Nothing particularly interesting here, just documenting the way the code currently works before I start changing it...

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

include/llvm/CodeGen/GCMetadata.h
include/llvm/CodeGen/GCStrategy.h

index ddcc823..27e4219 100644 (file)
@@ -80,8 +80,8 @@ namespace llvm {
   };
 
 
-  /// GCFunctionInfo - Garbage collection metadata for a single function.
-  ///
+  /// Garbage collection metadata for a single function.  Currently, this
+  /// information only applies to GCStrategies which use GCRoot.
   class GCFunctionInfo {
   public:
     typedef std::vector<GCPoint>::iterator iterator;
@@ -161,8 +161,9 @@ namespace llvm {
   };
 
 
-  /// GCModuleInfo - Garbage collection metadata for a whole module.
-  ///
+  /// An analysis pass which caches information about the entire Module.
+  /// Records both the function level information used by GCRoots and a
+  /// cache of the 'active' gc strategy objects for the current Module.
   class GCModuleInfo : public ImmutablePass {
     typedef StringMap<GCStrategy*> strategy_map_type;
     typedef std::vector<std::unique_ptr<GCStrategy>> list_type;
index fa6c6f5..3bc2069 100644 (file)
@@ -51,7 +51,9 @@ namespace llvm {
   
   /// GCStrategy describes a garbage collector algorithm's code generation
   /// requirements, and provides overridable hooks for those needs which cannot
-  /// be abstractly described.
+  /// be abstractly described.  GCStrategy objects currently must be looked up
+  /// through the GCModuleInfo analysis pass.  They are owned by the analysis
+  /// pass and recreated every time that pass is invalidated.
   class GCStrategy {
   public:
     typedef std::vector<std::unique_ptr<GCFunctionInfo>> list_type;