LLVM  7.0.0svn
Public Types | Public Attributes | List of all members
llvm::TypeTestResolution Struct Reference

#include "llvm/IR/ModuleSummaryIndex.h"

Collaboration diagram for llvm::TypeTestResolution:
Collaboration graph

Public Types

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

Public Attributes

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

Detailed Description

Definition at line 634 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")

Definition at line 639 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 651 of file ModuleSummaryIndex.h.

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

◆ TheKind

enum llvm::TypeTestResolution::Kind llvm::TypeTestResolution::TheKind = Unsat

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