81#define MIM_buffer_NORMALIZER_IMPL \
82 void register_normalizers(Normalizers& normalizers) {\
83 normalizers[flags_t(Annex::Base<Buf>)] = &normalize_Buf; \
84 normalizers[flags_t(Annex::Base<read>)] = &normalize_read; \
85 normalizers[flags_t(Annex::Base<write>)] = &normalize_write; \
86 normalizers[flags_t(Annex::Base<shape>)] = &normalize_shape; \
const Def * normalize_write(const Def *, const Def *, const Def *)
const Def * normalize_shape(const Def *type, const Def *, const Def *arg)
shape buf i ↦ the i-th size, read off the buffer's type.
static constexpr plugin_t Plugin_Id
const Def * normalize_read(const Def *type, const Def *, const Def *arg)
read (constant v) idx ↦ v.
void register_normalizers(Normalizers &normalizers)
const Def * normalize_Buf(const Def *, const Def *callee, const Def *arg)
Buf (r, s, T) with literal size-1 axes in s ↦ Buf (r', s', T) with those axes dropped.
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr size_t Num
Number of Axm::subtags.
static constexpr flags_t Base