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

#include <ModuleSummaryIndex.h>

Collaboration diagram for llvm::TypeTestResolution:
[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...
 

Detailed Description

Definition at line 306 of file ModuleSummaryIndex.h.

Member Enumeration Documentation

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 311 of file ModuleSummaryIndex.h.

Member Data Documentation

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 323 of file ModuleSummaryIndex.h.

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

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

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