1 Commits

Author SHA1 Message Date
fc98972bc2 fix algorythm 2026-02-21 02:34:57 +03:00
10 changed files with 767 additions and 577 deletions

View File

@@ -17,7 +17,7 @@ using std::fstream;
static long int getNextTag() static long int getNextTag()
{ {
static long int INTERVAL_TAG = 0; static long int INTERVAL_TAG = 0;
return -(INTERVAL_TAG++); return INTERVAL_TAG++;
} }
//Debug funcs //Debug funcs
@@ -413,7 +413,7 @@ static void findIntervals(SpfInterval *interval, map<int, int> &labelsRef, map<i
inter->lineFile = std::make_pair(currentSt->lineNumber(), currentSt->fileName()); inter->lineFile = std::make_pair(currentSt->lineNumber(), currentSt->fileName());
inter->parent = interval; inter->parent = interval;
inter->exit_levels.push_back(0); inter->exit_levels.push_back(0);
inter->tag = currentSt->lineNumber();//getNextTag(); inter->tag = getNextTag();
interval->nested.push_back(inter); interval->nested.push_back(inter);
findIntervals(inter, labelsRef, gotoStmts, currentSt); findIntervals(inter, labelsRef, gotoStmts, currentSt);

View File

@@ -9,6 +9,8 @@
#include "range_structures.h" #include "range_structures.h"
#include "region.h" #include "region.h"
#include "..\Transformations\ExpressionSubstitution\expr_transform.h"
#include "SgUtils.h" #include "SgUtils.h"
using namespace std; using namespace std;

View File

@@ -1,4 +1,4 @@
#include "Utils/leak_detector.h" #include "Utils/leak_detector.h"
#pragma comment(linker, "/STACK:536870912") // 512 МБ #pragma comment(linker, "/STACK:536870912") // 512 МБ
@@ -943,7 +943,7 @@ static bool runAnalysis(SgProject &project, const int curr_regime, const bool ne
} }
} }
else if (curr_regime == MOVE_OPERATORS) else if (curr_regime == MOVE_OPERATORS)
moveOperators(file, fullIR, countOfTransform); moveOperators(file, loopGraph, fullIR, countOfTransform);
else if (curr_regime == PRIVATE_REMOVING_ANALYSIS) else if (curr_regime == PRIVATE_REMOVING_ANALYSIS)
{ {
auto itFound = loopGraph.find(file->filename()); auto itFound = loopGraph.find(file->filename());

View File

@@ -1089,8 +1089,6 @@ static int clean(const string& funcName, SgStatement* funcSt, const map<string,
} }
SgGotoStmt* gotoSt = new SgGotoStmt(*contLab); SgGotoStmt* gotoSt = new SgGotoStmt(*contLab);
if (st->label())
gotoSt->setLabel(*st->label());
st->insertStmtBefore(*gotoSt, *st->controlParent()); st->insertStmtBefore(*gotoSt, *st->controlParent());
toDelete.push_back(st); toDelete.push_back(st);

File diff suppressed because it is too large Load Diff

View File

@@ -3,4 +3,4 @@
#include "../../GraphLoop/graph_loops.h" #include "../../GraphLoop/graph_loops.h"
#include "../../CFGraph/CFGraph.h" #include "../../CFGraph/CFGraph.h"
void moveOperators(SgFile* file, const std::map<FuncInfo*, std::vector<SAPFOR::BasicBlock*>>& FullIR, int& countOfTransform); void moveOperators(SgFile *file, std::map<std::string, std::vector<LoopGraph*>>& loopGraph, const std::map<FuncInfo*, std::vector<SAPFOR::BasicBlock*>>& FullIR, int& countOfTransform);

View File

@@ -577,20 +577,10 @@ string removeIncludeStatsAndUnparse(SgFile *file, const char *fileName, const ch
for (auto& incl : inclByPos.second) for (auto& incl : inclByPos.second)
inlcude += (renameIncludes ? renameInclude(incl) : incl); inlcude += (renameIncludes ? renameInclude(incl) : incl);
//check inserted operators if (st->comments())
SgStatement* toInsert = st; st->setComments((inlcude + st->comments()).c_str());
do {
auto lexPrev = toInsert->lexPrev();
if (lexPrev && lexPrev->variant() > 0 && lexPrev->lineNumber() < 0)
toInsert = lexPrev;
else
break;
} while (true);
if (toInsert->comments())
toInsert->setComments((inlcude + toInsert->comments()).c_str());
else else
toInsert->addComment(inlcude.c_str()); st->addComment(inlcude.c_str());
} }
} }

View File

@@ -1,3 +1,3 @@
#pragma once #pragma once
#define VERSION_SPF "2472" #define VERSION_SPF "2465"