MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / apply_op

Method apply_op

imperative/src/impl/transformations/trace.cpp:715–740  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

713}
714
715ValueRefList CompiledTransformation::apply_op(
716 const ApplyOp& apply_op, Span<ValueRef> inputs) {
717 auto& item = next_instruction();
718 trace_assert(inputs.size() == item.inputs.size(), "input size mismatch");
719 trace_assert(apply_op.op().is_same(*item.op), "operator mismatch");
720 ValueRefList outputs(item.outputs.size());
721 if (!m_imperative) {
722 for (size_t i = 0; i < inputs.size(); ++i) {
723 trace_input(item.inputs[i], inputs[i]);
724 }
725 for (size_t i = 0; i < item.outputs.size(); ++i) {
726 outputs[i] = trace_output(item.outputs[i], {});
727 }
728 } else {
729 SmallVector<ValueRef> input_values;
730 for (size_t i = 0; i < inputs.size(); ++i) {
731 input_values.push_back(trace_input(item.inputs[i], inputs[i]));
732 }
733 auto&& output_values = imperative::apply(apply_op, input_values);
734 mgb_assert(output_values.size() == outputs.size());
735 for (size_t i = 0; i < item.outputs.size(); ++i) {
736 outputs[i] = trace_output(item.outputs[i], output_values[i]);
737 }
738 }
739 return outputs;
740}
741
742ValueRefList CompiledTransformation::apply_get_attr(
743 const GetAttr& get_attr, Span<ValueRef> inputs) {

Callers

nothing calls this directly

Calls 5

applyFunction · 0.50
sizeMethod · 0.45
is_sameMethod · 0.45
opMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected