in src/core/compile.cpp [2351:2376]
InnerFnTypeImproved Compiler::gen_node(LoopTree::TreeRef ref) const {
auto node_ref = lt.node(ref);
const auto &node = lt.ir.node(node_ref);
switch (node.op()) {
case Operation::read:
case Operation::view:
case Operation::write:
return gen_mem_node(ref);
case Operation::add:
case Operation::subtract:
case Operation::multiply:
case Operation::divide:
case Operation::max:
return gen_binary_node(ref);
case Operation::exp:
case Operation::sqrt:
case Operation::reciprocal:
case Operation::negate:
return gen_unary_node(ref);
default:
ASSERT(0) << "Cannot generate node: " << lt.ir.dump(node_ref);
return [=](const std::vector<void *> &memory, int indices[MAX_DEPTH]) {
ASSERT(0);
};
}
}