LLVM 24.0.0git
llvm::lowertypetests Namespace Reference

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_tfindCfiTypeIds (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.

Enumeration Type Documentation

◆ DropTestKind

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.

Function Documentation

◆ createCfiMetadata()

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().

◆ findCfiFunctions()

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().

◆ findCfiTypeIds()

SetVector< uint64_t > llvm::lowertypetests::findCfiTypeIds ( const Module & M)

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().

◆ hasTypeMetadata()

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().

◆ isJumpTableCanonical()

bool llvm::lowertypetests::isJumpTableCanonical ( Function * F)

Definition at line 297 of file LowerTypeTests.cpp.

References llvm::mdconst::extract_or_null(), and F.

Referenced by createCfiFunctionsMetadata().