1 Commits

Author SHA1 Message Date
0d61856cef private_removing: update for LU test 2024-03-14 03:31:49 +03:00

View File

@@ -321,17 +321,16 @@ static FuncInfo* getCurrectFunc(SgStatement* stmt, const map<string, vector<Func
* Block of creating messages functions: * * Block of creating messages functions: *
* ************************************* */ * ************************************* */
// unused: static void addMessageRemoveLoop(vector<Messages>& messages, int loopLineNum)
//static void addMessageRemoveLoop(vector<Messages>& messages, int loopLineNum) {
//{ __spf_print(1, "NOTE: loop on line %d was removed\n", loopLineNum);
// __spf_print(1, "NOTE: loop on line %d was removed\n", loopLineNum);
// wstring messageE, messageR;
// wstring messageE, messageR; __spf_printToLongBuf(messageE, L"Loop on line %d was removed", loopLineNum);
// __spf_printToLongBuf(messageE, L"Loop on line %d was removed", loopLineNum); __spf_printToLongBuf(messageR, R198, loopLineNum);
// __spf_printToLongBuf(messageR, R198, loopLineNum);
// messages.push_back(Messages(typeMessage::NOTE, loopLineNum, messageR, messageE, 2024));
// messages.push_back(Messages(typeMessage::NOTE, loopLineNum, messageR, messageE, 2024)); }
//}
static void addMessageRemovePrivateVar(vector<Messages>& messages, string varName, int loopLineNum) static void addMessageRemovePrivateVar(vector<Messages>& messages, string varName, int loopLineNum)
{ {
@@ -698,31 +697,30 @@ static void removeExcessiveDefs(const PrivateToRemove& var)
st->deleteStmt(); st->deleteStmt();
} }
// TODO: unused - can be removed?
// removeEmptyLoops removes loops with empty body and create messages // removeEmptyLoops removes loops with empty body and create messages
//static void removeEmptyLoops(LoopGraph* loop, vector<Messages>& messages) static void removeEmptyLoops(LoopGraph* loop, vector<Messages>& messages)
//{ {
// vector<LoopGraph*> loopsToDelete; vector<LoopGraph*> loopsToDelete;
// vector<LoopGraph*> newChildrenVector; vector<LoopGraph*> newChildrenVector;
// for (auto childLoop : loop->children) for (auto childLoop : loop->children)
// { {
// SgStatement* loopStmt = childLoop->loop->GetOriginal(); SgStatement* loopStmt = childLoop->loop->GetOriginal();
// if (loopStmt->lastNodeOfStmt() == loopStmt->lexNext()) if (loopStmt->lastNodeOfStmt() == loopStmt->lexNext())
// loopsToDelete.push_back(childLoop); loopsToDelete.push_back(childLoop);
// else else
// newChildrenVector.push_back(childLoop); newChildrenVector.push_back(childLoop);
// } }
//
// for (auto loopToDelete : loopsToDelete) for (auto loopToDelete : loopsToDelete)
// { {
// addMessageRemoveLoop(messages, loopToDelete->lineNum); addMessageRemoveLoop(messages, loopToDelete->lineNum);
// loopToDelete->loop->extractStmt(); loopToDelete->loop->extractStmt();
// } }
//
// loop->children.swap(newChildrenVector); loop->children.swap(newChildrenVector);
// for (auto childLoop : loop->children) for (auto childLoop : loop->children)
// removeEmptyLoops(childLoop, messages); removeEmptyLoops(childLoop, messages);
//} }
// removeVarFromPrivateAttributes removes var from SPF ANALYSIS PRIVATE attributes of loop // removeVarFromPrivateAttributes removes var from SPF ANALYSIS PRIVATE attributes of loop
static void removeVarFromPrivateAttributes(SgSymbol* var, LoopGraph* loop) static void removeVarFromPrivateAttributes(SgSymbol* var, LoopGraph* loop)
@@ -846,14 +844,15 @@ void removePrivates(SgFile* file, vector<Messages>& messages,
//removeDeadCodeFromLoop(varToRemove.loop); // TODO: problem with reverting substitution //removeDeadCodeFromLoop(varToRemove.loop); // TODO: problem with reverting substitution
removeExcessiveDefs(varToRemove); removeExcessiveDefs(varToRemove);
//removeEmptyLoops(varToRemove.loop, messages); // removing is made by REMOVE_DEAD_CODE pass removeEmptyLoops(varToRemove.loop, messages); // removing is made by REMOVE_DEAD_CODE pass
SgForStmt* loopStmt = (SgForStmt*)varToRemove.loop->loop->GetOriginal(); SgForStmt* loopStmt = (SgForStmt*)varToRemove.loop->loop->GetOriginal();
FuncInfo* currFunc = getCurrectFunc(loopStmt, allFuncInfo); FuncInfo* currFunc = getCurrectFunc(loopStmt, allFuncInfo);
if (currFunc == nullptr) if (currFunc == nullptr)
printInternalError(convertFileName(__FILE__).c_str(), __LINE__); printInternalError(convertFileName(__FILE__).c_str(), __LINE__);
removeDeadCode(currFunc->funcPointer, allFuncInfo, commonBlocks); // TODO: problem with removing dead code before reverting substitution
//removeDeadCode(currFunc->funcPointer, allFuncInfo, commonBlocks);
vector<SgArrayRefExp*> varRefs = getDirectArrayRefs(loopStmt, varToRemove.varSymbol); vector<SgArrayRefExp*> varRefs = getDirectArrayRefs(loopStmt, varToRemove.varSymbol);
int loopLineNum = varToRemove.loop->lineNum; int loopLineNum = varToRemove.loop->lineNum;