Add SPF directive insertion
This commit is contained in:
@@ -175,7 +175,7 @@ void lookup_for_vars(std::set<std::tuple<SgStatement*, std::string, MODE>>& wher
|
|||||||
{
|
{
|
||||||
auto instr_num = *RD.at(arg).begin();
|
auto instr_num = *RD.at(arg).begin();
|
||||||
auto [func, instr, bblock] = IRByNumber(fullIR, instr_num);
|
auto [func, instr, bblock] = IRByNumber(fullIR, instr_num);
|
||||||
if (cur_func == func && group_by_block[bblock] == NULL || group_by_block[bblock]->getNumber() < instr_num)
|
if (cur_func == func && (group_by_block[bblock] == NULL || group_by_block[bblock]->getNumber() < instr_num))
|
||||||
group_by_block[bblock] = instr;
|
group_by_block[bblock] = instr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -421,17 +421,26 @@ findParameters(ResultSet& foundParameters,
|
|||||||
SgVarRefExp* var = new SgVarRefExp(var_symb);
|
SgVarRefExp* var = new SgVarRefExp(var_symb);
|
||||||
SgValueExp* zero = new SgValueExp(1337);
|
SgValueExp* zero = new SgValueExp(1337);
|
||||||
SgExprListExp* ex = new SgExprListExp();
|
SgExprListExp* ex = new SgExprListExp();
|
||||||
|
auto op = new SgExpression(ASSGN_OP, var, zero);
|
||||||
|
|
||||||
|
std::cout << "len: " << ex->length() << '\n';
|
||||||
ex->setLhs(new SgExpression(ASSGN_OP, var, zero));
|
ex->setLhs(new SgExpression(ASSGN_OP, var, zero));
|
||||||
std::cout << "stmt_before: " << stmt_before->unparse();
|
std::cout << "stmt_before: " << stmt_before->unparse();
|
||||||
SgStatement* toAdd = new SgStatement(ASSIGN_STAT, NULL, NULL, var, zero, NULL);
|
SgExpression* parameter_op = new SgExpression(SPF_PARAMETER_OP, ex);
|
||||||
|
auto ex2 = new SgExprListExp();
|
||||||
|
ex2->setLhs(parameter_op);
|
||||||
|
SgStatement* toAdd = new SgStatement(SPF_ANALYSIS_DIR, NULL, NULL, ex2, NULL, NULL);
|
||||||
toAdd->unparsestdout();
|
toAdd->unparsestdout();
|
||||||
// toAdd->lineNumber() = stmt_before->lineNumber();
|
// toAdd->lineNumber() = stmt_before->lineNumber();
|
||||||
toAdd->setlineNumber(stmt_before->lineNumber());
|
toAdd->setlineNumber(stmt_before->lineNumber());
|
||||||
toAdd->setLocalLineNumber(stmt_before->lineNumber());
|
toAdd->setLocalLineNumber(stmt_before->lineNumber());
|
||||||
toAdd->setFileId(stmt_before->getFileId());
|
toAdd->setFileId(stmt_before->getFileId());
|
||||||
toAdd->setProject(stmt_before->getProject());
|
toAdd->setProject(stmt_before->getProject());
|
||||||
stmt_before->insertStmtAfter(*toAdd, *stmt_before->controlParent());
|
|
||||||
stmt_before->controlParent()->unparsestdout();
|
stmt_before->controlParent()->unparsestdout();
|
||||||
|
if (mode == MODE::AFTER)
|
||||||
|
stmt_before->insertStmtAfter(*toAdd, *stmt_before->controlParent());
|
||||||
|
else
|
||||||
|
stmt_before->insertStmtBefore(*toAdd, *stmt_before->controlParent());
|
||||||
|
|
||||||
foundParameters.insert(make_tuple(stmt_before->fileName(), stmt_before->lineNumber(), var_name));
|
foundParameters.insert(make_tuple(stmt_before->fileName(), stmt_before->lineNumber(), var_name));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2340,7 +2340,6 @@ void runPass(const int curr_regime, const char *proj_name, const char *folderNam
|
|||||||
case INSERT_NO_DISTR_FLAGS_FROM_GUI:
|
case INSERT_NO_DISTR_FLAGS_FROM_GUI:
|
||||||
case PRIVATE_REMOVING:
|
case PRIVATE_REMOVING:
|
||||||
case RENAME_INLCUDES:
|
case RENAME_INLCUDES:
|
||||||
case FIND_PARAMETERS:
|
|
||||||
runAnalysis(*project, curr_regime, true, "", folderName);
|
runAnalysis(*project, curr_regime, true, "", folderName);
|
||||||
break;
|
break;
|
||||||
case INLINE_PROCEDURES:
|
case INLINE_PROCEDURES:
|
||||||
@@ -2375,6 +2374,7 @@ void runPass(const int curr_regime, const char *proj_name, const char *folderNam
|
|||||||
case LOOPS_COMBINER:
|
case LOOPS_COMBINER:
|
||||||
case FIX_COMMON_BLOCKS:
|
case FIX_COMMON_BLOCKS:
|
||||||
case TEST_PASS:
|
case TEST_PASS:
|
||||||
|
case FIND_PARAMETERS:
|
||||||
case SET_IMPLICIT_NONE:
|
case SET_IMPLICIT_NONE:
|
||||||
runAnalysis(*project, curr_regime, false);
|
runAnalysis(*project, curr_regime, false);
|
||||||
case SUBST_EXPR_RD_AND_UNPARSE:
|
case SUBST_EXPR_RD_AND_UNPARSE:
|
||||||
|
|||||||
Reference in New Issue
Block a user