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

#include "llvm/IR/ModuleSummaryIndex.h"

Collaboration diagram for llvm::TypeTestResolution:
Collaboration graph
[legend]

Public Types

enum  Kind {
  Unsat, ByteArray, Inline, Single,
  AllOnes
}
 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 698 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")

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

Referenced by FunctionNumber(), getTTResKindName(), 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: