GCs.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. #ifndef LLVM_CODEGEN_GCS_H
  14. #define LLVM_CODEGEN_GCS_H
  15. namespace llvm {
  16. class GCStrategy;
  17. class GCMetadataPrinter;
  18. /// FIXME: Collector instances are not useful on their own. These no longer
  19. /// serve any purpose except to link in the plugins.
  20. /// Creates a CoreCLR-compatible garbage collector.
  21. void linkCoreCLRGC();
  22. /// Creates an ocaml-compatible garbage collector.
  23. void linkOcamlGC();
  24. /// Creates an ocaml-compatible metadata printer.
  25. void linkOcamlGCPrinter();
  26. /// Creates an erlang-compatible garbage collector.
  27. void linkErlangGC();
  28. /// Creates an erlang-compatible metadata printer.
  29. void linkErlangGCPrinter();
  30. /// Creates a shadow stack garbage collector. This collector requires no code
  31. /// generator support.
  32. void linkShadowStackGC();
  33. void linkStatepointExampleGC();
  34. }
  35. #endif