auto_LivenessStandard.cpp

Go to the documentation of this file.
00001 
00002 /* LivenessStandard.cpp
00003    NOTE: This file was automatically generated by DFAGen.  It is the
00004          implementation of the class for Liveness analysis results.
00005 */
00006 
00007 
00008 #include "auto_LivenessStandard.hpp"
00009 
00010 namespace OA {
00011   namespace Liveness {
00012 
00013 
00014 LivenessDFSet::iterator LivenessStandard::getLivenessIterator(StmtHandle s) {
00015     LivenessDFSet::iterator retval;
00016 
00017     if(mLiveness[s].ptrEqual(0)) {
00018         mLiveness[s] = new LivenessDFSet();
00019     }
00020 
00021     retval = mLiveness[s]->begin();
00022 
00023     return retval;
00024 }
00025 
00026 
00027 LivenessDFSet::iterator LivenessStandard::getExitLivenessIterator() {
00028     LivenessDFSet::iterator retval;
00029 
00030     retval = mExitLiveness->begin();
00031     return retval;
00032 }
00033 
00034 
00035 void LivenessStandard::output(IRHandlesIRInterface& ir) {
00036 #if 0
00037     sOutBuild->objStart("LivenessStandard");
00038 
00039     sOutBuild->mapStart("mLiveness", "StmtHandle", "OA_ptr<LocSet>");
00040     std::map<StmtHandle,OA_ptr<LocSet> >::iterator mapIter;
00041     for (mapIter = mLiveness.begin(); mapIter != mLiveness.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 = getLivenessIterator(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("mLiveness");
00066     sOutBuild->objEnd("LivenessStandard");
00067 #endif
00068 }
00069 
00070 
00071 void LivenessStandard::dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> ir)
00072 {
00073     std::cout << "======Liveness===="<< std::endl;
00074     LivenessDFSet::iterator iter;
00075 
00076     std::map<StmtHandle, OA_ptr<LivenessDFSet> >::iterator mapIter;
00077 
00078     for (mapIter = mLiveness.begin(); mapIter != mLiveness.end(); mapIter++) {
00079         std::cout<< "\tstmt = " << ir->toString(mapIter->first) << std::endl;
00080         iter = getLivenessIterator(mapIter->first);
00081 
00082         for ( ; iter != mLiveness[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 Liveness namespace
00092 } // end of OA namespace

Generated on Sat Oct 31 05:21:20 2009 for OpenAnalysis by  doxygen 1.6.1