граф циклов в джсоне
This commit is contained in:
1
.idea/workspace.xml
generated
1
.idea/workspace.xml
generated
@@ -7,7 +7,6 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" afterDir="false" />
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import _VisualDVM.Passes.Sapfor.SapforAnalysis;
|
|||||||
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||||
import _VisualDVM.ProjectData.SapforData.Loops.Json.FileLoopsJson;
|
import _VisualDVM.ProjectData.SapforData.Loops.Json.FileLoopsJson;
|
||||||
import _VisualDVM.ProjectData.SapforData.Loops.Json.LoopsJson;
|
import _VisualDVM.ProjectData.SapforData.Loops.Json.LoopsJson;
|
||||||
import _VisualDVM.ProjectData.SapforData.Loops.Loop;
|
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -40,17 +39,10 @@ public class SPF_GetGraphLoops extends SapforAnalysis {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void unpack(String packed) throws Exception {
|
protected void unpack(String packed) throws Exception {
|
||||||
int allLoops=0;
|
|
||||||
Vector<String> loops_programs = new Vector<>();
|
|
||||||
System.out.println(packed);
|
|
||||||
File debug = new File(Global.TempDirectory, "debug.txt");
|
|
||||||
FileUtils.writeStringToFile(debug,packed);
|
|
||||||
LoopsJson loopsJson = Utils_.gson.fromJson(packed, LoopsJson.class);
|
LoopsJson loopsJson = Utils_.gson.fromJson(packed, LoopsJson.class);
|
||||||
for (FileLoopsJson fileLoopsJson: loopsJson.allLoops){
|
for (FileLoopsJson fileLoopsJson: loopsJson.allLoops){
|
||||||
DBProjectFile projectFile = target.db.files.get(fileLoopsJson.file);
|
DBProjectFile projectFile = target.db.files.get(fileLoopsJson.file);
|
||||||
projectFile.LoopNests.addAll(fileLoopsJson.loops);
|
projectFile.saveLoops(fileLoopsJson.loops);
|
||||||
projectFile.saveAllLoops();
|
|
||||||
projectFile.LoopGraphTitle = "Всего циклов: " + projectFile.AllLoops.size();
|
|
||||||
target.numLoops += projectFile.AllLoops.size();
|
target.numLoops += projectFile.AllLoops.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import java.io.IOException;
|
|||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
//по файлам нет смысла делать совместимость.
|
//по файлам нет смысла делать совместимость.
|
||||||
//так что переименую
|
//так что переименую
|
||||||
@@ -474,9 +475,15 @@ public class DBProjectFile extends ProjectFile {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
//---
|
//---
|
||||||
public void saveAllLoops(){
|
public void saveLoops(List<Loop> loopNests_in){
|
||||||
|
AllLoops.clear();
|
||||||
|
LoopNests.clear();
|
||||||
|
//--
|
||||||
|
LoopNests.addAll(loopNests_in);
|
||||||
for (Loop loop: LoopNests){
|
for (Loop loop: LoopNests){
|
||||||
|
loop.setFile(this.name);
|
||||||
loop.toMap_r(AllLoops);
|
loop.toMap_r(AllLoops);
|
||||||
}
|
}
|
||||||
|
LoopGraphTitle = "Всего циклов: " +AllLoops.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,10 +29,6 @@ public class Loop extends FileObjectWithMessages {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---
|
//---
|
||||||
@Expose
|
|
||||||
public List<FuncCall> funcCalls = new Vector<>();
|
|
||||||
// @Expose
|
|
||||||
// public List<NonRectIter> non_rect_iters = new Vector<>();
|
|
||||||
@Expose
|
@Expose
|
||||||
public List<Integer> extGotos = new Vector<>();
|
public List<Integer> extGotos = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
@@ -41,6 +37,9 @@ public class Loop extends FileObjectWithMessages {
|
|||||||
public List<Integer> ios = new Vector<>();
|
public List<Integer> ios = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
public List<Integer> stops = new Vector<>();
|
public List<Integer> stops = new Vector<>();
|
||||||
|
//--
|
||||||
|
@Expose
|
||||||
|
public List<FuncCall> funcCalls = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
public List<Loop> children = new Vector<>();
|
public List<Loop> children = new Vector<>();
|
||||||
//--
|
//--
|
||||||
@@ -89,4 +88,12 @@ public class Loop extends FileObjectWithMessages {
|
|||||||
for (Loop loop: children)
|
for (Loop loop: children)
|
||||||
loop.toMap_r(loops_map);
|
loop.toMap_r(loops_map);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void setFile(String file_in) {
|
||||||
|
super.setFile(file_in);
|
||||||
|
for (FuncCall funcCall: funcCalls)
|
||||||
|
funcCall.setFile(file_in);
|
||||||
|
for (Loop child: children)
|
||||||
|
child.setFile(file_in);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user