OSDN Git Service

Remove RemoveTree.
authorNicolas Capens <capn@google.com>
Thu, 20 Nov 2014 22:38:26 +0000 (17:38 -0500)
committerNicolas Capens <nicolascapens@google.com>
Thu, 20 Nov 2014 22:46:29 +0000 (22:46 +0000)
All AST nodes are allocated in a memory pool and get deleted by the pool.
RemoveTree doesn't do anything because delete is overloaded for the nodes.

BUG=18469191

Change-Id: I1dc23e894c441db2e2eb1f6e9b8f0c11b2e52b3c
Reviewed-on: https://swiftshader-review.googlesource.com/1452
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
16 files changed:
src/OpenGL/compiler/Compiler.cpp
src/OpenGL/compiler/Compiler.vcxproj
src/OpenGL/compiler/Compiler.vcxproj.filters
src/OpenGL/compiler/Intermediate.cpp
src/OpenGL/compiler/RemoveTree.cpp [deleted file]
src/OpenGL/compiler/RemoveTree.h [deleted file]
src/OpenGL/compiler/localintermediate.h
src/OpenGL/libGLESv2/libGLESv2.cbp
src/OpenGL/libGLESv2/libGLESv2.cpp
src/Radiance/compiler/Compiler.cpp
src/Radiance/compiler/Compiler.vcxproj
src/Radiance/compiler/Compiler.vcxproj.filters
src/Radiance/compiler/Intermediate.cpp
src/Radiance/compiler/RemoveTree.cpp [deleted file]
src/Radiance/compiler/RemoveTree.h [deleted file]
src/Radiance/compiler/localintermediate.h

index 28455cf..26e685b 100644 (file)
@@ -121,8 +121,6 @@ bool TCompiler::compile(const char* const shaderStrings[],
             success = translate(root);
     }
 
-    // Cleanup memory.
-    intermediate.remove(parseContext.treeRoot);
     // Ensure symbol table is returned to the built-in level,
     // throwing away all but the built-ins.
     while (!symbolTable.atBuiltInLevel())
index ca91d73..8e0780a 100644 (file)
     <ClCompile Include="parseConst.cpp" />\r
     <ClCompile Include="ParseHelper.cpp" />\r
     <ClCompile Include="PoolAlloc.cpp" />\r
-    <ClCompile Include="RemoveTree.cpp" />\r
     <ClCompile Include="ShaderLang.cpp" />\r
     <ClCompile Include="SymbolTable.cpp" />\r
     <ClCompile Include="TranslatorASM.cpp" />\r
     <ClInclude Include="ParseHelper.h" />\r
     <ClInclude Include="PoolAlloc.h" />\r
     <ClInclude Include="Pragma.h" />\r
-    <ClInclude Include="RemoveTree.h" />\r
     <ClInclude Include="ShHandle.h" />\r
     <ClInclude Include="SymbolTable.h" />\r
     <ClInclude Include="TranslatorASM.h" />\r
index d4118f0..09f3041 100644 (file)
@@ -50,9 +50,6 @@
     <ClCompile Include="PoolAlloc.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="RemoveTree.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="ShaderLang.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
     <ClInclude Include="PoolAlloc.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="RemoveTree.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
     <ClInclude Include="ShHandle.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
index 6910deb..0676e23 100644 (file)
@@ -13,7 +13,6 @@
 #include <algorithm>
 
 #include "compiler/localintermediate.h"
-#include "compiler/RemoveTree.h"
 #include "compiler/SymbolTable.h"
 
 bool CompareStructure(const TType& leftNodeType, ConstantUnion* rightUnionArray, ConstantUnion* leftUnionArray);
@@ -552,15 +551,6 @@ bool TIntermediate::postProcess(TIntermNode* root)
     return true;
 }
 
-//
-// This deletes the tree.
-//
-void TIntermediate::remove(TIntermNode* root)
-{
-    if (root)
-        RemoveAllTreeNodes(root);
-}
-
 ////////////////////////////////////////////////////////////////
 //
 // Member functions of the nodes used for building the tree.
diff --git a/src/OpenGL/compiler/RemoveTree.cpp b/src/OpenGL/compiler/RemoveTree.cpp
deleted file mode 100644 (file)
index a4b8c1e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-#include "compiler/intermediate.h"
-#include "compiler/RemoveTree.h"
-
-//
-// Code to recursively delete the intermediate tree.
-//
-
-class RemoveTree : public TIntermTraverser
-{
-public:
-       RemoveTree() : TIntermTraverser(false, false, true)
-       {
-       }
-
-protected:
-       void visitSymbol(TIntermSymbol*);
-       void visitConstantUnion(TIntermConstantUnion*);
-       bool visitBinary(Visit visit, TIntermBinary*);
-       bool visitUnary(Visit visit, TIntermUnary*);
-       bool visitSelection(Visit visit, TIntermSelection*);
-       bool visitAggregate(Visit visit, TIntermAggregate*);
-};
-
-void RemoveTree::visitSymbol(TIntermSymbol* node)
-{
-       delete node;
-}
-
-bool RemoveTree::visitBinary(Visit visit, TIntermBinary* node)
-{
-       delete node;
-
-       return true;
-}
-
-bool RemoveTree::visitUnary(Visit visit, TIntermUnary* node)
-{
-    delete node;
-
-       return true;
-}
-
-bool RemoveTree::visitAggregate(Visit visit, TIntermAggregate* node)
-{
-       delete node;
-
-       return true;
-}
-
-bool RemoveTree::visitSelection(Visit visit, TIntermSelection* node)
-{
-       delete node;
-
-       return true;
-}
-
-void RemoveTree::visitConstantUnion(TIntermConstantUnion* node)
-{
-       delete node;
-}
-
-//
-// Entry point.
-//
-void RemoveAllTreeNodes(TIntermNode* root)
-{
-    RemoveTree it;
-
-    root->traverse(&it);
-}
-
diff --git a/src/OpenGL/compiler/RemoveTree.h b/src/OpenGL/compiler/RemoveTree.h
deleted file mode 100644 (file)
index 97a8216..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-void RemoveAllTreeNodes(TIntermNode*);
index 805744f..1a1c7dc 100644 (file)
@@ -43,7 +43,6 @@ public:
     TIntermBranch* addBranch(TOperator, TIntermTyped*, TSourceLoc);
     TIntermTyped* addSwizzle(TVectorFields&, TSourceLoc);
     bool postProcess(TIntermNode*);
-    void remove(TIntermNode*);
     void outputTree(TIntermNode*);
     
 protected:
index 4ada915..a569eb0 100644 (file)
                <Unit filename="../compiler/PoolAlloc.cpp" />
                <Unit filename="../compiler/PoolAlloc.h" />
                <Unit filename="../compiler/Pragma.h" />
-               <Unit filename="../compiler/RemoveTree.cpp" />
-               <Unit filename="../compiler/RemoveTree.h" />
                <Unit filename="../compiler/ShHandle.h" />
                <Unit filename="../compiler/ShaderLang.cpp" />
                <Unit filename="../compiler/SymbolTable.cpp" />
index bafd99c..076af75 100644 (file)
@@ -347,13 +347,13 @@ void GL_APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer)
 \r
         if(context)\r
         {\r
-                       if (renderbuffer != 0 && !context->getRenderbuffer(renderbuffer))
-                       {
+                       if(renderbuffer != 0 && !context->getRenderbuffer(renderbuffer))\r
+                       {\r
                                // [OpenGL ES 2.0.25] Section 4.4.3 page 112\r
                                // [OpenGL ES 3.0.2] Section 4.4.2 page 201\r
                                // 'renderbuffer' must be either zero or the name of an existing renderbuffer object of\r
                                // type 'renderbuffertarget', otherwise an INVALID_OPERATION error is generated.\r
-                               return error(GL_INVALID_OPERATION);
+                               return error(GL_INVALID_OPERATION);\r
                        }\r
 \r
             context->bindRenderbuffer(renderbuffer);\r
index 28455cf..26e685b 100644 (file)
@@ -121,8 +121,6 @@ bool TCompiler::compile(const char* const shaderStrings[],
             success = translate(root);
     }
 
-    // Cleanup memory.
-    intermediate.remove(parseContext.treeRoot);
     // Ensure symbol table is returned to the built-in level,
     // throwing away all but the built-ins.
     while (!symbolTable.atBuiltInLevel())
index 83e4454..e0f31c2 100644 (file)
     <ClCompile Include="parseConst.cpp" />\r
     <ClCompile Include="ParseHelper.cpp" />\r
     <ClCompile Include="PoolAlloc.cpp" />\r
-    <ClCompile Include="RemoveTree.cpp" />\r
     <ClCompile Include="ShaderLang.cpp" />\r
     <ClCompile Include="SymbolTable.cpp" />\r
     <ClCompile Include="TranslatorASM.cpp" />\r
     <ClInclude Include="ParseHelper.h" />\r
     <ClInclude Include="PoolAlloc.h" />\r
     <ClInclude Include="Pragma.h" />\r
-    <ClInclude Include="RemoveTree.h" />\r
     <ClInclude Include="ShHandle.h" />\r
     <ClInclude Include="SymbolTable.h" />\r
     <ClInclude Include="TranslatorASM.h" />\r
index d4118f0..09f3041 100644 (file)
@@ -50,9 +50,6 @@
     <ClCompile Include="PoolAlloc.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="RemoveTree.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="ShaderLang.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
     <ClInclude Include="PoolAlloc.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="RemoveTree.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
     <ClInclude Include="ShHandle.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
index 6910deb..0676e23 100644 (file)
@@ -13,7 +13,6 @@
 #include <algorithm>
 
 #include "compiler/localintermediate.h"
-#include "compiler/RemoveTree.h"
 #include "compiler/SymbolTable.h"
 
 bool CompareStructure(const TType& leftNodeType, ConstantUnion* rightUnionArray, ConstantUnion* leftUnionArray);
@@ -552,15 +551,6 @@ bool TIntermediate::postProcess(TIntermNode* root)
     return true;
 }
 
-//
-// This deletes the tree.
-//
-void TIntermediate::remove(TIntermNode* root)
-{
-    if (root)
-        RemoveAllTreeNodes(root);
-}
-
 ////////////////////////////////////////////////////////////////
 //
 // Member functions of the nodes used for building the tree.
diff --git a/src/Radiance/compiler/RemoveTree.cpp b/src/Radiance/compiler/RemoveTree.cpp
deleted file mode 100644 (file)
index a4b8c1e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-#include "compiler/intermediate.h"
-#include "compiler/RemoveTree.h"
-
-//
-// Code to recursively delete the intermediate tree.
-//
-
-class RemoveTree : public TIntermTraverser
-{
-public:
-       RemoveTree() : TIntermTraverser(false, false, true)
-       {
-       }
-
-protected:
-       void visitSymbol(TIntermSymbol*);
-       void visitConstantUnion(TIntermConstantUnion*);
-       bool visitBinary(Visit visit, TIntermBinary*);
-       bool visitUnary(Visit visit, TIntermUnary*);
-       bool visitSelection(Visit visit, TIntermSelection*);
-       bool visitAggregate(Visit visit, TIntermAggregate*);
-};
-
-void RemoveTree::visitSymbol(TIntermSymbol* node)
-{
-       delete node;
-}
-
-bool RemoveTree::visitBinary(Visit visit, TIntermBinary* node)
-{
-       delete node;
-
-       return true;
-}
-
-bool RemoveTree::visitUnary(Visit visit, TIntermUnary* node)
-{
-    delete node;
-
-       return true;
-}
-
-bool RemoveTree::visitAggregate(Visit visit, TIntermAggregate* node)
-{
-       delete node;
-
-       return true;
-}
-
-bool RemoveTree::visitSelection(Visit visit, TIntermSelection* node)
-{
-       delete node;
-
-       return true;
-}
-
-void RemoveTree::visitConstantUnion(TIntermConstantUnion* node)
-{
-       delete node;
-}
-
-//
-// Entry point.
-//
-void RemoveAllTreeNodes(TIntermNode* root)
-{
-    RemoveTree it;
-
-    root->traverse(&it);
-}
-
diff --git a/src/Radiance/compiler/RemoveTree.h b/src/Radiance/compiler/RemoveTree.h
deleted file mode 100644 (file)
index 97a8216..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-void RemoveAllTreeNodes(TIntermNode*);
index 805744f..1a1c7dc 100644 (file)
@@ -43,7 +43,6 @@ public:
     TIntermBranch* addBranch(TOperator, TIntermTyped*, TSourceLoc);
     TIntermTyped* addSwizzle(TVectorFields&, TSourceLoc);
     bool postProcess(TIntermNode*);
-    void remove(TIntermNode*);
     void outputTree(TIntermNode*);
     
 protected: