1//===-- OcamlGC.cpp - Ocaml frametable GC strategy ------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file implements lowering for the llvm.gc* intrinsics compatible with 11// Objective Caml 3.10.0, which uses a liveness-accurate static stack map. 12// 13// The frametable emitter is in OcamlGCPrinter.cpp. 14// 15//===----------------------------------------------------------------------===// 16 17#include "llvm/CodeGen/GCs.h" 18#include "llvm/CodeGen/GCStrategy.h" 19 20using namespace llvm; 21 22namespace { 23 class OcamlGC : public GCStrategy { 24 public: 25 OcamlGC(); 26 }; 27} 28 29static GCRegistry::Add<OcamlGC> 30X("ocaml", "ocaml 3.10-compatible GC"); 31 32void llvm::linkOcamlGC() { } 33 34OcamlGC::OcamlGC() { 35 NeededSafePoints = 1 << GC::PostCall; 36 UsesMetadata = true; 37} 38