MemRefsVisitor.cpp

Go to the documentation of this file.
00001 
00015 #include <OpenAnalysis/ExprTree/MemRefsVisitor.hpp>
00016 
00017 namespace OA {
00018 
00019 //static bool debug = false;
00020 
00023 void MemRefsVisitor::visitNode(ExprTree::Node&)
00024 {
00025     assert(0);
00026 }
00027 
00028 void MemRefsVisitor::visitOpNode(ExprTree::OpNode& n)
00029 {
00030   // visit each child
00031   OA_ptr<ExprTree::Node> nodePtr;
00032   ExprTree::ChildNodesIterator cNodesIter(n);
00033   for ( ; cNodesIter.isValid(); ++cNodesIter) {
00034       nodePtr = cNodesIter.current();
00035 
00036       nodePtr->acceptVisitor(*this);
00037   } 
00038 }
00039 
00040 void MemRefsVisitor::visitCallNode(ExprTree::CallNode& n)
00041 {
00042   // not doing anything because callsite parameter expressions
00043   // will be visited separately
00044 
00045 }
00046 
00047 void MemRefsVisitor::visitMemRefNode(ExprTree::MemRefNode& n)
00048 {
00049     mHasMemRef = true;
00050     mMemRefSet->insert(n.getHandle());
00051 }
00052 
00053 void MemRefsVisitor::visitConstSymNode(ExprTree::ConstSymNode& n)
00054 {
00055   // constants aren't memrefs (BK: Is this right??)
00056 }
00057 
00058 void MemRefsVisitor::visitConstValNode(ExprTree::ConstValNode& n)
00059 {
00060   // constants aren't memrefs
00061 }
00062 
00063 
00064 } // end of OA namespace
00065