22 namespace SideEffect {
82 std::cout <<
"ManagerSideEffectStandard: proc = " <<
mIR->toString(proc)
93 retSideEffect->emptyLMOD();
94 retSideEffect->emptyMOD();
95 retSideEffect->emptyLDEF();
96 retSideEffect->emptyDEF();
97 retSideEffect->emptyLUSE();
98 retSideEffect->emptyUSE();
99 retSideEffect->emptyLREF();
100 retSideEffect->emptyREF();
104 for ( ; sIt->
isValid(); (*sIt)++) {
107 std::cout <<
"\tstmt = ";
108 mIR->dump(stmt,std::cout);
113 for (; mrIterPtr->isValid(); (*mrIterPtr)++ )
117 std::cout <<
"\tmemref = ";
118 mIR->dump(memref,std::cout);
123 for (; locIterPtr->isValid(); ++(*locIterPtr)) {
127 std::cout <<
"useLoc = ";
139 retSideEffect->insertLREF( useLoc);
140 retSideEffect->insertREF( useLoc);
152 retSideEffect->insertLUSE(useLoc);
153 retSideEffect->insertUSE(useLoc);
160 mrIterPtr =
mIR->getDefMemRefs(stmt);
161 for (; mrIterPtr->isValid(); (*mrIterPtr)++ )
165 std::cout <<
"\tmemref = ";
166 mIR->dump(memref,std::cout);
171 for (; locIterPtr->isValid(); ++(*locIterPtr)) {
174 std::cout <<
"mayDef = ";
183 retSideEffect->insertLMOD(mayDef);
184 retSideEffect->insertMOD(mayDef);
190 for (; locIterPtr->isValid(); ++(*locIterPtr)) {
197 retSideEffect->insertLDEF(mustDef);
198 retSideEffect->insertDEF(mustDef);
206 for ( ; callsiteItPtr->isValid(); ++(*callsiteItPtr)) {
209 std::cout <<
"\tcall = " <<
mIR->toString(call) << std::endl;
215 locIterPtr = inter->getMODIterator(call);
216 for ( ; locIterPtr->isValid(); (*locIterPtr)++) {
217 retSideEffect->insertMOD(locIterPtr->current());
219 std::cout <<
"\tinserting loc = ";
220 locIterPtr->current()->
dump(std::cout,
mIR);
221 std::cout <<
"\tinto MOD" << std::endl;
225 locIterPtr = inter->getDEFIterator(call);
226 for ( ; locIterPtr->isValid(); (*locIterPtr)++) {
227 retSideEffect->insertDEF(locIterPtr->current());
230 locIterPtr = inter->getUSEIterator(call);
231 for ( ; locIterPtr->isValid(); (*locIterPtr)++) {
236 std::cout <<
"SideEffectStandard USE retSideEffect = ";
237 Loc->
dump(std::cout);
238 std::cout << std::endl;
240 retSideEffect->insertUSE(Loc);
245 locIterPtr = inter->getREFIterator(call);
246 for ( ; locIterPtr->isValid(); (*locIterPtr)++) {
247 retSideEffect->insertREF(locIterPtr->current());
253 return retSideEffect;