Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.

Commit 2cb1d8f

Browse files
ptaeuberOpenModelica-Hudson
authored andcommitted
Improve module wrapFunctionCalls
- constant cse-variables are stored in globalKnownVars and only evaluated once before simulation instead of in each simulation step - SimEqns for parameters are created from the globalKnownVars - constant variables (eg. cse-variables) are solved before initialization in updateBoundParameters in *_08bnd.c - primaryParameters and allPrimaryParameters are removed - improved dumps and documentation
1 parent c224a4b commit 2cb1d8f

31 files changed

+938
-241
lines changed

Compiler/BackEnd/BackendDAE.mo

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,11 @@ uniontype Var "variables"
227227
.DAE.VarDirection varDirection "input, output or bidirectional";
228228
.DAE.VarParallelism varParallelism "parallelism of the variable. parglobal, parlocal or non-parallel";
229229
Type varType "built-in type or enumeration";
230-
Option< .DAE.Exp> bindExp "Binding expression e.g. for parameters";
230+
Option<.DAE.Exp> bindExp "Binding expression e.g. for parameters";
231+
Option<.DAE.Exp> tplExp "Variable is part of a tuple. Needed for the globalKnownVars and localKnownVars";
231232
.DAE.InstDims arryDim "array dimensions of non-expanded var";
232233
.DAE.ElementSource source "origin of variable";
233-
Option< .DAE.VariableAttributes> values "values on built-in attributes";
234+
Option<.DAE.VariableAttributes> values "values on built-in attributes";
234235
Option<TearingSelect> tearingSelectOption "value for TearingSelect";
235236
.DAE.Exp hideResult "expression from the hideResult annotation";
236237
Option<SCode.Comment> comment "this contains the comment and annotation from Absyn";

Compiler/BackEnd/BackendDAECreate.mo

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ algorithm
797797
ts = BackendDAEUtil.setTearingSelectAttribute(comment);
798798
hideResult = BackendDAEUtil.setHideResultAttribute(comment, b, name);
799799
then
800-
(BackendDAE.VAR(name, kind_1, dir, prl, tp, NONE(), dims, source, dae_var_attr, ts, hideResult, comment, ct, DAEUtil.toDAEInnerOuter(io), false));
800+
(BackendDAE.VAR(name, kind_1, dir, prl, tp, NONE(), NONE(), dims, source, dae_var_attr, ts, hideResult, comment, ct, DAEUtil.toDAEInnerOuter(io), false));
801801
end match;
802802
end lowerDynamicVar;
803803

@@ -862,7 +862,7 @@ algorithm
862862
ts = NONE();
863863
hideResult = BackendDAEUtil.setHideResultAttribute(comment, b, name);
864864
then
865-
(BackendDAE.VAR(name, kind_1, dir, prl, tp, bind, dims, source, dae_var_attr, ts, hideResult, comment, ct, DAEUtil.toDAEInnerOuter(io), false), iInlineHT, eqLst);
865+
(BackendDAE.VAR(name, kind_1, dir, prl, tp, bind, NONE(), dims, source, dae_var_attr, ts, hideResult, comment, ct, DAEUtil.toDAEInnerOuter(io), false), iInlineHT, eqLst);
866866

867867
else
868868
equation
@@ -1181,7 +1181,7 @@ algorithm
11811181
ts = NONE();
11821182
hideResult = DAE.BCONST(false);
11831183
then
1184-
BackendDAE.VAR(name, kind_1, dir, prl, tp, bind, dims, source, dae_var_attr, ts, hideResult, comment, ct, DAEUtil.toDAEInnerOuter(io), false);
1184+
BackendDAE.VAR(name, kind_1, dir, prl, tp, bind, NONE(), dims, source, dae_var_attr, ts, hideResult, comment, ct, DAEUtil.toDAEInnerOuter(io), false);
11851185
end match;
11861186
end lowerExtObjVar;
11871187

@@ -1845,7 +1845,7 @@ algorithm
18451845
outVars := BackendDAE.VAR (
18461846
varName = cr, varKind = BackendDAE.VARIABLE(),
18471847
varDirection = DAE.BIDIR(), varParallelism = DAE.NON_PARALLEL(),
1848-
varType = DAE.T_CLOCK_DEFAULT, bindExp = NONE(),
1848+
varType = DAE.T_CLOCK_DEFAULT, bindExp = NONE(), tplExp = NONE(),
18491849
arryDim = {}, source = DAE.emptyElementSource,
18501850
values = NONE(), tearingSelectOption = SOME(BackendDAE.DEFAULT()), hideResult = DAE.BCONST(false),
18511851
comment = NONE(), connectorType = DAE.NON_CONNECTOR(),

Compiler/BackEnd/BackendDAEOptimize.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5545,7 +5545,7 @@ protected
55455545
algorithm
55465546
(BackendDAE.DAE(eqs, shared), _) := BackendDAEUtil.mapEqSystemAndFold(inDAE, addTimeAsState1, 0);
55475547
orderedVars := BackendVariable.emptyVars();
5548-
var := BackendDAE.VAR(DAE.crefTimeState, BackendDAE.STATE(1, NONE()), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
5548+
var := BackendDAE.VAR(DAE.crefTimeState, BackendDAE.STATE(1, NONE()), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
55495549
var := BackendVariable.setVarFixed(var, true);
55505550
var := BackendVariable.setVarStartValue(var, DAE.CREF(DAE.crefTime, DAE.T_REAL_DEFAULT));
55515551
orderedVars := BackendVariable.addVar(var, orderedVars);

Compiler/BackEnd/BackendDAEUtil.mo

Lines changed: 62 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ protected
381381
algorithm
382382
name := Expression.reductionIterName(iter);
383383
cr := ComponentReference.makeCrefIdent(name,DAE.T_INTEGER_DEFAULT,{});
384-
backendVar := BackendDAE.VAR(cr, BackendDAE.VARIABLE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_INTEGER_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
384+
backendVar := BackendDAE.VAR(cr, BackendDAE.VARIABLE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_INTEGER_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
385385
end makeIterVariable;
386386

387387
protected function checkEquationSize"author: Frenkel TUD 2010-12
@@ -6433,26 +6433,27 @@ algorithm
64336433
Boolean unreplaceable;
64346434
String name;
64356435
Option<BackendDAE.Var> v;
6436+
Option<DAE.Exp> tplExp;
64366437

64376438
case NONE()
64386439
then (NONE(), inTypeA);
64396440

6440-
case SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, SOME(e1), instdims, source, attr, ts, hideResult, comment, ct, io, unreplaceable)) equation
6441+
case SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, SOME(e1), tplExp, instdims, source, attr, ts, hideResult, comment, ct, io, unreplaceable)) equation
64416442
(e1_, ext_arg_1) = func(e1, inTypeA);
64426443
(attr_, ext_arg_2) = traverseBackendDAEVarAttr(attr, func, ext_arg_1);
64436444
if referenceEq(e1,e1_) and referenceEq(attr,attr_) then
64446445
v = inVar;
64456446
else
6446-
v = SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, SOME(e1_), instdims, source, attr_, ts, hideResult, comment, ct, io, unreplaceable));
6447+
v = SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, SOME(e1_), tplExp, instdims, source, attr_, ts, hideResult, comment, ct, io, unreplaceable));
64476448
end if;
64486449
then (v, ext_arg_2);
64496450

6450-
case SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, NONE(), instdims, source, attr, ts, hideResult, comment, ct, io, unreplaceable)) equation
6451+
case SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, NONE(), tplExp, instdims, source, attr, ts, hideResult, comment, ct, io, unreplaceable)) equation
64516452
(attr_, ext_arg_2) = traverseBackendDAEVarAttr(attr, func, inTypeA);
64526453
if referenceEq(attr,attr_) then
64536454
v = inVar;
64546455
else
6455-
v = SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, NONE(), instdims, source, attr_, ts, hideResult, comment, ct, io, unreplaceable));
6456+
v = SOME(BackendDAE.VAR(cref, varKind, varDirection, varParallelism, varType, NONE(), tplExp, instdims, source, attr_, ts, hideResult, comment, ct, io, unreplaceable));
64566457
end if;
64576458
then (v, ext_arg_2);
64586459

@@ -6862,8 +6863,6 @@ public function getSolvedSystem "Run the equation system pipeline."
68626863
output Boolean outUseHomotopy "true if homotopy(...) is used during initialization";
68636864
output Option<BackendDAE.BackendDAE> outInitDAE_lambda0;
68646865
output list<BackendDAE.Equation> outRemovedInitialEquationLst;
6865-
output list<BackendDAE.Var> outPrimaryParameters "already sorted";
6866-
output list<BackendDAE.Var> outAllPrimaryParameters "already sorted";
68676866
protected
68686867
BackendDAE.BackendDAE dae, simDAE;
68696868
list<tuple<BackendDAEFunc.optimizationModule, String>> preOptModules;
@@ -6920,7 +6919,7 @@ algorithm
69206919
end if;
69216920

69226921
// generate system for initialization
6923-
(outInitDAE, outUseHomotopy, outInitDAE_lambda0, outRemovedInitialEquationLst, outPrimaryParameters, outAllPrimaryParameters, globalKnownVars) := Initialization.solveInitialSystem(dae);
6922+
(outInitDAE, outUseHomotopy, outInitDAE_lambda0, outRemovedInitialEquationLst, globalKnownVars) := Initialization.solveInitialSystem(dae);
69246923

69256924
// use function tree from initDAE further for simDAE
69266925
simDAE := BackendDAEUtil.setFunctionTree(dae, BackendDAEUtil.getFunctions(outInitDAE.shared));
@@ -6937,6 +6936,9 @@ algorithm
69376936
// post-optimization phase
69386937
outSimDAE := postOptimizeDAE(simDAE, postOptModules, matchingAlgorithm, daeHandler);
69396938

6939+
// sort the globalKnownVars
6940+
outSimDAE := sortGlobalKnownVarsInDAE(outSimDAE);
6941+
69406942
if Flags.isSet(Flags.DUMP_INDX_DAE) then
69416943
BackendDump.dumpBackendDAE(outSimDAE, "dumpindxdae");
69426944
if Flags.isSet(Flags.ADDITIONAL_GRAPHVIZ_DUMP) then
@@ -7304,6 +7306,58 @@ algorithm
73047306
//fcall2(Flags.DUMP_EQNINORDER, BackendDump.dumpEqnsSolved, outDAE, "system for jacobians");
73057307
end getSolvedSystemforJacobians;
73067308

7309+
protected function sortGlobalKnownVarsInDAE "
7310+
author: ptaeuber
7311+
This function adds the external objects to globalKnownVars and sorts the globalKnownVars"
7312+
input output BackendDAE.BackendDAE backendDAE;
7313+
protected
7314+
BackendDAE.Variables globalKnownVars, globalKnownVars_sorted;
7315+
BackendDAE.EquationArray parameterEqns;
7316+
BackendDAE.EqSystem paramSystem;
7317+
BackendDAE.IncidenceMatrix m;
7318+
BackendDAE.Var var;
7319+
array<Integer> ass1, ass2;
7320+
list<list<Integer>> comps;
7321+
list<Integer> flatComps;
7322+
algorithm
7323+
globalKnownVars := backendDAE.shared.globalKnownVars;
7324+
globalKnownVars := BackendVariable.addVariables(backendDAE.shared.externalObjects, globalKnownVars);
7325+
parameterEqns := BackendEquation.emptyEqns();
7326+
parameterEqns := BackendVariable.traverseBackendDAEVars(globalKnownVars, createParameterEquations, parameterEqns);
7327+
7328+
paramSystem := BackendDAEUtil.createEqSystem(globalKnownVars, parameterEqns);
7329+
(m, _) := BackendDAEUtil.incidenceMatrix(paramSystem, BackendDAE.NORMAL(), NONE());
7330+
(ass1, ass2) := Matching.PerfectMatching(m);
7331+
comps := Sorting.Tarjan(m, ass1);
7332+
flatComps := list(Initialization.flattenParamComp(comp, globalKnownVars) for comp in comps);
7333+
7334+
globalKnownVars_sorted := BackendVariable.emptyVars();
7335+
for i in flatComps loop
7336+
var := BackendVariable.getVarAt(globalKnownVars, i);
7337+
globalKnownVars_sorted := BackendVariable.addVar(var, globalKnownVars_sorted);
7338+
end for;
7339+
7340+
backendDAE := setDAEGlobalKnownVars(backendDAE, globalKnownVars_sorted);
7341+
end sortGlobalKnownVarsInDAE;
7342+
7343+
protected function createParameterEquations
7344+
input output BackendDAE.Var var;
7345+
input output BackendDAE.EquationArray parameterEqns;
7346+
protected
7347+
DAE.Exp lhs, rhs;
7348+
BackendDAE.Equation eqn;
7349+
algorithm
7350+
lhs := BackendVariable.varExp(var);
7351+
try
7352+
rhs := BackendVariable.varBindExpStartValue(var);
7353+
else
7354+
rhs := DAE.RCONST(0.0);
7355+
end try;
7356+
eqn := BackendDAE.EQUATION(lhs, rhs, DAE.emptyElementSource, BackendDAE.EQ_ATTR_DEFAULT_BINDING);
7357+
parameterEqns := BackendEquation.addEquation(eqn, parameterEqns);
7358+
end createParameterEquations;
7359+
7360+
73077361
/*************************************************
73087362
* index reduction method Selection
73097363
************************************************/

Compiler/BackEnd/BackendDump.mo

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2360,7 +2360,8 @@ algorithm
23602360
unreplaceableStr := if inVar.unreplaceable then " unreplaceable" else "";
23612361
dimensions := ExpressionDump.dimensionsString(inVar.arryDim);
23622362
dimensions := if dimensions <> "" then " [" + dimensions + "]" else "";
2363-
outStr := DAEDump.dumpDirectionStr(inVar.varDirection) + ComponentReference.printComponentRefStr(inVar.varName) + ":"
2363+
outStr := DAEDump.dumpDirectionStr(inVar.varDirection) + ComponentReference.printComponentRefStr(inVar.varName)
2364+
+ (if isSome(inVar.tplExp) then " in " + ExpressionDump.printExpStr(Util.getOption(inVar.tplExp)) else "") + ":"
23642365
+ kindString(inVar.varKind) + "(" + connectorTypeString(inVar.connectorType) + attributesString(inVar.values)
23652366
+ ") " + optExpressionString(inVar.bindExp, "") + DAEDump.dumpCommentAnnotationStr(inVar.comment)
23662367
+ stringDelimitList(paths_lst, ", ") + " type: " + DAEDump.daeTypeStr(inVar.varType) + dimensions + unreplaceableStr;

Compiler/BackEnd/BackendEquation.mo

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2256,7 +2256,7 @@ algorithm
22562256

22572257
case (_, DAE.RELATION(e1, DAE.LESS(_), e2, _, _)) equation
22582258
lhs = ComponentReference.makeCrefIdent(conCrefName, DAE.T_REAL_DEFAULT, {});
2259-
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
2259+
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
22602260
rhs = Expression.expSub(e1,e2);
22612261
(rhs, _) = ExpressionSimplify.simplify1(rhs);
22622262
expNull = DAE.RCONST(0.0);
@@ -2266,7 +2266,7 @@ algorithm
22662266

22672267
case (_, DAE.RELATION(e1, DAE.LESSEQ(_), e2, _, _)) equation
22682268
lhs = ComponentReference.makeCrefIdent(conCrefName, DAE.T_REAL_DEFAULT, {});
2269-
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
2269+
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
22702270
rhs = Expression.expSub(e1,e2);
22712271
(rhs, _) = ExpressionSimplify.simplify1(rhs);
22722272
expNull = DAE.RCONST(0.0);
@@ -2276,7 +2276,7 @@ algorithm
22762276

22772277
case (_, DAE.RELATION(e1, DAE.GREATER(_), e2, _, _)) equation
22782278
lhs = ComponentReference.makeCrefIdent(conCrefName, DAE.T_REAL_DEFAULT, {});
2279-
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
2279+
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
22802280
rhs = Expression.expSub(e2,e1);
22812281
(rhs, _) = ExpressionSimplify.simplify1(rhs);
22822282
expNull = DAE.RCONST(0.0);
@@ -2286,7 +2286,7 @@ algorithm
22862286

22872287
case (_, DAE.RELATION(e1, DAE.GREATEREQ(_), e2, _, _)) equation
22882288
lhs = ComponentReference.makeCrefIdent(conCrefName, DAE.T_REAL_DEFAULT, {});
2289-
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
2289+
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
22902290
rhs = Expression.expSub(e2,e1);
22912291
(rhs, _) = ExpressionSimplify.simplify(rhs);
22922292
expNull = DAE.RCONST(0.0);
@@ -2296,7 +2296,7 @@ algorithm
22962296

22972297
case (_, DAE.RELATION(e1, DAE.EQUAL(_), e2, _, _)) equation
22982298
lhs = ComponentReference.makeCrefIdent(conCrefName, DAE.T_REAL_DEFAULT, {});
2299-
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
2299+
dummyVar = BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
23002300
rhs = Expression.expSub(e2,e1);
23012301
(rhs, _) = ExpressionSimplify.simplify(rhs);
23022302
expNull = DAE.RCONST(0.0);
@@ -2311,7 +2311,7 @@ algorithm
23112311
end try;
23122312

23132313
lhs := ComponentReference.makeCrefIdent(conCrefName, DAE.T_REAL_DEFAULT, {});
2314-
dummyVar := BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
2314+
dummyVar := BackendDAE.VAR(lhs, conKind, DAE.OUTPUT(), DAE.NON_PARALLEL(), DAE.T_REAL_DEFAULT, NONE(), NONE(), {}, DAE.emptyElementSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), false);
23152315
dummyVar := BackendVariable.mergeAliasVars(dummyVar, v, false, knvars);
23162316
eqn := BackendDAE.SOLVED_EQUATION(lhs, e1, Source, BackendDAE.EQ_ATTR_DEFAULT_UNKNOWN);
23172317

Compiler/BackEnd/BackendInline.mo

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -519,14 +519,15 @@ algorithm
519519
DAE.ConnectorType ct;
520520
DAE.ElementSource source;
521521
Option<DAE.Exp> bind;
522+
Option<DAE.Exp> tplExp;
522523
Boolean b1,b2;
523524
DAE.VarInnerOuter io;
524525
Boolean unreplaceable;
525526

526-
case BackendDAE.VAR(varName,varKind,varDirection,varParallelism,varType,bind,arrayDim,source,values,ts,hideResult,comment,ct,io,unreplaceable) equation
527+
case BackendDAE.VAR(varName,varKind,varDirection,varParallelism,varType,bind,tplExp,arrayDim,source,values,ts,hideResult,comment,ct,io,unreplaceable) equation
527528
(bind,source,b1) = Inline.inlineExpOpt(bind,inElementList,source);
528529
(values1,source,b2) = Inline.inlineStartAttribute(values,source,inElementList);
529-
then (BackendDAE.VAR(varName,varKind,varDirection,varParallelism,varType,bind,arrayDim,source,values1,ts,hideResult,comment,ct,io,unreplaceable), b1 or b2);
530+
then (BackendDAE.VAR(varName,varKind,varDirection,varParallelism,varType,bind,tplExp,arrayDim,source,values1,ts,hideResult,comment,ct,io,unreplaceable), b1 or b2);
530531

531532
else (inVar, false);
532533
end match;

0 commit comments

Comments
 (0)