| 822 | } |
| 823 | |
| 824 | void StaticInferManagerImpl::register_value_infer( |
| 825 | Tag dest, const ValueInferDesc& desc) { |
| 826 | mgb_assert(dest->owner_opr() == m_register_allowed_opr); |
| 827 | for (auto&& i : desc.deps) |
| 828 | mgb_assert(dest->owner_graph() == i.dest->owner_graph()); |
| 829 | |
| 830 | auto&& t = get_tag_trait_container(dest); |
| 831 | mgb_assert(t.shape, "shape desc not inserted before value desc"); |
| 832 | mgb_assert(!t.value, "value infer already registered"); |
| 833 | t.value = m_mem_pool_value_trait.alloc(dest); |
| 834 | t.value->init(desc, this); |
| 835 | } |
| 836 | |
| 837 | InferType StaticInferManagerImpl::get_infer_type(Tag dest) { |
| 838 | return get_tag_trait_container(dest).get_infer_type(); |