Skip to content

Commit 878b864

Browse files
committed
Lead out message queue optimization to API
1 parent f981bde commit 878b864

File tree

8 files changed

+25
-20
lines changed

8 files changed

+25
-20
lines changed

plugins/core/hu.bme.mit.gamma.composition.xsts.uppaal.transformation/src/hu/bme/mit/gamma/composition/xsts/uppaal/transformation/Gamma2XstsUppaalTransformerSerializer.xtend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class Gamma2XstsUppaalTransformerSerializer {
101101
val xStsTransformer = new Gamma2XstsTransformerSerializer(component,
102102
arguments, targetFolderUri,
103103
fileName, minSchedulingConstraint, maxSchedulingConstraint,
104-
optimize, false,
104+
optimize, false, false,
105105
transitionMerging,
106106
slicingProperties, annotatableElements,
107107
initialState, initialStateSetting)

plugins/core/hu.bme.mit.gamma.ui/src/hu/bme/mit/gamma/ui/taskhandler/AnalysisModelTransformationHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ public void execute(AnalysisModelTransformation transformation) throws IOExcepti
519519
component, reference.getArguments(),
520520
targetFolderUri, fileName,
521521
minSchedulingConstraint, maxSchedulingConstraint,
522-
transformation.isOptimize(), true,
522+
transformation.isOptimize(), true, true,
523523
TransitionMerging.HIERARCHICAL,
524524
transformation.getPropertyPackage(), new AnnotatablePreprocessableElements(
525525
testedComponentsForStates, testedComponentsForTransitions,

plugins/nuxmv/hu.bme.mit.gamma.xsts.nuxmv.transformation/src/hu/bme/mit/gamma/xsts/nuxmv/transformation/Gamma2XstsNuxmvTransformerSerializer.xtend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class Gamma2XstsNuxmvTransformerSerializer {
103103
val xStsTransformer = new Gamma2XstsTransformerSerializer(component,
104104
arguments, targetFolderUri,
105105
fileName, minSchedulingConstraint, maxSchedulingConstraint,
106-
optimize, true, // Optimize arrays?
106+
optimize, true, /* Optimize arrays? */ true, /* Optimize message queues */
107107
transitionMerging,
108108
slicingProperties, annotatableElements,
109109
initialState, initialStateSetting)

plugins/promela/hu.bme.mit.gamma.xsts.promela.transformation/src/hu/bme/mit/gamma/xsts/promela/transformation/Gamma2XstsPromelaTransformerSerializer.xtend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class Gamma2XstsPromelaTransformerSerializer {
9999
val xStsTransformer = new Gamma2XstsTransformerSerializer(component,
100100
arguments, targetFolderUri,
101101
fileName, minSchedulingConstraint, maxSchedulingConstraint,
102-
optimize, true, // Optimize arrays?
102+
optimize, true, /* Optimize arrays? */ false, /* Optimize message queues? */
103103
transitionMerging,
104104
slicingProperties, annotatableElements,
105105
initialState, initialStateSetting)

plugins/scenario/hu.bme.mit.gamma.scenario.trace.generator/src/hu/bme/mit/gamma/scenario/trace/generator/ScenarioStatechartTraceGenerator.xtend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class ScenarioStatechartTraceGenerator {
8787
val name = statechart.name
8888
val compInstanceRef = new ComponentInstanceReferences(newArrayList,newArrayList)
8989
val transformator = new Gamma2XstsTransformerSerializer(statechart, arguments, absoluteParentFolder, name, schedulingConstraint, schedulingConstraint,
90-
true, false, TransitionMerging.HIERARCHICAL, null,
90+
true, false, false, TransitionMerging.HIERARCHICAL, null,
9191
new AnnotatablePreprocessableElements(null, compInstanceRef, null, null, null,
9292
InteractionCoverageCriterion.EVERY_INTERACTION, InteractionCoverageCriterion.EVERY_INTERACTION, null,
9393
DataflowCoverageCriterion.ALL_USE, null, DataflowCoverageCriterion.ALL_USE), null, null)

plugins/xsts/hu.bme.mit.gamma.xsts.transformation.util/src/hu/bme/mit/gamma/xsts/transformation/util/MessageQueueOptimizer.xtend

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,6 @@ class MessageQueueOptimizer {
211211
val addAction = flattenedQueueVariable.createAssignmentAction(clonedRhs)
212212

213213
addAction.replace(action)
214-
return
215214
}
216215
else { // q[size] := x;
217216
val sizeVariable = index.declaration
@@ -230,8 +229,8 @@ class MessageQueueOptimizer {
230229

231230
val newAddAction = ifActions.weave
232231
newAddAction.replace(action)
233-
return
234232
}
233+
return
235234
}
236235
}
237236
throw new IllegalArgumentException("Not known action: " + action)
@@ -304,8 +303,8 @@ class MessageQueueOptimizer {
304303
val notEmptyAssumption = notEmptyExpression.createAssumeAction
305304

306305
action.appendToAction(notEmptyAssumption)
307-
return
308306
}
307+
return
309308
}
310309
throw new IllegalArgumentException("Not known action: " + action)
311310
}

plugins/xsts/hu.bme.mit.gamma.xsts.transformation/src/hu/bme/mit/gamma/xsts/transformation/GammaToXstsTransformer.xtend

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class GammaToXstsTransformer {
6565
protected final InitialStateSetting initialStateSetting
6666
protected final boolean optimize
6767
protected final boolean optimizeArrays
68-
protected final boolean optimizeMessageQueues = false
68+
protected final boolean optimizeMessageQueues
6969
// Auxiliary objects
7070
protected final extension GammaEcoreUtil ecoreUtil = GammaEcoreUtil.INSTANCE
7171
protected final extension ActionSerializer actionSerializer = ActionSerializer.INSTANCE
@@ -82,26 +82,28 @@ class GammaToXstsTransformer {
8282
protected final Logger logger = Logger.getLogger("GammaLogger")
8383

8484
new() {
85-
this(null, true, true, false, TransitionMerging.HIERARCHICAL)
85+
this(null, true, true, false, false, TransitionMerging.HIERARCHICAL)
8686
}
8787

8888
new(Integer schedulingConstraint, boolean transformOrthogonalActions,
89-
boolean optimize, boolean optimizeArrays, TransitionMerging transitionMerging) {
89+
boolean optimize, boolean optimizeArrays, boolean optimizeMessageQueues,
90+
TransitionMerging transitionMerging) {
9091
this(schedulingConstraint, transformOrthogonalActions,
91-
optimize, optimizeArrays, transitionMerging,
92-
null, null)
92+
optimize, optimizeArrays, optimizeMessageQueues,
93+
transitionMerging, null, null)
9394
}
9495

9596
new(Integer schedulingConstraint, boolean transformOrthogonalActions,
96-
boolean optimize, boolean optimizeArrays, TransitionMerging transitionMerging,
97+
boolean optimize, boolean optimizeArrays, boolean optimizeMessageQueues,
98+
TransitionMerging transitionMerging,
9799
PropertyPackage initialState, InitialStateSetting initialStateSetting) {
98100
this(schedulingConstraint, schedulingConstraint,
99-
transformOrthogonalActions, optimize, optimizeArrays, transitionMerging,
100-
initialState, initialStateSetting)
101+
transformOrthogonalActions, optimize, optimizeArrays, optimizeMessageQueues,
102+
transitionMerging, initialState, initialStateSetting)
101103
}
102104

103105
new(Integer minSchedulingConstraint, Integer maxSchedulingConstraint,
104-
boolean transformOrthogonalActions, boolean optimize, boolean optimizeArrays,
106+
boolean transformOrthogonalActions, boolean optimize, boolean optimizeArrays, boolean optimizeMessageQueues,
105107
TransitionMerging transitionMerging,
106108
PropertyPackage initialState, InitialStateSetting initialStateSetting) {
107109
this.gammaToLowlevelTransformer = new GammaToLowlevelTransformer
@@ -113,6 +115,7 @@ class GammaToXstsTransformer {
113115
this.initialStateSetting = initialStateSetting
114116
this.optimize = optimize
115117
this.optimizeArrays = optimizeArrays
118+
this.optimizeMessageQueues = optimizeMessageQueues
116119
}
117120

118121
def preprocessAndExecuteAndSerialize(Package _package,

plugins/xsts/hu.bme.mit.gamma.xsts.transformation/src/hu/bme/mit/gamma/xsts/transformation/api/Gamma2XstsTransformerSerializer.xtend

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class Gamma2XstsTransformerSerializer {
4242
// Configuration
4343
protected final boolean optimize
4444
protected final boolean optimizeArray
45+
protected final boolean optimizeMessageQueues
4546
protected final TransitionMerging transitionMerging
4647
// Slicing
4748
protected final PropertyPackage slicingProperties
@@ -70,7 +71,7 @@ class Gamma2XstsTransformerSerializer {
7071
String targetFolderUri, String fileName,
7172
Integer schedulingConstraint) {
7273
this(component, arguments, targetFolderUri, fileName, schedulingConstraint, schedulingConstraint,
73-
true, false, TransitionMerging.HIERARCHICAL,
74+
true, false, false, TransitionMerging.HIERARCHICAL,
7475
null, new AnnotatablePreprocessableElements(null, null, null, null, null,
7576
InteractionCoverageCriterion.EVERY_INTERACTION, InteractionCoverageCriterion.EVERY_INTERACTION,
7677
null, DataflowCoverageCriterion.ALL_USE,
@@ -81,7 +82,7 @@ class Gamma2XstsTransformerSerializer {
8182
new(Component component, List<Expression> arguments,
8283
String targetFolderUri, String fileName,
8384
Integer minSchedulingConstraint, Integer maxSchedulingConstraint,
84-
boolean optimize, boolean optimizeArray,
85+
boolean optimize, boolean optimizeArray, boolean optimizeMessageQueues,
8586
TransitionMerging transitionMerging,
8687
PropertyPackage slicingProperties,
8788
AnnotatablePreprocessableElements annotatableElements,
@@ -95,6 +96,7 @@ class Gamma2XstsTransformerSerializer {
9596
//
9697
this.optimize = optimize
9798
this.optimizeArray = optimizeArray
99+
this.optimizeMessageQueues = optimizeMessageQueues
98100
this.transitionMerging = transitionMerging
99101
//
100102
this.slicingProperties = slicingProperties
@@ -119,7 +121,8 @@ class Gamma2XstsTransformerSerializer {
119121
targetFolderUri, fileName)
120122
slicerAnnotatorAndPropertyGenerator.execute
121123
val gammaToXSTSTransformer = new GammaToXstsTransformer(
122-
minSchedulingConstraint, maxSchedulingConstraint, true, true, optimizeArray,
124+
minSchedulingConstraint, maxSchedulingConstraint,
125+
true, true, optimizeArray, optimizeMessageQueues,
123126
transitionMerging, initialState, initialStateSetting)
124127
// Normal transformation
125128
val xSts = gammaToXSTSTransformer.execute(newGammaPackage)

0 commit comments

Comments
 (0)