|
|
|
|
@@ -361,7 +361,7 @@ static void fillIterationVars(SgStatement* stmt, SgStatement* outerLoopStmt, vec
|
|
|
|
|
|
|
|
|
|
static void addMessageVarNotAlignedWithLoop(vector<Messages>& messages, string varName, int loopLineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "WARR: cannot remove private var '%s' - its references have different alignment with the loop %d\n",
|
|
|
|
|
__spf_print(1, " WARR: cannot remove private var '%s' - its references have different alignment with the loop %d\n",
|
|
|
|
|
varName.c_str(), loopLineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -374,7 +374,7 @@ static void addMessageVarNotAlignedWithLoop(vector<Messages>& messages, string v
|
|
|
|
|
|
|
|
|
|
static void addMessageRemovePrivateVar(vector<Messages>& messages, string varName, int loopLineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "NOTE: private variable '%s' was removed in loop %d\n", varName.c_str(), loopLineNum);
|
|
|
|
|
__spf_print(1, " NOTE: private variable '%s' was removed in loop %d\n", varName.c_str(), loopLineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
__spf_printToLongBuf(messageE, L"Private variable '%s' was removed", to_wstring(varName).c_str());
|
|
|
|
|
@@ -385,7 +385,7 @@ static void addMessageRemovePrivateVar(vector<Messages>& messages, string varNam
|
|
|
|
|
|
|
|
|
|
static void addMessageRemovePrivateVarPart(vector<Messages>& messages, string varName, int loopLineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "NOTE: private variable '%s' was partially removed in loop %d\n",
|
|
|
|
|
__spf_print(1, " NOTE: private variable '%s' was partially removed in loop %d\n",
|
|
|
|
|
varName.c_str(), loopLineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -398,7 +398,7 @@ static void addMessageRemovePrivateVarPart(vector<Messages>& messages, string va
|
|
|
|
|
|
|
|
|
|
static void addMessageCannotFindRD(vector<Messages>& messages, string varName, int loopLineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "WARR: cannot remove private var '%s' - cannot find reaching definition for the statement in line %d\n",
|
|
|
|
|
__spf_print(1, " WARR: cannot remove private var '%s' - cannot find reaching definition for the statement in line %d\n",
|
|
|
|
|
varName.c_str(), loopLineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -412,7 +412,7 @@ static void addMessageCannotFindRD(vector<Messages>& messages, string varName, i
|
|
|
|
|
static void addMessagePossibleDifferentAssumption(vector<Messages>& messages, string varName,
|
|
|
|
|
string ref1, string ref2, int loopLineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "WARR: removing of private var '%s' was made with assumption that references '%s' and '%s' are different in line %d\n",
|
|
|
|
|
__spf_print(1, " WARR: removing of private var '%s' was made with assumption that references '%s' and '%s' are different in line %d\n",
|
|
|
|
|
varName.c_str(), ref1.c_str(), ref2.c_str(), loopLineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -425,7 +425,7 @@ static void addMessagePossibleDifferentAssumption(vector<Messages>& messages, st
|
|
|
|
|
|
|
|
|
|
static void addMessageRecursiveDependency(vector<Messages>& messages, string varName, int lineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "WARR: cannot remove private var '%s' in line %d - it has recursive dependency\n",
|
|
|
|
|
__spf_print(1, " WARR: cannot remove private var '%s' in line %d - it has recursive dependency\n",
|
|
|
|
|
varName.c_str(), lineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -438,7 +438,7 @@ static void addMessageRecursiveDependency(vector<Messages>& messages, string var
|
|
|
|
|
|
|
|
|
|
static void addMessageDependOnNonInvariant(vector<Messages>& messages, string varName, string dependOn, int lineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "WARR: cannot remove private var '%s' in line %d - it depends on non-invariant var '%s'\n",
|
|
|
|
|
__spf_print(1, " WARR: cannot remove private var '%s' in line %d - it depends on non-invariant var '%s'\n",
|
|
|
|
|
varName.c_str(), lineNum, dependOn.c_str());
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -451,7 +451,7 @@ static void addMessageDependOnNonInvariant(vector<Messages>& messages, string va
|
|
|
|
|
|
|
|
|
|
static void addMessageDoesNotMatchMask(vector<Messages>& messages, string varName, int loopLineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "WARR: cannot remove private var '%s' in loop %d - it doesn't match any fixed dimensions mask\n",
|
|
|
|
|
__spf_print(1, " WARR: cannot remove private var '%s' in loop %d - it doesn't match any fixed dimensions mask\n",
|
|
|
|
|
varName.c_str(), loopLineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -465,7 +465,7 @@ static void addMessageDoesNotMatchMask(vector<Messages>& messages, string varNam
|
|
|
|
|
static void addMessageUsageInFunctionCall(vector<Messages>& messages, string varName,
|
|
|
|
|
string funcName, int loopLineNum, int stmtLineNum)
|
|
|
|
|
{
|
|
|
|
|
__spf_print(1, "WARR: cannot remove private var '%s' in loop %d - it is used in the call of function '%s' in line %d\n",
|
|
|
|
|
__spf_print(1, " WARR: cannot remove private var '%s' in loop %d - it is used in the call of function '%s' in line %d\n",
|
|
|
|
|
varName.c_str(), loopLineNum, funcName.c_str(), stmtLineNum);
|
|
|
|
|
|
|
|
|
|
wstring messageE, messageR;
|
|
|
|
|
@@ -1251,7 +1251,7 @@ static vector<bool> getFixedDimensionsMask(Context* ctx)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string unparsedFixedDimensions = sunparseFixedDimensionsVector(resultMask);
|
|
|
|
|
__spf_print(1, "NOTE: found fixed subsripts mask %s for array '%s' in loop %d\n",
|
|
|
|
|
__spf_print(1, " NOTE: found fixed subsripts mask %s for array '%s' in loop %d\n",
|
|
|
|
|
unparsedFixedDimensions.c_str(), ctx->arraySymbol->identifier(), ctx->loop->lineNum);
|
|
|
|
|
|
|
|
|
|
return resultMask;
|
|
|
|
|
@@ -2190,7 +2190,7 @@ static set<SgSymbol*> getPrivateArraysForLoop(LoopGraph* loop, const UsersDirect
|
|
|
|
|
return privateArrays;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void removePrivateAnalyze(Context *ctx)
|
|
|
|
|
static void removePrivateAnalyze(Context *ctx)
|
|
|
|
|
{
|
|
|
|
|
// inserting assignment to reduced array variables for getting reaching definitions analysis:
|
|
|
|
|
auto reducedArrayVars = getReducedArrayVars(ctx);
|
|
|
|
|
|