LLVM: lib/Transforms/Utils/LowerGlobalDtors.cpp File Reference (original) (raw)
Lower @llvm.global_dtors. More...
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "lower-global-dtors" |
Detailed Description
Lower @llvm.global_dtors.
Implement @llvm.global_dtors by creating wrapper functions that are registered in @llvm.global_ctors and which contain a call to __cxa_atexit to register their destructor functions.
Definition in file LowerGlobalDtors.cpp.
Macro Definition Documentation
◆ DEBUG_TYPE
#define DEBUG_TYPE "lower-global-dtors"
Function Documentation
◆ INITIALIZE_PASS()
| INITIALIZE_PASS | ( | LowerGlobalDtorsLegacyPass | , |
|---|---|---|---|
| DEBUG_TYPE | , | ||
| "Lower @llvm.global_dtors via `__cxa_atexit`" | , | ||
| false | , | ||
| false | ) |
◆ runImpl()
Definition at line 77 of file LowerGlobalDtors.cpp.
References llvm::appendToGlobalCtors(), llvm::CallingConv::C, llvm::cast(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::CallInst::Create(), llvm::Function::Create(), llvm::ReturnInst::Create(), llvm::dyn_cast(), llvm::GlobalVariable::eraseFromParent(), llvm::GlobalValue::ExternalWeakLinkage, F, llvm::ConstantPointerNull::get(), llvm::FunctionType::get(), llvm::PointerType::get(), llvm::FunctionCallee::getCallee(), llvm::ArrayType::getElementType(), llvm::GlobalVariable::getInitializer(), llvm::Type::getInt32Ty(), llvm::Type::getInt8Ty(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::ConstantArray::getType(), llvm::Value::getType(), llvm::PointerType::getUnqual(), llvm::Type::getVoidTy(), llvm::GlobalVariable::hasInitializer(), llvm::GlobalValue::HiddenVisibility, llvm::CmpInst::ICMP_NE, llvm::Constant::isNullValue(), llvm::Null, llvm::User::operands(), llvm::GlobalValue::PrivateLinkage, llvm::reverse(), llvm::GlobalValue::setVisibility(), and llvm::Constant::stripPointerCasts().