LLVM 20.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 1203 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.

Enumerator
Unsat 

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

ByteArray 

Test a byte array (first example)

Inline 

Inlined bit vector ("Short Inline Bit Vectors")

Single 

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

AllOnes 

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

Unknown 

Unknown (analysis not performed, don't lower)

Definition at line 1208 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 1221 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: