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