граф циклов в джсоне

This commit is contained in:
2025-03-31 22:12:04 +03:00
parent 76c710b1bc
commit c6d2452530
4 changed files with 20 additions and 15 deletions

1
.idea/workspace.xml generated
View File

@@ -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" />

View File

@@ -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();
} }
} }

View File

@@ -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();
} }
} }

View File

@@ -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);
}
} }