LLVM API Documentation

llvm::bitc Namespace Reference


Enumerations

enum  StandardWidths { BlockIDWidth = 8, CodeLenWidth = 4, BlockSizeWidth = 32 }
enum  FixedAbbrevIDs {
  END_BLOCK = 0, ENTER_SUBBLOCK = 1, DEFINE_ABBREV = 2, UNABBREV_RECORD = 3,
  FIRST_APPLICATION_ABBREV = 4
}
enum  StandardBlockIDs { BLOCKINFO_BLOCK_ID = 0, FIRST_APPLICATION_BLOCKID = 8 }
enum  BlockInfoCodes { BLOCKINFO_CODE_SETBID = 1 }
enum  BlockIDs {
  MODULE_BLOCK_ID = FIRST_APPLICATION_BLOCKID, PARAMATTR_BLOCK_ID, TYPE_BLOCK_ID, CONSTANTS_BLOCK_ID,
  FUNCTION_BLOCK_ID, TYPE_SYMTAB_BLOCK_ID, VALUE_SYMTAB_BLOCK_ID
}
enum  ModuleCodes {
  MODULE_CODE_VERSION = 1, MODULE_CODE_TRIPLE = 2, MODULE_CODE_DATALAYOUT = 3, MODULE_CODE_ASM = 4,
  MODULE_CODE_SECTIONNAME = 5, MODULE_CODE_DEPLIB = 6, MODULE_CODE_GLOBALVAR = 7, MODULE_CODE_FUNCTION = 8,
  MODULE_CODE_ALIAS = 9, MODULE_CODE_PURGEVALS = 10, MODULE_CODE_GCNAME = 11
}
 MODULE blocks have a number of optional fields and subblocks. More...
enum  AttributeCodes { PARAMATTR_CODE_ENTRY = 1 }
 PARAMATTR blocks have code for defining a parameter attribute set. More...
enum  TypeCodes {
  TYPE_CODE_NUMENTRY = 1, TYPE_CODE_VOID = 2, TYPE_CODE_FLOAT = 3, TYPE_CODE_DOUBLE = 4,
  TYPE_CODE_LABEL = 5, TYPE_CODE_OPAQUE = 6, TYPE_CODE_INTEGER = 7, TYPE_CODE_POINTER = 8,
  TYPE_CODE_FUNCTION = 9, TYPE_CODE_STRUCT = 10, TYPE_CODE_ARRAY = 11, TYPE_CODE_VECTOR = 12,
  TYPE_CODE_X86_FP80 = 13, TYPE_CODE_FP128 = 14, TYPE_CODE_PPC_FP128 = 15
}
 TYPE blocks have codes for each type primitive they use. More...
enum  TypeSymtabCodes { TST_CODE_ENTRY = 1 }
enum  ValueSymtabCodes { VST_CODE_ENTRY = 1, VST_CODE_BBENTRY = 2 }
enum  ConstantsCodes {
  CST_CODE_SETTYPE = 1, CST_CODE_NULL = 2, CST_CODE_UNDEF = 3, CST_CODE_INTEGER = 4,
  CST_CODE_WIDE_INTEGER = 5, CST_CODE_FLOAT = 6, CST_CODE_AGGREGATE = 7, CST_CODE_STRING = 8,
  CST_CODE_CSTRING = 9, CST_CODE_CE_BINOP = 10, CST_CODE_CE_CAST = 11, CST_CODE_CE_GEP = 12,
  CST_CODE_CE_SELECT = 13, CST_CODE_CE_EXTRACTELT = 14, CST_CODE_CE_INSERTELT = 15, CST_CODE_CE_SHUFFLEVEC = 16,
  CST_CODE_CE_CMP = 17, CST_CODE_INLINEASM = 18
}
enum  CastOpcodes {
  CAST_TRUNC = 0, CAST_ZEXT = 1, CAST_SEXT = 2, CAST_FPTOUI = 3,
  CAST_FPTOSI = 4, CAST_UITOFP = 5, CAST_SITOFP = 6, CAST_FPTRUNC = 7,
  CAST_FPEXT = 8, CAST_PTRTOINT = 9, CAST_INTTOPTR = 10, CAST_BITCAST = 11
}
enum  BinaryOpcodes {
  BINOP_ADD = 0, BINOP_SUB = 1, BINOP_MUL = 2, BINOP_UDIV = 3,
  BINOP_SDIV = 4, BINOP_UREM = 5, BINOP_SREM = 6, BINOP_SHL = 7,
  BINOP_LSHR = 8, BINOP_ASHR = 9, BINOP_AND = 10, BINOP_OR = 11,
  BINOP_XOR = 12
}
enum  FunctionCodes {
  FUNC_CODE_DECLAREBLOCKS = 1, FUNC_CODE_INST_BINOP = 2, FUNC_CODE_INST_CAST = 3, FUNC_CODE_INST_GEP = 4,
  FUNC_CODE_INST_SELECT = 5, FUNC_CODE_INST_EXTRACTELT = 6, FUNC_CODE_INST_INSERTELT = 7, FUNC_CODE_INST_SHUFFLEVEC = 8,
  FUNC_CODE_INST_CMP = 9, FUNC_CODE_INST_RET = 10, FUNC_CODE_INST_BR = 11, FUNC_CODE_INST_SWITCH = 12,
  FUNC_CODE_INST_INVOKE = 13, FUNC_CODE_INST_UNWIND = 14, FUNC_CODE_INST_UNREACHABLE = 15, FUNC_CODE_INST_PHI = 16,
  FUNC_CODE_INST_MALLOC = 17, FUNC_CODE_INST_FREE = 18, FUNC_CODE_INST_ALLOCA = 19, FUNC_CODE_INST_LOAD = 20,
  FUNC_CODE_INST_STORE = 21, FUNC_CODE_INST_CALL = 22, FUNC_CODE_INST_VAARG = 23, FUNC_CODE_INST_STORE2 = 24,
  FUNC_CODE_INST_GETRESULT = 25, FUNC_CODE_INST_EXTRACTVAL = 26, FUNC_CODE_INST_INSERTVAL = 27, FUNC_CODE_INST_CMP2 = 28,
  FUNC_CODE_INST_VSELECT = 29
}


Enumeration Type Documentation

PARAMATTR blocks have code for defining a parameter attribute set.

Enumerator:
PARAMATTR_CODE_ENTRY 

Definition at line 67 of file LLVMBitCodes.h.

BinaryOpcodes - These are values used in the bitcode files to encode which binop a CST_CODE_CE_BINOP or a XXX refers to. The values of these enums have no fixed relation to the LLVM IR enum values. Changing these will break compatibility with old files.

Enumerator:
BINOP_ADD 
BINOP_SUB 
BINOP_MUL 
BINOP_UDIV 
BINOP_SDIV 
BINOP_UREM 
BINOP_SREM 
BINOP_SHL 
BINOP_LSHR 
BINOP_ASHR 
BINOP_AND 
BINOP_OR 
BINOP_XOR 

Definition at line 154 of file LLVMBitCodes.h.

Enumerator:
MODULE_BLOCK_ID 
PARAMATTR_BLOCK_ID 
TYPE_BLOCK_ID 
CONSTANTS_BLOCK_ID 
FUNCTION_BLOCK_ID 
TYPE_SYMTAB_BLOCK_ID 
VALUE_SYMTAB_BLOCK_ID 

Definition at line 26 of file LLVMBitCodes.h.

BlockInfoCodes - The blockinfo block contains metadata about user-defined blocks.

Enumerator:
BLOCKINFO_CODE_SETBID 

Definition at line 68 of file BitCodes.h.

CastOpcodes - These are values used in the bitcode files to encode which cast a CST_CODE_CE_CAST or a XXX refers to. The values of these enums have no fixed relation to the LLVM IR enum values. Changing these will break compatibility with old files.

Enumerator:
CAST_TRUNC 
CAST_ZEXT 
CAST_SEXT 
CAST_FPTOUI 
CAST_FPTOSI 
CAST_UITOFP 
CAST_SITOFP 
CAST_FPTRUNC 
CAST_FPEXT 
CAST_PTRTOINT 
CAST_INTTOPTR 
CAST_BITCAST 

Definition at line 135 of file LLVMBitCodes.h.

Enumerator:
CST_CODE_SETTYPE 
CST_CODE_NULL 
CST_CODE_UNDEF 
CST_CODE_INTEGER 
CST_CODE_WIDE_INTEGER 
CST_CODE_FLOAT 
CST_CODE_AGGREGATE 
CST_CODE_STRING 
CST_CODE_CSTRING 
CST_CODE_CE_BINOP 
CST_CODE_CE_CAST 
CST_CODE_CE_GEP 
CST_CODE_CE_SELECT 
CST_CODE_CE_EXTRACTELT 
CST_CODE_CE_INSERTELT 
CST_CODE_CE_SHUFFLEVEC 
CST_CODE_CE_CMP 
CST_CODE_INLINEASM 

Definition at line 110 of file LLVMBitCodes.h.

Enumerator:
END_BLOCK 
ENTER_SUBBLOCK 
DEFINE_ABBREV  DEFINE_ABBREV - Defines an abbrev for the current block. It consists of a vbr5 for # operand infos. Each operand info is emitted with a single bit to indicate if it is a literal encoding. If so, the value is emitted with a vbr8. If not, the encoding is emitted as 3 bits followed by the info value as a vbr5 if needed.
UNABBREV_RECORD 
FIRST_APPLICATION_ABBREV 

Definition at line 35 of file BitCodes.h.

Enumerator:
FUNC_CODE_DECLAREBLOCKS 
FUNC_CODE_INST_BINOP 
FUNC_CODE_INST_CAST 
FUNC_CODE_INST_GEP 
FUNC_CODE_INST_SELECT 
FUNC_CODE_INST_EXTRACTELT 
FUNC_CODE_INST_INSERTELT 
FUNC_CODE_INST_SHUFFLEVEC 
FUNC_CODE_INST_CMP 
FUNC_CODE_INST_RET 
FUNC_CODE_INST_BR 
FUNC_CODE_INST_SWITCH 
FUNC_CODE_INST_INVOKE 
FUNC_CODE_INST_UNWIND 
FUNC_CODE_INST_UNREACHABLE 
FUNC_CODE_INST_PHI 
FUNC_CODE_INST_MALLOC 
FUNC_CODE_INST_FREE 
FUNC_CODE_INST_ALLOCA 
FUNC_CODE_INST_LOAD 
FUNC_CODE_INST_STORE 
FUNC_CODE_INST_CALL 
FUNC_CODE_INST_VAARG 
FUNC_CODE_INST_STORE2 
FUNC_CODE_INST_GETRESULT 
FUNC_CODE_INST_EXTRACTVAL 
FUNC_CODE_INST_INSERTVAL 
FUNC_CODE_INST_CMP2 
FUNC_CODE_INST_VSELECT 

Definition at line 173 of file LLVMBitCodes.h.

MODULE blocks have a number of optional fields and subblocks.

Enumerator:
MODULE_CODE_VERSION 
MODULE_CODE_TRIPLE 
MODULE_CODE_DATALAYOUT 
MODULE_CODE_ASM 
MODULE_CODE_SECTIONNAME 
MODULE_CODE_DEPLIB 
MODULE_CODE_GLOBALVAR 
MODULE_CODE_FUNCTION 
MODULE_CODE_ALIAS 
MODULE_CODE_PURGEVALS  MODULE_CODE_PURGEVALS: [numvals].
MODULE_CODE_GCNAME 

Definition at line 41 of file LLVMBitCodes.h.

StandardBlockIDs - All bitcode files can optionally include a BLOCKINFO block, which contains metadata about other blocks in the file.

Enumerator:
BLOCKINFO_BLOCK_ID  BLOCKINFO_BLOCK is used to define metadata about blocks, for example, standard abbrevs that should be available to all blocks of a specified ID.
FIRST_APPLICATION_BLOCKID 

Definition at line 56 of file BitCodes.h.

Enumerator:
BlockIDWidth 
CodeLenWidth 
BlockSizeWidth 

Definition at line 27 of file BitCodes.h.

TYPE blocks have codes for each type primitive they use.

Enumerator:
TYPE_CODE_NUMENTRY 
TYPE_CODE_VOID 
TYPE_CODE_FLOAT 
TYPE_CODE_DOUBLE 
TYPE_CODE_LABEL 
TYPE_CODE_OPAQUE 
TYPE_CODE_INTEGER 
TYPE_CODE_POINTER 
TYPE_CODE_FUNCTION 
TYPE_CODE_STRUCT 
TYPE_CODE_ARRAY 
TYPE_CODE_VECTOR 
TYPE_CODE_X86_FP80 
TYPE_CODE_FP128 
TYPE_CODE_PPC_FP128 

Definition at line 72 of file LLVMBitCodes.h.

Enumerator:
TST_CODE_ENTRY 

Definition at line 98 of file LLVMBitCodes.h.

Enumerator:
VST_CODE_ENTRY 
VST_CODE_BBENTRY 

Definition at line 103 of file LLVMBitCodes.h.




This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.