LLVM: lib/CodeGen/WindowsSecureHotPatching.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "windows-secure-hot-patch" |
| Functions | |
|---|---|
| INITIALIZE_PASS (WindowsSecureHotPatching, "windows-secure-hot-patch", "Mark functions for Windows hot patch support", false, false) ModulePass *llvm | |
| static bool | TypeContainsPointers (Type *ty) |
| static bool | globalVariableNeedsRedirect (GlobalVariable *GV) |
| static GlobalVariable * | getOrCreateRefVariable (Function &F, SmallDenseMap< GlobalVariable *, GlobalVariable * > &RefMapping, GlobalVariable *GV) |
| static Value * | rewriteGlobalVariablesInConstant (Constant *C, SmallDenseMap< GlobalVariable *, Value * > &GVLoadMap, IRBuilder<> &IRBuilderAtEntry) |
| static bool | searchConstantExprForGlobalVariables (Value *V, SmallDenseMap< GlobalVariable *, Value * > &GVLoadMap, SmallVector< GlobalVariableUse > &GVUses) |
◆ DEBUG_TYPE
#define DEBUG_TYPE "windows-secure-hot-patch"
◆ getOrCreateRefVariable()
Definition at line 346 of file WindowsSecureHotPatching.cpp.
References llvm::concat(), llvm::dwarf_linker::DebugInfo, F, llvm::PointerType::get(), llvm::DIScope::getFile(), llvm::ConstantExpr::getGetElementPtr(), llvm::Value::getName(), llvm::DataLayout::getTypeSizeInBits(), llvm::GlobalValue::getValueType(), llvm::GlobalValue::LinkOnceAnyLinkage, llvm::GlobalValue::NotThreadLocal, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace().
◆ globalVariableNeedsRedirect()
◆ INITIALIZE_PASS()
| INITIALIZE_PASS | ( | WindowsSecureHotPatching | , |
|---|---|---|---|
| "windows-secure-hot-patch" | , | ||
| "Mark functions for Windows hot patch support" | , | ||
| false | , | ||
| false | ) |
◆ rewriteGlobalVariablesInConstant()
Definition at line 409 of file WindowsSecureHotPatching.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::at(), llvm::CallingConv::C, llvm::cast(), llvm::dyn_cast(), globalVariableNeedsRedirect(), llvm::IRBuilderBase::Insert(), OpIndex, llvm::SmallVectorTemplateBase< T, bool >::push_back(), rewriteGlobalVariablesInConstant(), and llvm::User::setOperand().
Referenced by rewriteGlobalVariablesInConstant().
◆ searchConstantExprForGlobalVariables()
◆ TypeContainsPointers()
| bool TypeContainsPointers ( Type * ty) | static |
|---|