This is an automated email from the ASF dual-hosted git repository.

syfeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git


The following commit(s) were added to refs/heads/main by this push:
     new 77c75d1ef3 [TVMScript] Avoid visiting repetition tensor in 
SetCommonPrefix Visitor (#15083)
77c75d1ef3 is described below

commit 77c75d1ef3d4ad096ee79cbe07adbfc514721b63
Author: chenxinli <[email protected]>
AuthorDate: Sat Jun 17 15:41:50 2023 +0800

    [TVMScript] Avoid visiting repetition tensor in SetCommonPrefix Visitor 
(#15083)
    
    * [TVMScript] Avoid visiting repetition tensor in SetCommonPrefix Visitor
    
    * Switch vector to unordered_set
---
 src/script/printer/ir_docsifier.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/script/printer/ir_docsifier.cc 
b/src/script/printer/ir_docsifier.cc
index 62084d17be..7cd27057f4 100644
--- a/src/script/printer/ir_docsifier.cc
+++ b/src/script/printer/ir_docsifier.cc
@@ -95,6 +95,13 @@ void IRDocsifierNode::SetCommonPrefix(const ObjectRef& root,
       if (obj == nullptr) {
         return;
       }
+      if (visited_.count(obj)) {
+        if (is_var(GetRef<ObjectRef>(obj))) {
+          HandleVar(obj);
+        }
+        return;
+      }
+      visited_.insert(obj);
       stack_.push_back(obj);
       if (obj->IsInstance<ArrayNode>()) {
         const ArrayNode* array = static_cast<const ArrayNode*>(obj);
@@ -134,6 +141,7 @@ void IRDocsifierNode::SetCommonPrefix(const ObjectRef& root,
 
     ReflectionVTable* vtable_ = ReflectionVTable::Global();
     std::vector<const Object*> stack_;
+    std::unordered_set<const Object*> visited_;
 
    public:
     runtime::TypedPackedFunc<bool(ObjectRef)> is_var;

Reply via email to