-//===-- 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;
}