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_CTORUTILS_H 15 #define LLVM_TRANSFORMS_UTILS_CTORUTILS_H 16 17 #include "llvm/ADT/STLExtras.h" 18 19 namespace llvm { 20 21 class GlobalVariable; 22 class Function; 23 class 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. 27 bool optimizeGlobalCtorsList(Module &M, 28 function_ref<bool(Function *)> ShouldRemove); 29 30 } // End llvm namespace 31 32 #endif 33