11 auto compilation_functions = {
12 world.
sym(
"_compile"),
13 world.
sym(
"_default_compile"),
14 world.
sym(
"_core_compile"),
15 world.
sym(
"_fallback_compile")
19 const Def* compilation =
nullptr;
20 for (
auto compilation_function : compilation_functions) {
21 if (
auto compilation_ = world.
external(compilation_function)) {
22 if (!compilation) compilation = compilation_;
29 if (
auto lam = def->isa<
Lam>(); lam && lam->num_doms() == 0) {
31 if (lam->codom()->sym().view() ==
"%compile.Phase") {
32 if (!compilation) compilation = lam;
38 if (!compilation) world.ELOG(
"no compilation function found");
39 world.DLOG(
"compilation using {} : {}", compilation, compilation->
type());
42 auto pipe_prog = compilation->as<
Lam>()->body();
44 auto axm = callee->as<
Axm>();
46 world.DLOG(
"Building pipeline");
47 if (
auto phase = world.
driver().
phase(axm->flags()))
48 (*phase)(pipe, pipe_prog);
50 world.ELOG(
"axm not found in passes");