no message
This commit is contained in:
9
.idea/workspace.xml
generated
9
.idea/workspace.xml
generated
@@ -7,17 +7,16 @@
|
|||||||
</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 afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/Json/FileFunctionsJson.java" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/Json/FunctionParameterJson.java" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/Json/FunctionsJson.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphFunctionPositions.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphFunctionPositions.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphFunctions.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphFunctions.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphFunctions.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphFunctions.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_InlineProcedures.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_InlineProcedures.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/Project/db_project_info.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Project/db_project_info.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncCall.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncCall.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncCall.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncCall.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncInfo.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FuncInfo.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FunctionsJson/FileFunctionsJson.java" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/Инструкция по распараллеливанию в системе SAPFOR.pptx" beforeDir="false" afterPath="$PROJECT_DIR$/Инструкция по распараллеливанию в системе SAPFOR.pptx" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Functions/FunctionsJson/FunctionsJson.java" beforeDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -83,12 +83,12 @@ public class SPF_GetGraphFunctionPositions extends SilentSapforPass {
|
|||||||
res.add(name);
|
res.add(name);
|
||||||
if (depth > 0) {
|
if (depth > 0) {
|
||||||
if (out) {
|
if (out) {
|
||||||
for (FuncCall call : target.allFunctions.get(name).calls)
|
for (FuncCall call : target.allFunctions.get(name).callsFrom)
|
||||||
getNeighbors_r(res, call.funcName, depth - 1, in, true);
|
getNeighbors_r(res, call.funcName, depth - 1, in, true);
|
||||||
}
|
}
|
||||||
if (in) {
|
if (in) {
|
||||||
for (FuncInfo parent : target.allFunctions.values()) {
|
for (FuncInfo parent : target.allFunctions.values()) {
|
||||||
for (FuncCall call : parent.calls) {
|
for (FuncCall call : parent.callsFrom) {
|
||||||
if (call.funcName.equals(name)) {
|
if (call.funcName.equals(name)) {
|
||||||
getNeighbors_r(res, parent.funcName, depth - 1, true, out);
|
getNeighbors_r(res, parent.funcName, depth - 1, true, out);
|
||||||
}
|
}
|
||||||
@@ -102,12 +102,12 @@ public class SPF_GetGraphFunctionPositions extends SilentSapforPass {
|
|||||||
if (!res.contains(name)) {
|
if (!res.contains(name)) {
|
||||||
res.add(name);
|
res.add(name);
|
||||||
if (out) {
|
if (out) {
|
||||||
for (FuncCall call : target.allFunctions.get(name).calls)
|
for (FuncCall call : target.allFunctions.get(name).callsFrom)
|
||||||
getNeighborsNoDepth_r(res, call.funcName, in, true);
|
getNeighborsNoDepth_r(res, call.funcName, in, true);
|
||||||
}
|
}
|
||||||
if (in) {
|
if (in) {
|
||||||
for (FuncInfo parent : target.allFunctions.values()) {
|
for (FuncInfo parent : target.allFunctions.values()) {
|
||||||
for (FuncCall call : parent.calls) {
|
for (FuncCall call : parent.callsFrom) {
|
||||||
if (call.funcName.equals(name)) {
|
if (call.funcName.equals(name)) {
|
||||||
getNeighborsNoDepth_r(res, parent.funcName, true, out);
|
getNeighborsNoDepth_r(res, parent.funcName, true, out);
|
||||||
}
|
}
|
||||||
@@ -237,7 +237,7 @@ public class SPF_GetGraphFunctionPositions extends SilentSapforPass {
|
|||||||
//теперь добавить ребер.
|
//теперь добавить ребер.
|
||||||
for (String funcName : target.functionsGraph.vertexMap.keySet()) {
|
for (String funcName : target.functionsGraph.vertexMap.keySet()) {
|
||||||
FuncInfo fi = target.allFunctions.get(funcName);
|
FuncInfo fi = target.allFunctions.get(funcName);
|
||||||
for (FuncCall fc : fi.calls) {
|
for (FuncCall fc : fi.callsFrom) {
|
||||||
if (target.functionsGraph.vertexMap.containsKey(fc.funcName))
|
if (target.functionsGraph.vertexMap.containsKey(fc.funcName))
|
||||||
target.functionsGraph.addEdge(
|
target.functionsGraph.addEdge(
|
||||||
funcName,
|
funcName,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package _VisualDVM.Passes.All;
|
package _VisualDVM.Passes.All;
|
||||||
import Common.Utils.Utils_;
|
import Common.Utils.Utils_;
|
||||||
|
import Common.Visual.UI;
|
||||||
import _VisualDVM.Current;
|
import _VisualDVM.Current;
|
||||||
import _VisualDVM.Global;
|
import _VisualDVM.Global;
|
||||||
import _VisualDVM.Passes.PassCode;
|
import _VisualDVM.Passes.PassCode;
|
||||||
@@ -48,7 +49,6 @@ public class SPF_GetGraphFunctions extends SapforAnalysis {
|
|||||||
@Override
|
@Override
|
||||||
protected void unpack(String packed) throws Exception {
|
protected void unpack(String packed) throws Exception {
|
||||||
LinkedHashMap<String, FuncInfo> declarated_functions = new LinkedHashMap<>();
|
LinkedHashMap<String, FuncInfo> declarated_functions = new LinkedHashMap<>();
|
||||||
//--
|
|
||||||
FunctionsJson functionsJson = Utils_.gson.fromJson(packed, FunctionsJson.class);
|
FunctionsJson functionsJson = Utils_.gson.fromJson(packed, FunctionsJson.class);
|
||||||
for (FileFunctionsJson fileFunctionsJson : functionsJson.allFunctions) {
|
for (FileFunctionsJson fileFunctionsJson : functionsJson.allFunctions) {
|
||||||
fileFunctionsJson.file = Utils_.toW(fileFunctionsJson.file);
|
fileFunctionsJson.file = Utils_.toW(fileFunctionsJson.file);
|
||||||
@@ -65,7 +65,7 @@ public class SPF_GetGraphFunctions extends SapforAnalysis {
|
|||||||
//------
|
//------
|
||||||
LinkedHashMap<String, FuncInfo> special_functions = new LinkedHashMap<>();
|
LinkedHashMap<String, FuncInfo> special_functions = new LinkedHashMap<>();
|
||||||
for (FuncInfo funcInfo : declarated_functions.values()) {
|
for (FuncInfo funcInfo : declarated_functions.values()) {
|
||||||
for (FuncCall funcCall : funcInfo.calls) {
|
for (FuncCall funcCall : funcInfo.callsFrom) {
|
||||||
if (!declarated_functions.containsKey(funcCall.funcName) && (
|
if (!declarated_functions.containsKey(funcCall.funcName) && (
|
||||||
!special_functions.containsKey(funcCall.funcName)
|
!special_functions.containsKey(funcCall.funcName)
|
||||||
)) {
|
)) {
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ public class SPF_InlineProcedures extends SapforTransformation {
|
|||||||
Vector<String> Result = new Vector<>();
|
Vector<String> Result = new Vector<>();
|
||||||
for (FuncInfo fi : target.allFunctions.values()) {
|
for (FuncInfo fi : target.allFunctions.values()) {
|
||||||
Vector<FuncCall> selected_children = new Vector<>();
|
Vector<FuncCall> selected_children = new Vector<>();
|
||||||
for (String calls_file : fi.own_calls.keySet()) {
|
for (String calls_file : fi.ownCalls.keySet()) {
|
||||||
for (FuncCall call : fi.own_calls.get(calls_file)) {
|
for (FuncCall call : fi.ownCalls.get(calls_file)) {
|
||||||
if (call.isSelected())
|
if (call.isSelected())
|
||||||
selected_children.add(call);
|
selected_children.add(call);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -275,7 +275,7 @@ public class DBProjectFile extends ProjectFile {
|
|||||||
DefaultMutableTreeNode root = new DefaultMutableTreeNode(CallGraphTitle);
|
DefaultMutableTreeNode root = new DefaultMutableTreeNode(CallGraphTitle);
|
||||||
for (FuncInfo fi : function_decls.values()) {
|
for (FuncInfo fi : function_decls.values()) {
|
||||||
DefaultMutableTreeNode node = new DefaultMutableTreeNode(fi);
|
DefaultMutableTreeNode node = new DefaultMutableTreeNode(fi);
|
||||||
for (FuncCall fc : fi.calls)
|
for (FuncCall fc : fi.callsFrom)
|
||||||
node.add(new DefaultMutableTreeNode(fc));
|
node.add(new DefaultMutableTreeNode(fc));
|
||||||
root.add(node);
|
root.add(node);
|
||||||
}
|
}
|
||||||
@@ -347,7 +347,7 @@ public class DBProjectFile extends ProjectFile {
|
|||||||
public int FragmentFunctionCallsCount(int first, int second) {
|
public int FragmentFunctionCallsCount(int first, int second) {
|
||||||
int res = 0;
|
int res = 0;
|
||||||
for (FuncInfo fi : function_decls.values())
|
for (FuncInfo fi : function_decls.values())
|
||||||
for (FuncCall fc : fi.calls) {
|
for (FuncCall fc : fi.callsFrom) {
|
||||||
if ((fc.line >= first) && (fc.line <= second))
|
if ((fc.line >= first) && (fc.line <= second))
|
||||||
res++;
|
res++;
|
||||||
}
|
}
|
||||||
@@ -356,7 +356,7 @@ public class DBProjectFile extends ProjectFile {
|
|||||||
public FuncCall find_current_func_call() {
|
public FuncCall find_current_func_call() {
|
||||||
//-------------
|
//-------------
|
||||||
for (FuncInfo fi : function_decls.values()) {
|
for (FuncInfo fi : function_decls.values()) {
|
||||||
for (FuncCall fc : fi.calls) {
|
for (FuncCall fc : fi.callsFrom) {
|
||||||
if ((fc.line == form.getEditor().getCurrentLine()) &&
|
if ((fc.line == form.getEditor().getCurrentLine()) &&
|
||||||
!Global.mainModule.getSapfor().isIntrinsic(fc.funcName)
|
!Global.mainModule.getSapfor().isIntrinsic(fc.funcName)
|
||||||
) {
|
) {
|
||||||
@@ -369,7 +369,7 @@ public class DBProjectFile extends ProjectFile {
|
|||||||
}
|
}
|
||||||
public FuncCall find_func_call(String funcName) {
|
public FuncCall find_func_call(String funcName) {
|
||||||
for (FuncInfo fi : function_decls.values()) {
|
for (FuncInfo fi : function_decls.values()) {
|
||||||
for (FuncCall fc : fi.calls) {
|
for (FuncCall fc : fi.callsFrom) {
|
||||||
if (fc.funcName.equalsIgnoreCase(funcName) &&
|
if (fc.funcName.equalsIgnoreCase(funcName) &&
|
||||||
(fc.line == form.getEditor().getCurrentLine()
|
(fc.line == form.getEditor().getCurrentLine()
|
||||||
)) {
|
)) {
|
||||||
@@ -502,8 +502,9 @@ public class DBProjectFile extends ProjectFile {
|
|||||||
funcInfo.type = FunctionType.Default;
|
funcInfo.type = FunctionType.Default;
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
|
funcInfo.ownCalls = new LinkedHashMap<>();
|
||||||
function_decls.put(funcInfo.funcName, funcInfo);
|
function_decls.put(funcInfo.funcName, funcInfo);
|
||||||
call_count+=funcInfo.calls.size();
|
call_count+=funcInfo.callsFrom.size();
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
CallGraphTitle = "Объявлений : " + function_decls.size() + "; Вызовов : " + call_count;
|
CallGraphTitle = "Объявлений : " + function_decls.size() + "; Вызовов : " + call_count;
|
||||||
|
|||||||
@@ -773,13 +773,13 @@ public class db_project_info extends DBObject {
|
|||||||
inline_root.add(node);
|
inline_root.add(node);
|
||||||
//-
|
//-
|
||||||
for (FuncInfo decl2 : allFunctions.values()) {
|
for (FuncInfo decl2 : allFunctions.values()) {
|
||||||
for (FuncCall call : decl2.calls) {
|
for (FuncCall call : decl2.callsFrom) {
|
||||||
if (call.funcName.equals(decl1.funcName)) {
|
if (call.funcName.equals(decl1.funcName)) {
|
||||||
if (!decl1.own_calls.containsKey(call.file))
|
if (!decl1.ownCalls.containsKey(call.file))
|
||||||
decl1.own_calls.put(call.file, new Vector<>());
|
decl1.ownCalls.put(call.file, new Vector<>());
|
||||||
if (decl1.needToInline==1) call.Select(true);
|
if (decl1.needToInline==1) call.Select(true);
|
||||||
call.canBeInlined = (decl1.doNotInline==1)?0:1;
|
call.canBeInlined = (decl1.doNotInline==1)?0:1;
|
||||||
decl1.own_calls.get(call.file).add(call);
|
decl1.ownCalls.get(call.file).add(call);
|
||||||
node.add(new DefaultMutableTreeNode(call));
|
node.add(new DefaultMutableTreeNode(call));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -792,7 +792,7 @@ public class db_project_info extends DBObject {
|
|||||||
//особый случай.
|
//особый случай.
|
||||||
main_functionH = new FuncCallH(main_function);
|
main_functionH = new FuncCallH(main_function);
|
||||||
DefaultMutableTreeNode main_node = new DefaultMutableTreeNode(main_functionH);
|
DefaultMutableTreeNode main_node = new DefaultMutableTreeNode(main_functionH);
|
||||||
for (FuncCall call : main_function.calls) {
|
for (FuncCall call : main_function.callsFrom) {
|
||||||
Vector<String> chain = new Vector<>();
|
Vector<String> chain = new Vector<>();
|
||||||
chain.add(main_functionH.funcName);
|
chain.add(main_functionH.funcName);
|
||||||
// UI.Info("start new chain");
|
// UI.Info("start new chain");
|
||||||
@@ -812,7 +812,7 @@ public class db_project_info extends DBObject {
|
|||||||
DefaultMutableTreeNode res = null;
|
DefaultMutableTreeNode res = null;
|
||||||
FuncInfo funcInfo = allFunctions.get(funcCall.funcName);
|
FuncInfo funcInfo = allFunctions.get(funcCall.funcName);
|
||||||
res = new DefaultMutableTreeNode(funcCallH);
|
res = new DefaultMutableTreeNode(funcCallH);
|
||||||
for (FuncCall call : funcInfo.calls) {
|
for (FuncCall call : funcInfo.callsFrom) {
|
||||||
if (!chain.contains(call.funcName)) {
|
if (!chain.contains(call.funcName)) {
|
||||||
DefaultMutableTreeNode node = BuildInlineGraph2_r(call, chain);
|
DefaultMutableTreeNode node = BuildInlineGraph2_r(call, chain);
|
||||||
if (node != null) {
|
if (node != null) {
|
||||||
|
|||||||
@@ -11,10 +11,8 @@ public class FuncCall extends FileObjectWithMessages{
|
|||||||
//JSON------------------------------------------
|
//JSON------------------------------------------
|
||||||
@Expose
|
@Expose
|
||||||
public String funcName = "";
|
public String funcName = "";
|
||||||
@Expose
|
|
||||||
public int canBeInlined = 0;
|
public int canBeInlined = 0;
|
||||||
@Expose
|
public int parentLineOffset = 0;// line объявления - line вычислять?
|
||||||
public int parentLineOffset = 0;// line объявления - line
|
|
||||||
//END OF JSON------------------------------------
|
//END OF JSON------------------------------------
|
||||||
@Description("IGNORE")
|
@Description("IGNORE")
|
||||||
private boolean selected = false;
|
private boolean selected = false;
|
||||||
|
|||||||
@@ -29,9 +29,11 @@ public class FuncInfo extends FileObjectWithMessages {
|
|||||||
|
|
||||||
public FunctionType type = FunctionType.Default;
|
public FunctionType type = FunctionType.Default;
|
||||||
//вызовы функций в теле этой функции
|
//вызовы функций в теле этой функции
|
||||||
public Vector<FuncCall> calls = new Vector<>();
|
@Expose
|
||||||
|
public Vector<FuncCall> callsFrom = new Vector<>();
|
||||||
|
//----
|
||||||
//вызовы этой самой функции, рассортированные по файлам.
|
//вызовы этой самой функции, рассортированные по файлам.
|
||||||
public LinkedHashMap<String, Vector<FuncCall>> own_calls = new LinkedHashMap<>();
|
public LinkedHashMap<String, Vector<FuncCall>> ownCalls = new LinkedHashMap<>();
|
||||||
//Узел фуннкции при отрисовке графа процедур.
|
//Узел фуннкции при отрисовке графа процедур.
|
||||||
//Нужен для сохранения всех позиций графа.
|
//Нужен для сохранения всех позиций графа.
|
||||||
public mxCell functionsGraphCell = null;
|
public mxCell functionsGraphCell = null;
|
||||||
@@ -56,8 +58,8 @@ public class FuncInfo extends FileObjectWithMessages {
|
|||||||
return Utils_.getIcon("/icons/Function.png");
|
return Utils_.getIcon("/icons/Function.png");
|
||||||
}
|
}
|
||||||
public void SelectAllChildren(boolean select) {
|
public void SelectAllChildren(boolean select) {
|
||||||
for (String file_name : own_calls.keySet())
|
for (String file_name : ownCalls.keySet())
|
||||||
for (FuncCall fc : own_calls.get(file_name))
|
for (FuncCall fc : ownCalls.get(file_name))
|
||||||
fc.Select(select);
|
fc.Select(select);
|
||||||
}
|
}
|
||||||
public boolean isDeclared() {
|
public boolean isDeclared() {
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user