LLVM API Documentation

GCs.h
Go to the documentation of this file.
00001 //===-- GCs.h - Garbage collector linkage hacks ---------------------------===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file contains hack functions to force linking in the GC components.
00011 //
00012 //===----------------------------------------------------------------------===//
00013 
00014 #ifndef LLVM_CODEGEN_GCS_H
00015 #define LLVM_CODEGEN_GCS_H
00016 
00017 namespace llvm {
00018   class GCStrategy;
00019   class GCMetadataPrinter;
00020 
00021   /// FIXME: Collector instances are not useful on their own. These no longer
00022   ///        serve any purpose except to link in the plugins.
00023 
00024   /// Creates an ocaml-compatible garbage collector.
00025   void linkOcamlGC();
00026 
00027   /// Creates an ocaml-compatible metadata printer.
00028   void linkOcamlGCPrinter();
00029 
00030   /// Creates an erlang-compatible garbage collector.
00031   void linkErlangGC();
00032 
00033   /// Creates an erlang-compatible metadata printer.
00034   void linkErlangGCPrinter();
00035 
00036   /// Creates a shadow stack garbage collector. This collector requires no code
00037   /// generator support.
00038   void linkShadowStackGC();
00039 }
00040 
00041 #endif