|
- /**
- * Copyright 2020 Huawei Technologies Co., Ltd
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- #ifndef GE_GRAPH_PASSES_IF_OP_LABEL_PASS_H_
- #define GE_GRAPH_PASSES_IF_OP_LABEL_PASS_H_
-
- #include "graph/node.h"
- #include "graph/label/label_maker.h"
- /*******************************************************************************
- +------------+
- | Node |
- +------------+
- | Node |
- +------------+
- | If |
- +------------+
- +-----------+
- | Node | +------------+
- +-----------+ /|SwitchByIdx |
- | Node | A +------------+
- +-----------+ / \|LabelSet(1) |
- | If | | +------------+
- +-----------+ | |StreamActive|
- | Node | | +------------+
- +-----------+ | | t |
- | Node | | +------------+
- +-----------+ | | h |
- | Node | | +------------+
- +-----------+ | | e |
- | Node | | +------------+
- +-----------+ | | n |
- | +------------+
- ====> | | LabelGoto |\
- V +------------+ \
- +-----------+ +-----------+ \ \
- | t | | e | \ +------------+ |
- +-----------+ +-----------+ \|LabelSet(0) | |
- | h | | l | +------------+ |
- +-----------+ +-----------+ |StreamActive| |
- | e | | s | +------------+ |
- +-----------+ +-----------+ | e | |
- | n | | e | +------------+ |
- +-----------+ +-----------+ | l | |
- +------------+ |
- | s | |
- +------------+ V
- | e | /
- +------------+ /
- | LabelSet |/
- +------------+
-
- +------------+
- | Node |
- +------------+
- | Node |
- +------------+
- | Node |
- +------------+
- *******************************************************************************/
- namespace ge {
- class IfOpLabelMaker : public LabelMaker {
- public:
- IfOpLabelMaker(const ComputeGraphPtr &graph, const NodePtr &owner) : LabelMaker(graph, owner) {}
-
- ~IfOpLabelMaker() override {}
-
- virtual Status Run(uint32_t &label_index);
- };
- } // namespace ge
- #endif // GE_GRAPH_PASSES_IF_OP_LABEL_PASS_H_
|