Make JIT's fgWalk*Rec functions static
authorMike Danes <onemihaid@hotmail.com>
Sun, 3 Jan 2016 16:52:57 +0000 (18:52 +0200)
committerMike Danes <onemihaid@hotmail.com>
Sun, 3 Jan 2016 16:52:57 +0000 (18:52 +0200)
The compiler object is already available via  fgWalkData and is only needed in debug builds to call gtDispTree. Given that these are recursive functions and have many callsites it seems useful to minimize the number of function parameters.

src/jit/compiler.h
src/jit/gentree.cpp

index fdedaaae8f018aff01353028766c950e84964faa..1c2a54e5b01ed01fe6d1644dbb9dc042ee248df7 100644 (file)
@@ -4363,12 +4363,12 @@ public:
     };
 
     template<bool computeStack>
-    fgWalkResult        fgWalkTreePreRec  (GenTreePtr  *pTree, fgWalkData *fgWalkPre);
+    static fgWalkResult fgWalkTreePreRec  (GenTreePtr  *pTree, fgWalkData *fgWalkPre);
 
     // general purpose tree-walker that is capable of doing pre- and post- order
     // callbacks at the same time
     template<bool doPreOrder, bool doPostOrder>
-    fgWalkResult        fgWalkTreeRec  (GenTreePtr  *pTree, fgWalkData *fgWalkPre);
+    static fgWalkResult fgWalkTreeRec  (GenTreePtr  *pTree, fgWalkData *fgWalkPre);
 
     fgWalkResult        fgWalkTreePre     (GenTreePtr  *pTree,
                                            fgWalkPreFn *visitor,
@@ -4387,7 +4387,7 @@ public:
     //----- Postorder
 
     template<bool computeStack>
-    fgWalkResult        fgWalkTreePostRec (GenTreePtr  *pTree, fgWalkData *fgWalkPre);
+    static fgWalkResult fgWalkTreePostRec (GenTreePtr  *pTree, fgWalkData *fgWalkPre);
 
     fgWalkResult        fgWalkTreePost    (GenTreePtr   *pTree,
                                            fgWalkPostFn  *visitor,
index 6122e831abfec369b8ce2b834ca2dcfe703dc0fb..cb0b17475257976ef0c85ed4cc7709b2e22b5603 100644 (file)
@@ -404,6 +404,7 @@ template Compiler::fgWalkResult Compiler::fgWalkTreeRec<false,true> (GenTreePtr
 //                    a stack of ancestor nodes which can be viewed in the callback.
 //
 template<bool computeStack>
+// static
 Compiler::fgWalkResult      Compiler::fgWalkTreePreRec(GenTreePtr *pTree, fgWalkData *fgWalkData)
 {
     fgWalkResult    result        = WALK_CONTINUE;
@@ -608,7 +609,7 @@ Compiler::fgWalkResult      Compiler::fgWalkTreePreRec(GenTreePtr *pTree, fgWalk
 
         default:
 #ifdef  DEBUG
-            gtDispTree(tree);
+            fgWalkData->compiler->gtDispTree(tree);
 #endif
             assert(!"unexpected operator");
         }
@@ -660,6 +661,7 @@ void                    Compiler::fgWalkAllTreesPre(fgWalkPreFn * visitor,
 //                     a stack of ancestor nodes which can be viewed in the callback.
 //
 template<bool computeStack> 
+// static
 Compiler::fgWalkResult Compiler::fgWalkTreePostRec(GenTreePtr *pTree, fgWalkData *fgWalkData)
 {
     fgWalkResult    result;
@@ -821,7 +823,7 @@ Compiler::fgWalkResult Compiler::fgWalkTreePostRec(GenTreePtr *pTree, fgWalkData
 
     default:
 #ifdef  DEBUG
-        gtDispTree(tree);
+        fgWalkData->compiler->gtDispTree(tree);
 #endif
         assert(!"unexpected operator");
     }
@@ -843,6 +845,7 @@ DONE:
 // walk tree doing callbacks in both pre- and post- order (both optional)
 
 template<bool doPreOrder, bool doPostOrder>
+// static
 Compiler::fgWalkResult      
 Compiler::fgWalkTreeRec(GenTreePtr *pTree, fgWalkData *fgWalkData)
 {
@@ -1019,7 +1022,7 @@ Compiler::fgWalkTreeRec(GenTreePtr *pTree, fgWalkData *fgWalkData)
 
     default:
 #ifdef  DEBUG
-        gtDispTree(tree);
+        fgWalkData->compiler->gtDispTree(tree);
 #endif
         assert(!"unexpected operator");
     }