156#define THORIN_refly_NORMALIZER_IMPL \
157 void register_normalizers(Normalizers& normalizers) {\
158 normalizers[flags_t(Annex::Base<reify>)] = &normalize_reify; \
159 normalizers[flags_t(Annex::Base<reflect>)] = &normalize_reflect; \
160 normalizers[flags_t(Annex::Base<gid>)] = &normalize_gid; \
161 normalizers[flags_t(dbg::tmp)] = &normalize_dbg<dbg::tmp>; \
162 normalizers[flags_t(dbg::perm)] = &normalize_dbg<dbg::perm>; \
163 normalizers[flags_t(Annex::Base<refine>)] = &normalize_refine; \
Helper class to retrieve Infer::arg if present.
Ref normalize_gid(Ref, Ref, Ref arg)
Ref normalize_refine(Ref type, Ref callee, Ref arg)
void register_normalizers(Normalizers &normalizers)
static constexpr plugin_t Plugin_Id
Ref normalize_dbg(Ref type, Ref callee, Ref arg)
Ref normalize_reify(Ref, Ref, Ref arg)
Ref normalize_reflect(Ref, Ref, Ref arg)
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr flags_t Base
#define THORIN_ENUM_OPERATORS(E)
Use this to declare all kind of bit and comparison operators for an enum E.