CtorUtils.h 993 B

1234567891011121314151617181920212223242526272829303132
  1. //===- CtorUtils.h - Helpers for working with global_ctors ------*- C++ -*-===//
  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 defines functions that are used to process llvm.global_ctors.
  11. //
  12. //===----------------------------------------------------------------------===//
  13. #ifndef LLVM_TRANSFORMS_UTILS_CTORUTILS_H
  14. #define LLVM_TRANSFORMS_UTILS_CTORUTILS_H
  15. #include "llvm/ADT/STLExtras.h"
  16. namespace llvm {
  17. class GlobalVariable;
  18. class Function;
  19. class Module;
  20. /// Call "ShouldRemove" for every entry in M's global_ctor list and remove the
  21. /// entries for which it returns true. Return true if anything changed.
  22. bool optimizeGlobalCtorsList(Module &M,
  23. function_ref<bool(Function *)> ShouldRemove);
  24. } // End llvm namespace
  25. #endif