|
LLVM 24.0.0git
|
Classes | |
| struct | BitSetBuilder |
| struct | BitSetInfo |
| struct | ByteArrayBuilder |
| This class is used to build a byte array containing overlapping bit sets. More... | |
| class | GlobalLayoutBuilder |
| This class implements a layout algorithm for globals referenced by bit sets that tries to keep members of small bit sets together. More... | |
Enumerations | |
| enum class | DropTestKind { Assume , All } |
| Specifies how to drop type tests. More... | |
Functions | |
| LLVM_ABI bool | isJumpTableCanonical (Function *F) |
| LLVM_ABI bool | hasTypeMetadata (const GlobalObject &GO) |
| Returns whether a global or its associated global has attached type metadata. | |
| LLVM_ABI SetVector< GlobalValue * > | findCfiFunctions (Module &M) |
Finds all functions and aliases in M that may need CFI jump table entries. | |
| LLVM_ABI SetVector< uint64_t > | findCfiTypeIds (const Module &M) |
Finds all 64-bit numeric type identifiers in M used for cross-DSO CFI. | |
| LLVM_ABI void | createCfiMetadata (Module &DestM, const Module &SrcM, ArrayRef< GlobalValue * > CfiFunctions, ProfileSummaryInfo &PSI, function_ref< const BlockFrequencyInfo &(Function &)> BFIGetter) |
Creates cfi.functions, aliases, and symvers named metadata in DestM for CFI functions in CfiFunctions from source module SrcM. | |
| LLVM_ABI bool | cleanUpTypeCheckedLoad (Module &M, Function &CheckedLoadFn, bool IsRelative) |
| Lower @llvm.type.checked.load[.relative] calls to the guarded load with the check assumed true, and erase the declaration once it has no users. | |
|
strong |
Specifies how to drop type tests.
| Enumerator | |
|---|---|
| Assume | |
| All | Drop only llvm.assumes using type test value. |
Definition at line 236 of file LowerTypeTests.h.
| bool llvm::lowertypetests::cleanUpTypeCheckedLoad | ( | Module & | M, |
| Function & | CheckedLoadFn, | ||
| bool | IsRelative ) |
Lower @llvm.type.checked.load[.relative] calls to the guarded load with the check assumed true, and erase the declaration once it has no users.
Returns true if anything changed. Shared with FatLTOCleanup.
Definition at line 2423 of file LowerTypeTests.cpp.
References Changed, llvm::IRBuilderBase::CreateInsertValue(), llvm::IRBuilderBase::CreateIntrinsicWithoutFolding(), llvm::IRBuilderBase::CreateLoad(), llvm::IRBuilderBase::CreatePtrAdd(), llvm::dbgs(), DEBUG_TYPE, llvm::dyn_cast(), llvm::Function::eraseFromParent(), llvm::PoisonValue::get(), llvm::ConstantInt::getTrue(), I, LLVM_DEBUG, llvm::Load, llvm::make_early_inc_range(), llvm::Offset, llvm::True, and llvm::Value::users().
Referenced by dropTypeTests(), and llvm::FatLtoCleanup::run().
| void llvm::lowertypetests::createCfiMetadata | ( | Module & | DestM, |
| const Module & | SrcM, | ||
| ArrayRef< GlobalValue * > | CfiFunctions, | ||
| ProfileSummaryInfo & | PSI, | ||
| function_ref< const BlockFrequencyInfo &(Function &)> | BFIGetter ) |
Creates cfi.functions, aliases, and symvers named metadata in DestM for CFI functions in CfiFunctions from source module SrcM.
Definition at line 545 of file LowerTypeTests.cpp.
References createCfiAliasesMetadata(), createCfiFunctionsMetadata(), and createCfiSymversMetadata().
| SetVector< GlobalValue * > llvm::lowertypetests::findCfiFunctions | ( | Module & | M | ) |
Finds all functions and aliases in M that may need CFI jump table entries.
Definition at line 316 of file LowerTypeTests.cpp.
References A(), llvm::dyn_cast(), F, hasTypeMetadata(), and llvm::SetVector< T, Vector, Set, N >::insert().
Finds all 64-bit numeric type identifiers in M used for cross-DSO CFI.
Definition at line 344 of file LowerTypeTests.cpp.
References assert(), llvm::cast(), extractNumericTypeId(), I, llvm::SetVector< T, Vector, Set, N >::insert(), and llvm::isa().
| bool llvm::lowertypetests::hasTypeMetadata | ( | const GlobalObject & | GO | ) |
Returns whether a global or its associated global has attached type metadata.
Definition at line 307 of file LowerTypeTests.cpp.
References llvm::dyn_cast(), llvm::dyn_cast_or_null(), llvm::GlobalObject::getMetadata(), and llvm::GlobalObject::hasMetadata().
Referenced by findCfiFunctions().
Definition at line 297 of file LowerTypeTests.cpp.
References llvm::mdconst::extract_or_null(), and F.
Referenced by createCfiFunctionsMetadata().