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 { 23class OcamlGC : public GCStrategy { 24public: 25 OcamlGC(); 26}; 27} 28 29static GCRegistry::Add<OcamlGC> X("ocaml", "ocaml 3.10-compatible GC"); 30 31void llvm::linkOcamlGC() {} 32 33OcamlGC::OcamlGC() { 34 NeededSafePoints = 1 << GC::PostCall; 35 UsesMetadata = true; 36} 37