5#ifndef RUNTIME_VM_COMPILER_AOT_DISPATCH_TABLE_GENERATOR_H_
6#define RUNTIME_VM_COMPILER_AOT_DISPATCH_TABLE_GENERATOR_H_
8#if defined(DART_PRECOMPILED_RUNTIME)
9#error "AOT runtime should not use compiler sources (including header files)"
19class PrecompilerTracer;
67 static constexpr int32_t kInvalidSelectorId =
69 static constexpr int32_t kInvalidSelectorOffset = -1;
71 int32_t SelectorId(
const Function& interface_target)
const;
73 void AddSelector(int32_t call_count,
bool called_on_null,
bool torn_off);
74 void SetSelectorProperties(int32_t sid,
75 bool on_null_interface,
76 bool requires_args_descriptor);
78 int32_t NumIds()
const {
return selectors_.length(); }
103 void ReadTableSelectorInfo();
104 void NumberSelectors();
105 void SetupSelectorRows();
106 void ComputeSelectorOffsets();
110 int32_t num_selectors_;
111 int32_t num_classes_;
void Initialize(ClassTable *table)
DispatchTableGenerator(Zone *zone)
SelectorMap * selector_map()
ArrayPtr BuildCodeArray()
const TableSelector * GetSelector(int32_t sid) const
friend class dart::PrecompilerTracer
const TableSelector * GetSelector(const Function &interface_target) const
bool requires_args_descriptor
TableSelector(int32_t _id, int32_t _call_count, int32_t _offset, bool _called_on_null, bool _torn_off)