From a4ec840d3f41bfde6e2fc8fcc04e7e6f24e9d388 Mon Sep 17 00:00:00 2001 From: AntonMilienkov Date: Thu, 2 May 2024 13:17:11 +0300 Subject: [PATCH] no comms --- .../_src/Transformations/checkpoints.cpp | 215 ------------------ 1 file changed, 215 deletions(-) diff --git a/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp b/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp index 8ee6a6a..79f99c5 100644 --- a/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp +++ b/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp @@ -1223,34 +1223,7 @@ static void processFunctionCallChain(SgStatement* func, const vector& if (funcFrom->isMain) { insertInitNamesOfFiles(numOfFiles, additional, files, journal, lastDecl, false); - /* - SgAssignStmt* loadOne = new SgAssignStmt(*new SgVarRefExp(loadS[0]), *new SgValueExp(1)); - - vector insertToifLoadOk; - SgIfStmt* ifLoadOk = new SgIfStmt(*iostat == *new SgValueExp(0)); - - SgInputOutputStmt* read = new SgInputOutputStmt(READ_STAT, *makeExprList({ &frmt, &unit }, false), *fileIdx); - insertToifLoadOk.push_back(read); - insertToifLoadOk.push_back(new SgIOControlStmt(CLOSE_STAT, unit)); - insertToifLoadOk.push_back(createOpen(iostat, files, fileIdx, unit)); - - read = new SgInputOutputStmt(READ_STAT, *makeExprList({ &frmt, &unit }, false), *new SgVarRefExp(loadS[3])); - SgIfStmt* ifLoadOk1 = new SgIfStmt(*iostat == *new SgValueExp(0), *read); - SgAssignStmt* loadZero = new SgAssignStmt(*new SgVarRefExp(loadS[0]), *new SgValueExp(0)); - ifLoadOk1->insertStmtAfter(*loadZero, *ifLoadOk1); - - insertToifLoadOk.push_back(ifLoadOk1); - - firstExec->insertStmtBefore(*gotoBlock, *hedrFrom); - - for (int z = insertToGotoBlock.size() - 1; z >= 0; --z) - gotoBlock->insertStmtAfter(*insertToGotoBlock[z], *gotoBlock); - - for (int z = insertToifLoadOk.size() - 1; z >= 0; --z) - ifLoadOk->insertStmtAfter(*insertToifLoadOk[z], *ifLoadOk); - */ - //processedFrom[funcFrom] = ifLoadOk1->lexNext(); } SgStatement* gotoBlock = new SgStatement(IF_NODE); @@ -1260,195 +1233,8 @@ static void processFunctionCallChain(SgStatement* func, const vector& // insert gotoBlock and save to module processAllCalls(firstExec, funcTo->funcName, funcFrom->funcName, gotoBlock, localVarNoParams, procLabelSymb); - - - - /* - std::cout << funcTo->funcName << std::endl; - std::cout << "-------------------------------------" << std::endl; - for (int k = 0; k < funcTo->callsTo.size(); k++) - { - std::cout << funcTo->callsTo[k] << std::endl; - } - std::cout << "=====================================" << std::endl; - - std::cout << "-------------------------------------" << std::endl; - for (auto elem :funcTo->callsFrom) - { - std::cout << elem << std::endl; - } - std::cout << "=====================================" << std::endl; - std::cout << funcFrom->funcName << std::endl; - std::cout << "-------------------------------------" << std::endl; - for (int k = 0; k < funcFrom->callsTo.size(); k++) - { - std::cout << funcFrom->callsTo[k] << std::endl; - } - std::cout << "=====================================" << std::endl; - - std::cout << "-------------------------------------" << std::endl; - for (auto elem : funcFrom->callsFrom) - { - std::cout << elem << std::endl; - } - std::cout << "=====================================" << std::endl; - */ - /* - SgStatement* gotoBlock = new SgStatement(IF_NODE); - vector insertToGotoBlock; - - gotoBlock->addComment("!GOTO LOAD BLOCK \n"); - gotoBlock->setExpression(0, *new SgVarRefExp(loadS[0]) == *new SgValueExp(0)); - - if (funcFrom->isMain) - { - SgAssignStmt* loadOne = new SgAssignStmt(*new SgVarRefExp(loadS[0]), *new SgValueExp(1)); - insertToGotoBlock.push_back(loadOne); - insertToGotoBlock.push_back(createOpenJ_old(iostat, journal, unit)); - - vector insertToifLoadOk; - SgIfStmt* ifLoadOk = new SgIfStmt(*iostat == *new SgValueExp(0)); - insertToGotoBlock.push_back(ifLoadOk); - - SgInputOutputStmt* read = new SgInputOutputStmt(READ_STAT, *makeExprList({ &frmt, &unit }, false), *fileIdx); - insertToifLoadOk.push_back(read); - insertToifLoadOk.push_back(new SgIOControlStmt(CLOSE_STAT, unit)); - insertToifLoadOk.push_back(createOpen(iostat, files, fileIdx, unit)); - - read = new SgInputOutputStmt(READ_STAT, *makeExprList({ &frmt, &unit }, false), *new SgVarRefExp(loadS[3])); - SgIfStmt* ifLoadOk1 = new SgIfStmt(*iostat == *new SgValueExp(0), *read); - SgAssignStmt* loadZero = new SgAssignStmt(*new SgVarRefExp(loadS[0]), *new SgValueExp(0)); - ifLoadOk1->insertStmtAfter(*loadZero, *ifLoadOk1); - - insertToifLoadOk.push_back(ifLoadOk1); - - firstExec->insertStmtBefore(*gotoBlock, *hedrFrom); - - for (int z = insertToGotoBlock.size() - 1; z >= 0; --z) - gotoBlock->insertStmtAfter(*insertToGotoBlock[z], *gotoBlock); - - for (int z = insertToifLoadOk.size() - 1; z >= 0; --z) - ifLoadOk->insertStmtAfter(*insertToifLoadOk[z], *ifLoadOk); - - processedFrom[funcFrom] = ifLoadOk1->lexNext(); - } - else - { - SgStatement* read = new SgInputOutputStmt(READ_STAT, *makeExprList({ &frmt, &unit }, false), *new SgVarRefExp(loadS[3])); - gotoBlock->insertStmtAfter(*read, *gotoBlock); - processedFrom[funcFrom] = gotoBlock->lexNext(); - firstExec->insertStmtBefore(*gotoBlock, *hedrFrom); - }*/ } - /* - for (auto& callInfo : funcFrom->callsFromDetailed) - { - auto& call = callInfo.pointerDetailCallsFrom; - SgStatement* st = NULL; - - if (isSgFuncHedrStmt(hedrTo) && call.second == FUNC_CALL) - { - SgFunctionCallExp* callExp = (SgFunctionCallExp*)call.first; - if (!strcmp(callExp->funName()->identifier(), funcTo->funcName.c_str())) - { - st = SgStatement::getStatmentByExpression(callExp); - SgSymbol* buf = new SgSymbol(VARIABLE_NAME, ("SPF_CALL_" + funcTo->funcName + "_" + to_string(callNum)).c_str(), callExp->type(), funcFrom->funcPointer->GetOriginal()); - SgExpression* bufRef = new SgVarRefExp(buf); - SgStatement* bufAssign = new SgAssignStmt(*bufRef, *callExp); - st->insertStmtBefore(*bufAssign, *(st->controlParent())); - replaceExprByExprInSt(st, callExp, bufRef); - makeDeclaration(hedrFrom, { buf }); - - for (int i = 0; i < callExp->numberOfArgs(); i++) - { - if (funcTo->funcParams.isArgInOut(i) || funcTo->funcParams.isArgOut(i)) - { - SgSymbol* s, * sl; - SgStatement* lst = hedrTo->lastNodeOfStmt(); - sl = lst->lexNext() ? lst->lexNext()->symbol() : NULL; - for (s = hedrTo->symbol(); s != sl && s; s = s->next()) - { - if (s->scope() == hedrTo && !strcmp(s->identifier(), funcTo->funcParams.identificators[i].c_str())) - { - break; - } - } - - SgSymbol* argBuf = new SgSymbol(VARIABLE_NAME, ("SPF_ARG_" + funcTo->funcName + "_" + to_string(callNum) + "_" + to_string(i)).c_str(), s->type(), funcFrom->funcPointer->GetOriginal()); - SgExpression* argBufRef = new SgVarRefExp(argBuf); - SgStatement* argBufAssign = new SgAssignStmt(*argBufRef, *(callExp->arg(i))); - bufAssign->insertStmtBefore(*argBufAssign, *(st->controlParent())); - SgStatement* decl = makeDeclaration(hedrFrom, { argBuf }); - - for (int i = 0; i < 3; i++) - { - SgExpression* e; - if (e = decl->expr(i)) - decl->setExpression(i, CalculateInteger(ReplaceConstant(e))); - } - - } - } - st = bufAssign; - callNum++; - } - } - else if (isSgProcHedrStmt(hedrTo) && call.second == PROC_STAT) - { - //TODO: need to revise!! - /*SgCallStmt* callSt = (SgCallStmt*)call.first; - if (!strcmp(callSt->name()->identifier(), funcTo->funcName.c_str())) { - st = callSt; - for (int i = 0; i < callSt->numberOfArgs(); i++) - { - if (funcTo->funcParams.isArgInOut(i) || funcTo->funcParams.isArgOut(i)) - { - SgSymbol* buf1 = new SgSymbol(VARIABLE_NAME, "TEMP1", callSt->arg(i)->type(), hedrFrom); - SgExpression* buf1Ref = new SgVarRefExp(buf1); - SgStatement* buf1Assign = new SgAssignStmt(*buf1Ref, *(callSt->arg(i))); - st->insertStmtBefore(*buf1Assign, *(st->controlParent())); - } - } - } - } - - if (st) - { - SgStatement* loadBlock = new SgStatement(IF_NODE); - SgStatement* loadBlockLast = NULL; - SgStatement* storeBlock = new SgStatement(IF_NODE); - - st->insertStmtBefore(*loadBlock, *st->controlParent()); - st->insertStmtAfter(*storeBlock, *st->controlParent()); - - loadBlock->addComment("! LOAD CHECKPOINT\n"); - const int labNum = getNextFreeLabel(); - auto loadblockLab = new SgLabel(labNum); - loadBlock->setLabel(*loadblockLab); - - SgIfStmt* gotoIf = new SgIfStmt(*new SgVarRefExp(loadS[3]) == *new SgValueExp(labNum), *new SgGotoStmt(*loadblockLab)); - processedFrom[funcFrom]->insertStmtAfter(*gotoIf, *(processedFrom[funcFrom]->controlParent())); - - storeBlock->addComment("! STORE CHECKPOINT\n"); - - //TODO: this block incorrect!! - storeBlock->setExpression(0, *new SgVarRefExp(everyS[0]) >= *new SgValueExp(every)); - - vector insertToLoadS; - - loadBlock->setExpression(0, *new SgVarRefExp(loadS[0]) == *new SgValueExp(0)); - loadBlock->addComment("! LOAD DATA FROM CHECKPOINT\n"); - - //READ DATA - if (local.size()) - { - auto dataRead = new SgInputOutputStmt(READ_STAT, unit, *makeExprList(local)); - loadBlock->insertStmtAfter(*dataRead, *loadBlock); - } - } - } - */ } @@ -1569,7 +1355,6 @@ void createCheckpoints(SgFile* file, const map& commonBloc findLocalData(func, firstExec, local, localParams, addedToList, allFuncInfo); const char* funcName = func->symbol()->identifier(); - //int lenFuncName = strlen(funcName); SgStatement* proc_moduleF = NULL; const string proc_cpModule = "spf_module_" + string(funcName);