return os.str();
}
// expression
- void VisitExpr_(const VarNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const LoadNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const LetNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const CallNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const VarNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const LoadNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const LetNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const CallNode* op, std::ostream& os) override; // NOLINT(*)
void VisitExpr_(const ProducerLoadNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const AddNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const SubNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const MulNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const DivNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const ModNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const FloorDivNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const FloorModNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const MinNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const MaxNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const EQNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const NENode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const LTNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const LENode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const GTNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const GENode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const AndNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const OrNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const CastNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const NotNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const SelectNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const RampNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const BroadcastNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const IntImmNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const FloatImmNode* op, std::ostream& os) override; // NOLINT(*)
- void VisitExpr_(const StringImmNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const AddNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const SubNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const MulNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const DivNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const ModNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const FloorDivNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const FloorModNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const MinNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const MaxNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const EQNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const NENode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const LTNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const LENode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const GTNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const GENode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const AndNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const OrNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const CastNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const NotNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const SelectNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const RampNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const BroadcastNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const IntImmNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const FloatImmNode* op, std::ostream& os) override; // NOLINT(*)
+ void VisitExpr_(const StringImmNode* op, std::ostream& os) override; // NOLINT(*)
// statment
void VisitStmt_(const LetStmtNode* op) override;
void VisitStmt_(const StoreNode* op) override;
--- /dev/null
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+
+# Test frontends that only need CPU resources
+set -e
+set -u
+
+source tests/scripts/setup-pytest-env.sh
+# to avoid openblas threading error
+export TVM_BIND_THREADS=0
+export OMP_NUM_THREADS=1
+
+find . -type f -path "*.pyc" | xargs rm -f
+
+# Rebuild cython
+make cython3
+
+echo "Running relay TFLite frontend test..."
+python3 -m pytest tests/python/frontend/tflite
+
+echo "Running relay Keras frontend test..."
+python3 -m pytest tests/python/frontend/keras