addede new pass, improved IR
This commit is contained in:
@@ -824,7 +824,7 @@ static SgStatement* processStatement(SgStatement* st, vector<IR_Block*>& blocks,
|
||||
}
|
||||
}
|
||||
|
||||
blocks.push_back(new IR_Block(new Instruction(CFG_OP::EMPTY, st)));
|
||||
blocks.push_back(new IR_Block(new Instruction(CFG_OP::EMPTY, (ifSt->falseBody()) ? ifSt->falseBody() : st->lastNodeOfStmt())));
|
||||
blocks[jump_if]->getInstruction()->setArg2(new SAPFOR::Argument(CFG_ARG_TYPE::INSTR, to_string(blocks.back()->getNumber())));
|
||||
|
||||
processLabel(st, firstBlock, blocks, labels);
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
#include "Transformations/function_purifying.h"
|
||||
#include "Transformations/private_removing.h"
|
||||
#include "Transformations/fix_common_blocks.h"
|
||||
#include "Transformations/convert_to_c.h"
|
||||
|
||||
#include "RenameSymbols/rename_symbols.h"
|
||||
#include "ProjectParameters/projectParameters.h"
|
||||
@@ -1158,6 +1159,8 @@ static bool runAnalysis(SgProject &project, const int curr_regime, const bool ne
|
||||
}
|
||||
else if (curr_regime == GET_MIN_MAX_BLOCK_DIST)
|
||||
getMaxMinBlockDistribution(file, min_max_block);
|
||||
else if (curr_regime == CONVERT_TO_C)
|
||||
covertToC(file);
|
||||
else if (curr_regime == TEST_PASS)
|
||||
{
|
||||
//test pass
|
||||
|
||||
@@ -171,6 +171,7 @@ enum passes {
|
||||
REMOVE_OMP_DIRS_TRANSFORM,
|
||||
REMOVE_COMMENTS,
|
||||
GET_MIN_MAX_BLOCK_DIST,
|
||||
CONVERT_TO_C,
|
||||
|
||||
TEST_PASS,
|
||||
EMPTY_PASS
|
||||
@@ -347,6 +348,7 @@ static void setPassValues()
|
||||
passNames[REMOVE_OMP_DIRS_TRANSFORM] = "REMOVE_OMP_DIRS_TRANSFORM";
|
||||
passNames[REMOVE_COMMENTS] = "REMOVE_COMMENTS";
|
||||
passNames[GET_MIN_MAX_BLOCK_DIST] = "GET_MIN_MAX_BLOCK_DIST";
|
||||
passNames[CONVERT_TO_C] = "CONVERT_TO_C";
|
||||
|
||||
passNames[TEST_PASS] = "TEST_PASS";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#include "../Utils/leak_detector.h"
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
#include <cstring>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
#include <set>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <tuple>
|
||||
|
||||
#include "dvm.h"
|
||||
#include "convert_to_c.h"
|
||||
|
||||
void covertToC(SgFile* file)
|
||||
{
|
||||
printf("%s\n", file->firstStatement()->unparse(C_LANG));
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
void covertToC(SgFile* file);
|
||||
@@ -1,3 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define VERSION_SPF "2253"
|
||||
#define VERSION_SPF "2254"
|
||||
|
||||
Reference in New Issue
Block a user