[GC] Make GCStrategy::isGCManagedPointer a type predicate not a value predicate ...
[oota-llvm.git] / lib / CodeGen / OcamlGC.cpp
index 88499cbd66827c175053f7e993a4d248b1320544..17654a6ac3a20da74caf9e384e4c880df02ab91d 100644 (file)
@@ -1,4 +1,4 @@
-//===-- OcamlCollector.cpp - Ocaml frametable emitter ---------------------===//
+//===-- OcamlGC.cpp - Ocaml frametable GC strategy ------------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //
 // This file implements lowering for the llvm.gc* intrinsics compatible with
 // Objective Caml 3.10.0, which uses a liveness-accurate static stack map.
 //
+// The frametable emitter is in OcamlGCPrinter.cpp.
+//
 //===----------------------------------------------------------------------===//
-                        
+
 #include "llvm/CodeGen/GCs.h"
-#include "llvm/CodeGen/AsmPrinter.h"
 #include "llvm/CodeGen/GCStrategy.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetAsmInfo.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
 
 using namespace llvm;
 
 namespace {
-
-  class VISIBILITY_HIDDEN OcamlCollector : public Collector {
-  public:
-    OcamlCollector();
-  };
-  
+class OcamlGC : public GCStrategy {
+public:
+  OcamlGC();
+};
 }
 
-static CollectorRegistry::Add<OcamlCollector>
-X("ocaml", "ocaml 3.10-compatible collector");
+static GCRegistry::Add<OcamlGC> X("ocaml", "ocaml 3.10-compatible GC");
 
-// -----------------------------------------------------------------------------
-
-Collector *llvm::createOcamlCollector() {
-  return new OcamlCollector();
-}
+void llvm::linkOcamlGC() {}
 
-OcamlCollector::OcamlCollector() {
+OcamlGC::OcamlGC() {
   NeededSafePoints = 1 << GC::PostCall;
   UsesMetadata = true;
 }