12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- //===-- ErlangGC.cpp - Erlang/OTP GC strategy -------------------*- C++ -*-===//
- //
- // The LLVM Compiler Infrastructure
- //
- // This file is distributed under the University of Illinois Open Source
- // License. See LICENSE.TXT for details.
- //
- //===----------------------------------------------------------------------===//
- //
- // This file implements the Erlang/OTP runtime-compatible garbage collector
- // (e.g. defines safe points, root initialization etc.)
- //
- // The frametable emitter is in ErlangGCPrinter.cpp.
- //
- //===----------------------------------------------------------------------===//
- #include "llvm/CodeGen/GCs.h"
- #include "llvm/CodeGen/GCStrategy.h"
- #include "llvm/CodeGen/MachineInstrBuilder.h"
- #include "llvm/MC/MCContext.h"
- #include "llvm/MC/MCSymbol.h"
- #include "llvm/Target/TargetInstrInfo.h"
- #include "llvm/Target/TargetMachine.h"
- #include "llvm/Target/TargetSubtargetInfo.h"
- using namespace llvm;
- namespace {
- class ErlangGC : public GCStrategy {
- public:
- ErlangGC();
- };
- }
- static GCRegistry::Add<ErlangGC> X("erlang",
- "erlang-compatible garbage collector");
- void llvm::linkErlangGC() {}
- ErlangGC::ErlangGC() {
- InitRoots = false;
- NeededSafePoints = 1 << GC::PostCall;
- UsesMetadata = true;
- CustomRoots = false;
- }
|