1 //===-- BuiltinGCs.h - Garbage collector linkage hacks --------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file contains hack functions to force linking in the builtin GC
10 // components.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_IR_BUILTINGCS_H
15 #define LLVM_IR_BUILTINGCS_H
16 
17 namespace llvm {
18 
19 /// FIXME: Collector instances are not useful on their own. These no longer
20 ///        serve any purpose except to link in the plugins.
21 
22 /// Ensure the definition of the builtin GCs gets linked in
23 void linkAllBuiltinGCs();
24 
25 /// Creates an ocaml-compatible metadata printer.
26 void linkOcamlGCPrinter();
27 
28 /// Creates an erlang-compatible metadata printer.
29 void linkErlangGCPrinter();
30 
31 } // namespace llvm
32 
33 #endif // LLVM_IR_BUILTINGCS_H
34