[FastISel] Fix a bug in FastISel::CallLoweringInfo.
[oota-llvm.git] / include / llvm / CodeGen / GCs.h
index 7850ddcd82687574d8c19648a14769c8d78fbbe7..bb170c85cbf834bcc44392f6b095a1eb0e1862ea 100644 (file)
@@ -1,4 +1,4 @@
-//===-- Collectors.h - Garbage collector registry -------------------------===//
+//===-- GCs.h - Garbage collector linkage hacks ---------------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -7,41 +7,35 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// This file declares the CollectorRegistry class, which is used to discover
-// pluggable garbage collectors.
+// This file contains hack functions to force linking in the GC components.
 //
 //===----------------------------------------------------------------------===//
 
 #ifndef LLVM_CODEGEN_GCS_H
 #define LLVM_CODEGEN_GCS_H
 
-#include "llvm/Support/Registry.h"
-
 namespace llvm {
-
-  class Collector;
+  class GCStrategy;
   class GCMetadataPrinter;
-  
-  /// The collector registry uses all the defaults from Registry.
-  /// 
-  typedef Registry<Collector> CollectorRegistry;
-  
-  /// The GC assembly printer registry uses all the defaults from Registry.
-  /// 
-  typedef Registry<GCMetadataPrinter> GCMetadataPrinterRegistry;
-  
+
   /// FIXME: Collector instances are not useful on their own. These no longer
   ///        serve any purpose except to link in the plugins.
-  
+
   /// Creates an ocaml-compatible garbage collector.
-  Collector *createOcamlCollector();
-  
+  void linkOcamlGC();
+
   /// Creates an ocaml-compatible metadata printer.
-  GCMetadataPrinter *createOcamlMetadataPrinter();
-  
+  void linkOcamlGCPrinter();
+
+  /// Creates an erlang-compatible garbage collector.
+  void linkErlangGC();
+
+  /// Creates an erlang-compatible metadata printer.
+  void linkErlangGCPrinter();
+
   /// Creates a shadow stack garbage collector. This collector requires no code
   /// generator support.
-  Collector *createShadowStackCollector();
+  void linkShadowStackGC();
 }
 
 #endif