AliasMap_output.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #include "AliasMap.hpp"
00009
00010 namespace OA {
00011 namespace Alias {
00012
00013 void AliasMap::output(OA::IRHandlesIRInterface& ir)
00014 {
00015 sOutBuild->objStart("AliasMap");
00016
00017 sOutBuild->fieldStart("mProcHandle");
00018 sOutBuild->outputIRHandle(mProcHandle, ir);
00019 sOutBuild->fieldEnd("mProcHandle");
00020 sOutBuild->field("mNumSets", OA::int2string(mNumSets));
00021 sOutBuild->field("mStartId", OA::int2string(mStartId));
00022 sOutBuild->mapStart("mIdToLocSetMap", "int", "OA::OA_ptr<LocSet> ");
00023 std::map<int, OA::OA_ptr<LocSet> >::iterator reg_mIdToLocSetMap_iterator;
00024 for(reg_mIdToLocSetMap_iterator = mIdToLocSetMap.begin();
00025 reg_mIdToLocSetMap_iterator != mIdToLocSetMap.end();
00026 reg_mIdToLocSetMap_iterator++)
00027 {
00028 const int &first = reg_mIdToLocSetMap_iterator->first;
00029 OA::OA_ptr<LocSet> &second = reg_mIdToLocSetMap_iterator->second;
00030 if ( second.ptrEqual(0) ) continue;
00031 sOutBuild->mapEntryStart();
00032 sOutBuild->mapKey(OA::int2string(first));
00033 sOutBuild->mapValueStart();
00034
00035 sOutBuild->listStart();
00036 LocSetIterator locIter(second);
00037 for (; locIter.isValid(); ++locIter) {
00038 OA_ptr<Location> loc = locIter.current();
00039 sOutBuild->listItemStart();
00040 loc->output(ir);
00041 sOutBuild->listItemEnd();
00042 }
00043 sOutBuild->listEnd();
00044
00045 sOutBuild->mapValueEnd();
00046 sOutBuild->mapEntryEnd();
00047 }
00048 sOutBuild->mapEnd("mIdToLocSetMap");
00049
00050 sOutBuild->mapStart("mIdToSetStatusMap", "int", "AliasResultType");
00051 std::map<int, AliasResultType>::iterator reg_mIdToSetStatusMap_iterator;
00052 for(reg_mIdToSetStatusMap_iterator = mIdToSetStatusMap.begin();
00053 reg_mIdToSetStatusMap_iterator != mIdToSetStatusMap.end();
00054 reg_mIdToSetStatusMap_iterator++)
00055 {
00056 const int &first = reg_mIdToSetStatusMap_iterator->first;
00057 AliasResultType &second = reg_mIdToSetStatusMap_iterator->second;
00058 sOutBuild->mapEntryStart();
00059 sOutBuild->mapKey(OA::int2string(first));
00060 sOutBuild->mapValueStart();
00061 sOutBuild->mapValue(OA::int2string(second));
00062 sOutBuild->mapValueEnd();
00063 sOutBuild->mapEntryEnd();
00064 }
00065 sOutBuild->mapEnd("mIdToSetStatusMap");
00066
00067 sOutBuild->mapStart("mIdToMemRefSetMap", "int", "MemRefSet");
00068 std::map<int, MemRefSet>::iterator reg_mIdToMemRefSetMap_iterator;
00069 for(reg_mIdToMemRefSetMap_iterator = mIdToMemRefSetMap.begin();
00070 reg_mIdToMemRefSetMap_iterator != mIdToMemRefSetMap.end();
00071 reg_mIdToMemRefSetMap_iterator++)
00072 {
00073 const int &first = reg_mIdToMemRefSetMap_iterator->first;
00074 MemRefSet &second = reg_mIdToMemRefSetMap_iterator->second;
00075 sOutBuild->mapEntryStart();
00076 sOutBuild->mapKey(OA::int2string(first));
00077 sOutBuild->mapValueStart();
00078 sOutBuild->listStart();
00079 for (MemRefSet::iterator it = second.begin(); it != second.end(); ++it) {
00080 MemRefHandle memRefHandle = *it;
00081 sOutBuild->listItemStart();
00082 sOutBuild->outputIRHandle(memRefHandle, ir);
00083 sOutBuild->listItemEnd();
00084 }
00085 sOutBuild->listEnd();
00086 sOutBuild->mapValueEnd();
00087 sOutBuild->mapEntryEnd();
00088 }
00089 sOutBuild->mapEnd("mIdToMemRefSetMap");
00090
00091 sOutBuild->mapStart("mIdToMRESetMap", "int", "MemRefExprSet");
00092 std::map<int, MemRefExprSet>::iterator reg_mIdToMRESetMap_iterator;
00093 for(reg_mIdToMRESetMap_iterator = mIdToMRESetMap.begin();
00094 reg_mIdToMRESetMap_iterator != mIdToMRESetMap.end();
00095 reg_mIdToMRESetMap_iterator++)
00096 {
00097 const int &first = reg_mIdToMRESetMap_iterator->first;
00098 MemRefExprSet &second = reg_mIdToMRESetMap_iterator->second;
00099 sOutBuild->mapEntryStart();
00100 sOutBuild->mapKey(OA::int2string(first));
00101 sOutBuild->mapValueStart();
00102 sOutBuild->listStart();
00103 for (MemRefExprSet::iterator it = second.begin(); it != second.end(); ++it) {
00104 OA_ptr<MemRefExpr> mre = *it;
00105 sOutBuild->listItemStart();
00106 mre->output(ir);
00107 sOutBuild->listItemEnd();
00108 }
00109 sOutBuild->listEnd();
00110 sOutBuild->mapValueEnd();
00111 sOutBuild->mapEntryEnd();
00112 }
00113 sOutBuild->mapEnd("mIdToMRESetMap");
00114
00115 #if 0
00116
00117 sOutBuild->mapStart("mMemRefToIdMap", "MemRefHandle", "int");
00118 std::map<MemRefHandle, int>::iterator reg_mMemRefToIdMap_iterator;
00119 for(reg_mMemRefToIdMap_iterator = mMemRefToIdMap.begin();
00120 reg_mMemRefToIdMap_iterator != mMemRefToIdMap.end();
00121 reg_mMemRefToIdMap_iterator++)
00122 {
00123 const MemRefHandle &first = reg_mMemRefToIdMap_iterator->first;
00124 int &second = reg_mMemRefToIdMap_iterator->second;
00125 sOutBuild->mapEntryStart();
00126 sOutBuild->mapKeyStart();
00127 sOutBuild->outputIRHandle(first, ir);
00128 sOutBuild->mapKeyEnd();
00129 sOutBuild->mapValue(OA::int2string(second));
00130 sOutBuild->mapEntryEnd();
00131 }
00132 sOutBuild->mapEnd("mMemRefToIdMap");
00133 #endif
00134
00135 #if 0
00136
00137 sOutBuild->mapStart("mMREToIdMap", "OA::OA_ptr<MemRefExpr> ", "int");
00138 std::map<OA::OA_ptr<MemRefExpr> , int>::iterator reg_mMREToIdMap_iterator;
00139 for(reg_mMREToIdMap_iterator = mMREToIdMap.begin();
00140 reg_mMREToIdMap_iterator != mMREToIdMap.end();
00141 reg_mMREToIdMap_iterator++)
00142 {
00143 const OA::OA_ptr<MemRefExpr> &first = reg_mMREToIdMap_iterator->first;
00144 int &second = reg_mMREToIdMap_iterator->second;
00145 sOutBuild->mapEntryStart();
00146 sOutBuild->mapKeyStart();
00147 first->output(ir);
00148 sOutBuild->mapKeyEnd();
00149 sOutBuild->mapValue(OA::int2string(second));
00150 sOutBuild->mapEntryEnd();
00151 }
00152 sOutBuild->mapEnd("mMREToIdMap");
00153 #endif
00154
00155 #if 0
00156
00157 sOutBuild->mapStart("mLocToIdMap", "OA::OA_ptr<Location> ", "int");
00158 std::map<OA::OA_ptr<Location> , int>::iterator reg_mLocToIdMap_iterator;
00159 for(reg_mLocToIdMap_iterator = mLocToIdMap.begin();
00160 reg_mLocToIdMap_iterator != mLocToIdMap.end();
00161 reg_mLocToIdMap_iterator++)
00162 {
00163 const OA::OA_ptr<Location> &first = reg_mLocToIdMap_iterator->first;
00164 int &second = reg_mLocToIdMap_iterator->second;
00165 sOutBuild->mapEntryStart();
00166 sOutBuild->mapKeyStart();
00167 first->output(ir);
00168 sOutBuild->mapKeyEnd();
00169 sOutBuild->mapValue(OA::int2string(second));
00170 sOutBuild->mapEntryEnd();
00171 }
00172 sOutBuild->mapEnd("mLocToIdMap");
00173 #endif
00174 sOutBuild->objEnd("AliasMap");
00175 }
00176
00177 }
00178 }