новый проход и директива.
This commit is contained in:
2026-04-28 19:04:32 +03:00
parent f3b29d8d7e
commit 1b6d53ee9e
10 changed files with 31 additions and 7 deletions

9
.idea/workspace.xml generated
View File

@@ -7,9 +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/Passes/All/SPF_MergeRegions.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/Transformations/SPF_MergeRegions.png" 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/Common/Visual/Windows/Dialog/DialogWrapText.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/Component/Sapfor/Sapfor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/Component/Sapfor/Sapfor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/UI/Editor/AutoComplete/SAPFOR/Directives/DirectiveName.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/UI/Editor/AutoComplete/SAPFOR/Directives/DirectiveName.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/UI/Editor/AutoComplete/SAPFOR/Directives/Spec3Directive.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/UI/Editor/AutoComplete/SAPFOR/Directives/Spec3Directive.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/UI/Editor/AutoComplete/SAPFOR/Providers/Spec3Provider.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/UI/Editor/AutoComplete/SAPFOR/Providers/Spec3Provider.java" afterDir="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" />

View File

@@ -11,8 +11,8 @@
"Visualizer_2Path": "C:\\Users\\misha\\Documents", "Visualizer_2Path": "C:\\Users\\misha\\Documents",
"InstructionPath": "C:\\Users\\misha\\Documents", "InstructionPath": "C:\\Users\\misha\\Documents",
"PerformanceAnalyzerPath": "C:\\Users\\misha\\Documents", "PerformanceAnalyzerPath": "C:\\Users\\misha\\Documents",
"AutoBugReportsLoad": true, "AutoBugReportsLoad": false,
"AutoTestsLoad": true, "AutoTestsLoad": false,
"ConfirmPassesStart": true, "ConfirmPassesStart": true,
"ShowPassesDone": true, "ShowPassesDone": true,
"FocusPassesResult": false, "FocusPassesResult": false,

View File

@@ -102,7 +102,8 @@ public abstract class Sapfor extends OSDComponent {
return new PassCode[]{ return new PassCode[]{
PassCode.SPF_ResolveParallelRegionConflicts, PassCode.SPF_ResolveParallelRegionConflicts,
PassCode.SPF_InsertDvmhRegions, PassCode.SPF_InsertDvmhRegions,
PassCode.SPF_RemoveDistArraysFromIO PassCode.SPF_RemoveDistArraysFromIO,
PassCode.SPF_MergeRegions
}; };
} }
public static PassCode[] getPreparationTransformationsCodes() { public static PassCode[] getPreparationTransformationsCodes() {
@@ -160,6 +161,7 @@ public abstract class Sapfor extends OSDComponent {
res.add(PassCode.SPF_ResolveParallelRegionConflicts);//+ res.add(PassCode.SPF_ResolveParallelRegionConflicts);//+
res.add(PassCode.SPF_RemoveDistArraysFromIO); res.add(PassCode.SPF_RemoveDistArraysFromIO);
res.add(PassCode.SPF_ResolveCommonBlockConflicts);//+ res.add(PassCode.SPF_ResolveCommonBlockConflicts);//+
res.add(PassCode.SPF_MergeRegions); //+
//- //-
res.add(PassCode.SPF_InsertDvmhRegions);//+ res.add(PassCode.SPF_InsertDvmhRegions);//+
res.add(PassCode.SPF_SharedMemoryParallelization);//+ res.add(PassCode.SPF_SharedMemoryParallelization);//+

View File

@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
import java.util.Vector; import java.util.Vector;
public class Constants { public class Constants {
public static final int version = 1267; public static final int version = 1268;
public static final int planner_version = 27; public static final int planner_version = 27;
public static final int testingMaxKernels = 64; public static final int testingMaxKernels = 64;
//-- //--

View File

@@ -0,0 +1,4 @@
package _VisualDVM.Passes.All;
import _VisualDVM.Passes.Sapfor.SapforTransformation;
public class SPF_MergeRegions extends SapforTransformation {
}

View File

@@ -363,12 +363,15 @@ public enum PassCode implements PassCode_ {
CompareDVMRunTaskToEthalon, CompareDVMRunTaskToEthalon,
DropSapforConfigurationEthalon, DropSapforConfigurationEthalon,
RefreshSapforPackageResults, RefreshSapforPackageResults,
SPF_MoveOperators SPF_MoveOperators,
SPF_MergeRegions
; ;
//-- //--
@Override @Override
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case SPF_MergeRegions:
return "Объединение областей";
case SPF_MoveOperators: case SPF_MoveOperators:
return "Оптимальный порядок операторов"; return "Оптимальный порядок операторов";
case SPF_InsertPrivateArrayDirectives: case SPF_InsertPrivateArrayDirectives:
@@ -963,6 +966,9 @@ public enum PassCode implements PassCode_ {
case SPF_MoveOperators: case SPF_MoveOperators:
name = "MOVE_OPERATORS"; name = "MOVE_OPERATORS";
break; break;
case SPF_MergeRegions:
name = "MERGE_REGIONS";
break;
} }
return p + " " + name; return p + " " + name;
} }

View File

@@ -42,7 +42,8 @@ public enum DirectiveName {
UNROLL, UNROLL,
PROCESS_PRIVATE, PROCESS_PRIVATE,
COVER, COVER,
MERGE; MERGE,
MERGE_ARRAYS;
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case SPF: case SPF:
@@ -125,6 +126,8 @@ public enum DirectiveName {
return "Клауза, ограничивающая действие директивы на N тесно-вложенных циклов"; return "Клауза, ограничивающая действие директивы на N тесно-вложенных циклов";
case MERGE: case MERGE:
return "Клауза для объединения циклов"; return "Клауза для объединения циклов";
case MERGE_ARRAYS:
return "Клауза для объединения массивов-копий в областях распараллеливания";
default: default:
return "?"; return "?";
} }

View File

@@ -12,6 +12,7 @@ public class Spec3Directive extends SpecDirective {
&& getOwner().nearestGroup.equals(DirectiveName.TRANSFORM) && getOwner().nearestGroup.equals(DirectiveName.TRANSFORM)
&& !getOwner().flags.contains(DirectiveName.NOINLINE) && !getOwner().flags.contains(DirectiveName.NOINLINE)
&& !getOwner().flags.contains(DirectiveName.MERGE) && !getOwner().flags.contains(DirectiveName.MERGE)
&& !getOwner().flags.contains(DirectiveName.MERGE_ARRAYS)
&& !getOwner().flags.contains(DirectiveName.FISSION) && !getOwner().flags.contains(DirectiveName.FISSION)
&& !getOwner().flags.contains(DirectiveName.SHRINK) && !getOwner().flags.contains(DirectiveName.SHRINK)
&& !getOwner().flags.contains(DirectiveName.EXPAND) && !getOwner().flags.contains(DirectiveName.EXPAND)

View File

@@ -11,5 +11,6 @@ public class Spec3Provider extends PrefixWordProvider {
addDirective(new Spec3Directive(this, DirectiveName.EXPAND)); addDirective(new Spec3Directive(this, DirectiveName.EXPAND));
addDirective(new Spec3Directive(this, DirectiveName.UNROLL)); addDirective(new Spec3Directive(this, DirectiveName.UNROLL));
addDirective(new Spec3Directive(this, DirectiveName.MERGE)); addDirective(new Spec3Directive(this, DirectiveName.MERGE));
addDirective(new Spec3Directive(this, DirectiveName.MERGE_ARRAYS));
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B