Analysis: infer when a refcount is required and add colors in DebugVisitor
[scilab.git] / scilab / modules / ast / includes / analysis / data / Block.hxx
index a553b97..53f4243 100644 (file)
@@ -14,7 +14,6 @@
 #define __BLOCK_HXX__
 
 #include <iostream>
-#include <map>
 #include <vector>
 
 #include "allexp.hxx"
@@ -114,7 +113,7 @@ public:
 
     virtual void addLocal(const symbol::Symbol & sym, const TIType & type, const bool isIntIterator);
     virtual int getTmpId(const TIType & type, const bool isIntIterator);
-    virtual void releaseTmp(const int id);
+    virtual void releaseTmp(const int id, ast::Exp * exp);
     virtual Info & addRead(const symbol::Symbol & sym, ast::Exp * exp);
     virtual Info & addWrite(const symbol::Symbol & sym, const TIType & Rtype, ast::Exp * exp);
     virtual Info & addDefine(const symbol::Symbol & sym, const TIType & Rtype, const bool isAnInt, ast::Exp * exp);
@@ -131,8 +130,14 @@ public:
     virtual void addGlobal(const symbol::Symbol & sym);
     virtual GVN & getGVN();
     virtual void clone(const symbol::Symbol & sym, ast::Exp * exp);
+    virtual void needRefCount(const tools::SymbolSet & set);
 
     friend std::wostream & operator<<(std::wostream & out, const Block & block);
+
+private:
+
+    void needRefCount(const tools::SymbolSet & set1, const tools::SymbolSet & set2);
+
 };
 
 } // namespace analysis