новый проход и директива.
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 name="ChangeListManager">
<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$/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>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

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

View File

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

View File

@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
import java.util.Vector;
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 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,
DropSapforConfigurationEthalon,
RefreshSapforPackageResults,
SPF_MoveOperators
SPF_MoveOperators,
SPF_MergeRegions
;
//--
@Override
public String getDescription() {
switch (this) {
case SPF_MergeRegions:
return "Объединение областей";
case SPF_MoveOperators:
return "Оптимальный порядок операторов";
case SPF_InsertPrivateArrayDirectives:
@@ -963,6 +966,9 @@ public enum PassCode implements PassCode_ {
case SPF_MoveOperators:
name = "MOVE_OPERATORS";
break;
case SPF_MergeRegions:
name = "MERGE_REGIONS";
break;
}
return p + " " + name;
}

View File

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

View File

@@ -12,6 +12,7 @@ public class Spec3Directive extends SpecDirective {
&& getOwner().nearestGroup.equals(DirectiveName.TRANSFORM)
&& !getOwner().flags.contains(DirectiveName.NOINLINE)
&& !getOwner().flags.contains(DirectiveName.MERGE)
&& !getOwner().flags.contains(DirectiveName.MERGE_ARRAYS)
&& !getOwner().flags.contains(DirectiveName.FISSION)
&& !getOwner().flags.contains(DirectiveName.SHRINK)
&& !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.UNROLL));
addDirective(new Spec3Directive(this, DirectiveName.MERGE));
addDirective(new Spec3Directive(this, DirectiveName.MERGE_ARRAYS));
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 B