1 type BlockId = number; // unsigned int
2 type CounterName = string; // uncertain of format
3 type DisasmString = string; // uncertain of format
4 type ExtraString = string; // uncertain of format
5 type FileName = string; //uncertain of format
6 type FuncName = string; // uncertain of format
7 type FuncString = string; // uncertain of format
8 type GuardConstraintString = string; // uncertain of format
9 type InstrId = number; // uint32_t
10 type LineNum = number; // int
11 type Offset = number; // int
12 type Opcode = string; // Some sort of enum
13 type OptIndex = number; // int
14 type ProfCount = number; // uint64_t
15 type ProfileString = string; // uncertain of format
16 type SSATmpId = number; // uint32_t
18 type TransId = number; // int32_t
19 type TypeString = string; // uncertain of format
20 type UnitString = string; // uncertain of format
24 translation: TransContext;
25 opcodeStats: OpcodeStats;
26 inliningDecisions: [InliningDecision];
33 next: LabelInfo | null;
58 marker: {raw: FuncString} | null; // still not 100% sure what this does
59 phiPseudoInstrs: [PhiPseudoInstr];
61 typeParam: TypeString | null;
62 guard: GuardConstraintString | "unused" | null;
63 extra: ExtraString | null;
65 taken: LabelInfo | null;
66 tc_ranges: [TC_Range] | null // will be null specifically when asmInfo is null
68 srcs: {counterName: CounterName} | [Src];
70 profileData: [ProfileData];
81 type PhiPseudoInstr = {
99 data: {profileType: ProfileType};
100 // the rest of the keys in "data" will depend on the value of "profileType"
128 type TransContext = {
134 sourceFile: FileName;
144 resumeMode: ResumeMode;
148 type ResumeMode = "" | "ra" | "rg";
150 type OpcodeStats = {[x in Opcode] : number;};
152 type InliningDecision = {