8 auto& world = type->world();
14 auto arg_cpl = arg->as<
App>();
17 world.ELOG(
"pass_phase expects a pass_list as argument but got {}", arg);
29 auto& world = type->world();
45 auto& world = type->world();
46 auto pass_lists = arg->
projs();
49 for (
auto pass_list_def : pass_lists) {
52 passes.insert(passes.end(), pass_list_defs.begin(), pass_list_defs.end());
55 for (
auto pass : passes) app_list = world.app(app_list, pass);
auto projs(F f) const
Splits this Def via Def::projections into an Array (if A == std::dynamic_extent) or std::array (other...
#define MIM_compile_NORMALIZER_IMPL
const Def * normalize_single_pass_phase(const Def *type, const Def *, const Def *arg)
single_pass_phase pass -> passes_to_phase pass
const Def * normalize_combined_phase(const Def *type, const Def *, const Def *arg)
combined_phase (phase_list phase1 ... phasen) -> phases_to_phase n (phase1, ..., phasen)
const Def * normalize_combine_pass_list(const Def *type, const Def *, const Def *arg)
combine_pass_list K (pass_list pass11 ... pass1N) ... (pass_list passK1 ... passKM) = pass_list pass1...
const Def * normalize_pass_phase(const Def *type, const Def *, const Def *arg)
Vector< const Def * > DefVec
std::pair< const Def *, DefVec > collect_args(const Def *def)
Helper function to cope with the fact that normalizers take all arguments and not only its axm argume...
static constexpr flags_t Base