use num_enum::{IntoPrimitive, TryFromPrimitive};
use crate::FIRST_APPLICATION_BLOCK_ID;
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq, TryFromPrimitive)]
#[repr(u64)]
pub enum ReservedBlockId {
BlockInfo = 0,
Reserved1 = 1,
Reserved2 = 2,
Reserved3 = 3,
Reserved4 = 4,
Reserved5 = 5,
Reserved6 = 6,
Reserved7 = 7,
}
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq, TryFromPrimitive)]
#[repr(u64)]
pub enum IrBlockId {
Module = FIRST_APPLICATION_BLOCK_ID,
ParamAttr,
ParamAttrGroup,
Constants,
Function,
Identification,
ValueSymtab,
Metadata,
MetadataAttachment,
Type,
Uselist,
ModuleStrtab,
GlobalValSummary,
OperandBundleTags,
MetadataKind,
Strtab,
FullLtoGlobalValSummary,
Symtab,
SyncScopeNames,
}
#[derive(Clone, Copy, Debug, PartialEq, TryFromPrimitive)]
#[repr(u64)]
pub enum ReservedAbbrevId {
EndBlock = 0,
EnterSubBlock,
DefineAbbrev,
UnabbrevRecord,
}
#[derive(Clone, Copy, Debug, PartialEq, TryFromPrimitive)]
#[repr(u64)]
pub enum AbbrevOpEnc {
Fixed = 1,
Vbr,
Array,
Char6,
Blob,
}
#[non_exhaustive]
#[derive(Debug, PartialEq, TryFromPrimitive)]
#[repr(u64)]
pub enum BlockInfoCode {
SetBid = 1,
BlockName,
SetRecordName,
}
#[non_exhaustive]
#[derive(Debug, PartialEq, TryFromPrimitive)]
#[repr(u64)]
pub enum IdentificationCode {
ProducerString = 1,
Epoch,
}
#[non_exhaustive]
#[derive(Debug, PartialEq, IntoPrimitive, TryFromPrimitive)]
#[repr(u64)]
pub enum ModuleCode {
Version = 1,
Triple = 2,
DataLayout = 3,
Asm = 4,
SectionName = 5,
DepLib = 6,
GlobalVar = 7,
Function = 8,
AliasOld = 9,
GcName = 11,
Comdat = 12,
VstOffset = 13,
Alias = 14,
MetadataValuesUnused = 15,
SourceFilename = 16,
Hash = 17,
IFunc = 18,
}
#[derive(Debug, PartialEq, IntoPrimitive, TryFromPrimitive)]
#[repr(u64)]
pub enum TypeCode {
NumEntry = 1,
Void,
Float,
Double,
Label,
Opaque,
Integer,
Pointer,
FunctionOld,
Half,
Array,
Vector,
X86Fp80,
Fp128,
PpcFp128,
Metadata,
X86Mmx,
StructAnon,
StructName,
StructNamed,
Function,
Token,
BFloat,
X86Amx,
OpaquePointer,
}
#[non_exhaustive]
#[derive(Debug, PartialEq, IntoPrimitive, TryFromPrimitive)]
#[repr(u64)]
pub enum StrtabCode {
Blob = 1,
}
#[non_exhaustive]
#[derive(Debug, PartialEq, IntoPrimitive, TryFromPrimitive)]
#[repr(u64)]
pub enum SymtabCode {
Blob = 1,
}
#[derive(Debug, PartialEq, IntoPrimitive, TryFromPrimitive)]
#[repr(u64)]
pub enum AttributeCode {
EntryOld = 1,
Entry,
GroupCodeEntry,
}