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
14#ifndef LLVM_TRANSFORMS_UTILS_CTOR_UTILS_H
15#define LLVM_TRANSFORMS_UTILS_CTOR_UTILS_H
16
17#include "llvm/ADT/STLExtras.h"
18
19namespace llvm {
20
21class GlobalVariable;
22class Function;
23class Module;
24
25/// Call "ShouldRemove" for every entry in M's global_ctor list and remove the
26/// entries for which it returns true.  Return true if anything changed.
27bool optimizeGlobalCtorsList(Module &M,
28                             function_ref<bool(Function *)> ShouldRemove);
29
30} // End llvm namespace
31
32#endif
33