namespace
{
-std::string symbol_lookup(const SymbolTable &tbl, const loco::Node *node)
-{
- // This helper is now redundant but left to reduce code diffs
- // TODO Remove this helper.
- return tbl.lookup(node);
-};
-
-} // namespace
-
-namespace
-{
-
// TODO Move this into loco
loco::TensorShape tensor_shape(const loco::NodeMixin<loco::NodeTrait::TensorShape> *m)
{
for (uint32_t n = 0; n < node->arity(); ++n)
{
- res.arg(std::string{"arg"} + std::to_string(n), symbol_lookup(tbl, node->arg(n)));
+ res.arg(std::string{"arg"} + std::to_string(n), tbl.lookup(node->arg(n)));
}
res.state(NodeDesc::State::PartiallyKnown);
// DO NOTHING
}
+private:
+ std::string nodename(const loco::Node *node) const { return _symtbl->lookup(node); }
+
public:
// TODO Build a node description for each canonical node
NodeDesc visit(const loco::Push *node) final
NodeDesc res{opname(node)};
res.arg("index", node->indexed() ? pp::fmt(node->index()) : pp::fmt('?'));
- res.arg("from", symbol_lookup(*_symtbl, node->from()));
+ res.arg("from", nodename(node->from()));
res.state(NodeDesc::State::Complete);
return res;
{
NodeDesc res{opname(node)};
- res.arg("input", symbol_lookup(*_symtbl, node->input()));
+ res.arg("input", nodename(node->input()));
res.state(NodeDesc::State::Complete);
return res;
{
NodeDesc res{opname(node)};
- res.arg("lhs", symbol_lookup(*_symtbl, node->lhs()));
- res.arg("rhs", symbol_lookup(*_symtbl, node->rhs()));
+ res.arg("lhs", nodename(node->lhs()));
+ res.arg("rhs", nodename(node->rhs()));
res.arg("axis", pp::fmt(node->axis()));
res.state(NodeDesc::State::Complete);
{
NodeDesc res{opname(node)};
- res.arg("lhs", symbol_lookup(*_symtbl, node->lhs()));
- res.arg("rhs", symbol_lookup(*_symtbl, node->rhs()));
+ res.arg("lhs", nodename(node->lhs()));
+ res.arg("rhs", nodename(node->rhs()));
res.state(NodeDesc::State::Complete);
return res;
{
NodeDesc res{opname(node)};
- res.arg("lhs", symbol_lookup(*_symtbl, node->lhs()));
- res.arg("rhs", symbol_lookup(*_symtbl, node->rhs()));
+ res.arg("lhs", nodename(node->lhs()));
+ res.arg("rhs", nodename(node->rhs()));
res.state(NodeDesc::State::Complete);
return res;
{
NodeDesc res{opname(node)};
- res.arg("input", symbol_lookup(*_symtbl, node->input()));
+ res.arg("input", nodename(node->input()));
res.arg("shape", pp::fmt(pretty(tensor_shape(node))));
res.state(NodeDesc::State::Complete);
{
NodeDesc res{opname(node)};
- res.arg("input", symbol_lookup(*_symtbl, node->input()));
+ res.arg("input", nodename(node->input()));
res.state(NodeDesc::State::Complete);
return res;
{
NodeDesc res{opname(node)};
- res.arg("input", symbol_lookup(*_symtbl, node->input()));
+ res.arg("input", nodename(node->input()));
res.arg("axis", pp::fmt(node->axis()));
res.state(NodeDesc::State::Complete);