1//===-- GCs.h - Garbage collector linkage hacks ---------------------------===// 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 contains hack functions to force linking in the GC components. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_CODEGEN_GCS_H 15#define LLVM_CODEGEN_GCS_H 16 17namespace llvm { 18class GCStrategy; 19class GCMetadataPrinter; 20 21/// FIXME: Collector instances are not useful on their own. These no longer 22/// serve any purpose except to link in the plugins. 23 24/// Creates a CoreCLR-compatible garbage collector. 25void linkCoreCLRGC(); 26 27/// Creates an ocaml-compatible garbage collector. 28void linkOcamlGC(); 29 30/// Creates an ocaml-compatible metadata printer. 31void linkOcamlGCPrinter(); 32 33/// Creates an erlang-compatible garbage collector. 34void linkErlangGC(); 35 36/// Creates an erlang-compatible metadata printer. 37void linkErlangGCPrinter(); 38 39/// Creates a shadow stack garbage collector. This collector requires no code 40/// generator support. 41void linkShadowStackGC(); 42 43void linkStatepointExampleGC(); 44} 45 46#endif 47