LLVM 19.0.0git
Public Types | Public Attributes | List of all members
llvm::TypeTestResolution Struct Reference

#include "llvm/IR/ModuleSummaryIndex.h"

Public Types

enum  Kind {
  Unsat , ByteArray , Inline , Single ,
  AllOnes , Unknown
 Specifies which kind of type check we should emit for this byte array. More...

Public Attributes

enum llvm::TypeTestResolution::Kind TheKind = Unknown
unsigned SizeM1BitWidth = 0
 Range of size-1 expressed as a bit width.
uint64_t AlignLog2 = 0
uint64_t SizeM1 = 0
uint8_t BitMask = 0
uint64_t InlineBits = 0

Detailed Description

Definition at line 1188 of file ModuleSummaryIndex.h.

Member Enumeration Documentation

◆ Kind

Specifies which kind of type check we should emit for this byte array.

See http://clang.llvm.org/docs/ControlFlowIntegrityDesign.html for full details on each kind of check; the enumerators are described with reference to that document.


Unsatisfiable type (i.e. no global has this type metadata)


Test a byte array (first example)


Inlined bit vector ("Short Inline Bit Vectors")


Single element (last example in "Short Inline Bit Vectors")


All-ones bit vector ("Eliminating Bit Vector Checks for All-Ones Bit Vectors")


Unknown (analysis not performed, don't lower)

Definition at line 1193 of file ModuleSummaryIndex.h.

Member Data Documentation

◆ AlignLog2

uint64_t llvm::TypeTestResolution::AlignLog2 = 0

◆ BitMask

uint8_t llvm::TypeTestResolution::BitMask = 0

◆ InlineBits

uint64_t llvm::TypeTestResolution::InlineBits = 0

◆ SizeM1

uint64_t llvm::TypeTestResolution::SizeM1 = 0

◆ SizeM1BitWidth

unsigned llvm::TypeTestResolution::SizeM1BitWidth = 0

Range of size-1 expressed as a bit width.

For example, if the size is in range [1,256], this number will be 8. This helps generate the most compact instruction sequences.

Definition at line 1206 of file ModuleSummaryIndex.h.

Referenced by llvm::yaml::MappingTraits< TypeTestResolution >::mapping(), and parseTypeIdSummaryRecord().

◆ TheKind

enum llvm::TypeTestResolution::Kind llvm::TypeTestResolution::TheKind = Unknown

The documentation for this struct was generated from the following file: