00001 00002 /* AvailableExpressionsStandard.cpp 00003 NOTE: This file was automatically generated by DFAGen. It is the 00004 implementation of the class for AvailableExpressions analysis results. 00005 */ 00006 00007 00008 #include "auto_AvailableExpressionsStandard.hpp" 00009 00010 namespace OA { 00011 namespace AvailableExpressions { 00012 00013 00014 AvailableExpressionsDFSet::iterator AvailableExpressionsStandard::getAvailableExpressionsIterator(StmtHandle s) { 00015 AvailableExpressionsDFSet::iterator retval; 00016 00017 if(mAvailableExpressions[s].ptrEqual(0)) { 00018 mAvailableExpressions[s] = new AvailableExpressionsDFSet(); 00019 } 00020 00021 retval = mAvailableExpressions[s]->begin(); 00022 00023 return retval; 00024 } 00025 00026 00027 AvailableExpressionsDFSet::iterator AvailableExpressionsStandard::getExitAvailableExpressionsIterator() { 00028 AvailableExpressionsDFSet::iterator retval; 00029 00030 retval = mExitAvailableExpressions->begin(); 00031 return retval; 00032 } 00033 00034 00035 void AvailableExpressionsStandard::output(IRHandlesIRInterface& ir) { 00036 #if 0 00037 sOutBuild->objStart("AvailableExpressionsStandard"); 00038 00039 sOutBuild->mapStart("mAvailableExpressions", "StmtHandle", "OA_ptr<LocSet>"); 00040 std::map<StmtHandle,OA_ptr<LocSet> >::iterator mapIter; 00041 for (mapIter = mAvailableExpressions.begin(); mapIter != mAvailableExpressions.end(); mapIter++) { 00042 StmtHandle s = mapIter->first; 00043 OA_ptr<LocSet> rdset = mapIter->second; 00044 if ( rdset.ptrEqual(0) ) continue; 00045 00046 sOutBuild->mapEntryStart(); 00047 sOutBuild->mapKeyStart(); 00048 sOutBuild->outputIRHandle(s, ir); 00049 sOutBuild->mapKeyEnd(); 00050 sOutBuild->mapValueStart(); 00051 00052 00053 sOutBuild->listStart(); 00054 OA_ptr<".TYPEITER."> setIter; 00055 setIter = getAvailableExpressionsIterator(s); 00056 for ( ; setIter->isValid(); (*setIter)++ ) { 00057 sOutBuild->listItemStart(); { 00058 setIter->current()->output(ir); 00059 } sOutBuild->listItemEnd(); 00060 } 00061 sOutBuild->listEnd(); 00062 sOutBuild->mapValueEnd(); 00063 sOutBuild->mapEntryEnd(); 00064 } 00065 sOutBuild->mapEnd("mAvailableExpressions"); 00066 sOutBuild->objEnd("AvailableExpressionsStandard"); 00067 #endif 00068 } 00069 00070 00071 void AvailableExpressionsStandard::dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> ir) 00072 { 00073 std::cout << "======AvailableExpressions===="<< std::endl; 00074 AvailableExpressionsDFSet::iterator iter; 00075 00076 std::map<StmtHandle, OA_ptr<AvailableExpressionsDFSet> >::iterator mapIter; 00077 00078 for (mapIter = mAvailableExpressions.begin(); mapIter != mAvailableExpressions.end(); mapIter++) { 00079 std::cout<< "\tstmt = " << ir->toString(mapIter->first) << std::endl; 00080 iter = getAvailableExpressionsIterator(mapIter->first); 00081 00082 for ( ; iter != mAvailableExpressions[mapIter->first]->end(); iter++ ) { 00083 std::cout << "\t\t"; 00084 cout << (*iter)->toString(mIR); 00085 std::cout << std::endl; 00086 } 00087 } 00088 } 00089 00090 00091 } // end of AvailableExpressions namespace 00092 } // end of OA namespace
1.7.1