LLVM: lib/Transforms/Utils/CtorUtils.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "ctor_utils"
Functions
static void removeGlobalCtors (GlobalVariable *GCL, const BitVector &CtorsToRemove)
Given a specified llvm.global_ctors list, remove the listed elements.
static std::vector< std::pair< uint32_t, Function * > > parseGlobalCtors (GlobalVariable *GV)
Given a llvm.global_ctors list that we can understand, return a list of the functions and null terminator as a vector.
static GlobalVariable * findGlobalCtors (Module &M)
Find the llvm.global_ctors list.

DEBUG_TYPE

#define DEBUG_TYPE "ctor_utils"

findGlobalCtors()

parseGlobalCtors()

removeGlobalCtors()

Given a specified llvm.global_ctors list, remove the listed elements.

Definition at line 28 of file CtorUtils.cpp.

References llvm::cast(), E(), llvm::GlobalVariable::eraseFromParent(), llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::GlobalValue::getAddressSpace(), llvm::ArrayType::getElementType(), llvm::GlobalVariable::getInitializer(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::GlobalValue::getLinkage(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::GlobalValue::getParent(), llvm::GlobalValue::getThreadLocalMode(), llvm::ConstantArray::getType(), llvm::Value::getType(), I, llvm::Module::insertGlobalVariable(), llvm::GlobalVariable::isConstant(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::GlobalVariable::setInitializer(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::Value::takeName(), llvm::BitVector::test(), and llvm::Value::use_empty().

Referenced by llvm::optimizeGlobalCtorsList().