Skip to content

Commit c45cf3f

Browse files
committed
- use predefined default equation attributes
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@21662 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 895e199 commit c45cf3f

File tree

3 files changed

+24
-24
lines changed

3 files changed

+24
-24
lines changed

Compiler/BackEnd/BackendDAE.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ uniontype Equation
268268
record ALGORITHM
269269
Integer size "size of equation" ;
270270
.DAE.Algorithm alg;
271-
.DAE.ElementSource source "origin of equation";
271+
.DAE.ElementSource source "origin of algorithm";
272272
.DAE.Expand expand "this algorithm was translated from an equation. we should not expand array crefs!";
273273
EquationAttributes attr;
274274
end ALGORITHM;

Compiler/BackEnd/BackendDAECreate.mo

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,7 @@ algorithm
792792
eqIn;
793793
case(assrt::rest,_,_)
794794
equation
795-
eq = BackendDAE.ALGORITHM(0,DAE.ALGORITHM_STMTS({assrt}),source,DAE.EXPAND(),BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()));
795+
eq = BackendDAE.ALGORITHM(0,DAE.ALGORITHM_STMTS({assrt}),source,DAE.EXPAND(),BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC);
796796
eqLst = buildAssertAlgorithms(rest,source,eq::eqIn);
797797
then
798798
eqLst;
@@ -1229,13 +1229,13 @@ algorithm
12291229
equation
12301230
(DAE.EQUALITY_EXPS(e1,e2), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(e1,e2), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
12311231
then
1232-
(BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inEquations,inREquations,inIEquations);
1232+
(BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inEquations,inREquations,inIEquations);
12331233

12341234
case (DAE.INITIALEQUATION(exp1 = e1,exp2 = e2,source = source),_,_,_,_)
12351235
equation
12361236
(DAE.EQUALITY_EXPS(e1,e2), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(e1,e2), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
12371237
then
1238-
(inEquations,inREquations,BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.INITIAL_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inIEquations);
1238+
(inEquations,inREquations,BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQ_ATTR_DEFAULT_INITIAL)::inIEquations);
12391239

12401240
case (DAE.EQUEQUATION(cr1 = cr1, cr2 = cr2,source = source),_,_,_,_)
12411241
equation
@@ -1250,14 +1250,14 @@ algorithm
12501250
e1 = Expression.crefExp(cr1);
12511251
(DAE.EQUALITY_EXPS(e1,e2), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(e1,e2), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
12521252
then
1253-
(BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inEquations,inREquations,inIEquations);
1253+
(BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inEquations,inREquations,inIEquations);
12541254

12551255
case (DAE.INITIALDEFINE(componentRef = cr1, exp = e2, source = source),_,_,_,_)
12561256
equation
12571257
e1 = Expression.crefExp(cr1);
12581258
(DAE.EQUALITY_EXPS(e1,e2), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(e1,e2), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
12591259
then
1260-
(inEquations,inREquations,BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inIEquations);
1260+
(inEquations,inREquations,BackendDAE.EQUATION(e1,e2,source,BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inIEquations);
12611261

12621262
case (DAE.COMPLEX_EQUATION(lhs = e1,rhs = e2,source = source),_,_,_,_)
12631263
equation
@@ -1271,7 +1271,7 @@ algorithm
12711271
(DAE.EQUALITY_EXPS(e1,e2), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(e1,e2), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
12721272
size = Expression.sizeOf(Expression.typeof(e1));
12731273
then
1274-
(inEquations,inREquations,BackendDAE.COMPLEX_EQUATION(size,e1,e2,source,BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inIEquations);
1274+
(inEquations,inREquations,BackendDAE.COMPLEX_EQUATION(size,e1,e2,source,BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inIEquations);
12751275

12761276
// equalityConstraint equations, moved to removed equations
12771277
case (DAE.ARRAY_EQUATION(dimension=dims, exp = e1 as DAE.ARRAY(array={}),array = e2 as DAE.CALL(path=path),source = source),_,_,_,_)
@@ -1343,7 +1343,7 @@ algorithm
13431343

13441344
case (DAE.TERMINATE(message=msg,source=source),_,_,_,_)
13451345
then
1346-
(inEquations,inREquations,BackendDAE.ALGORITHM(0, DAE.ALGORITHM_STMTS({DAE.STMT_TERMINATE(msg,source)}), source, DAE.NOT_EXPAND(), BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inIEquations);
1346+
(inEquations,inREquations,BackendDAE.ALGORITHM(0, DAE.ALGORITHM_STMTS({DAE.STMT_TERMINATE(msg,source)}), source, DAE.NOT_EXPAND(), BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inIEquations);
13471347

13481348
case (DAE.NORETCALL(exp = _),_,_,_,_)
13491349
equation
@@ -1842,14 +1842,14 @@ algorithm
18421842
case (DAE.EQUEQUATION(cr1 = cr, cr2 = cr2, source = source)::xs, _, _, _, _)
18431843
equation
18441844
e = Expression.crefExp(cr2);
1845-
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(1, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::iEquationLst, iReinitStatementLst);
1845+
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(1, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::iEquationLst, iReinitStatementLst);
18461846
then
18471847
(eqnl, reinit);
18481848

18491849
case (DAE.DEFINE(componentRef = cr, exp = e, source = source)::xs, _, _, _, _)
18501850
equation
18511851
(DAE.PARTIAL_EQUATION(e), source) = Inline.simplifyAndInlineEquationExp(DAE.PARTIAL_EQUATION(e), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
1852-
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(1, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::iEquationLst, iReinitStatementLst);
1852+
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(1, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::iEquationLst, iReinitStatementLst);
18531853
then
18541854
(eqnl, reinit);
18551855

@@ -1864,15 +1864,15 @@ algorithm
18641864
case (DAE.EQUATION(exp = (cre as DAE.CREF(componentRef = cr)), scalar = e, source = source)::xs, _, _, _, _)
18651865
equation
18661866
(DAE.EQUALITY_EXPS(_,e), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(cre,e), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
1867-
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(1, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::iEquationLst, iReinitStatementLst);
1867+
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(1, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::iEquationLst, iReinitStatementLst);
18681868
then
18691869
(eqnl, reinit);
18701870

18711871
case (DAE.COMPLEX_EQUATION(lhs = (cre as DAE.CREF(componentRef = cr)), rhs = e, source = source)::xs, _, _, _, _)
18721872
equation
18731873
size = Expression.sizeOf(Expression.typeof(cre));
18741874
(DAE.EQUALITY_EXPS(_,e), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(cre,e), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
1875-
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::iEquationLst, iReinitStatementLst);
1875+
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::iEquationLst, iReinitStatementLst);
18761876
then
18771877
(eqnl, reinit);
18781878

@@ -1904,7 +1904,7 @@ algorithm
19041904
equation
19051905
size = List.fold(Expression.dimensionsSizes(ds), intMul, 1);
19061906
(DAE.EQUALITY_EXPS(_,e), source) = Inline.simplifyAndInlineEquationExp(DAE.EQUALITY_EXPS(cre,e), (SOME(functionTree), {DAE.NORM_INLINE()}), source);
1907-
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::iEquationLst, iReinitStatementLst);
1907+
(eqnl, reinit) = lowerWhenEqn2(xs, inCond, functionTree, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::iEquationLst, iReinitStatementLst);
19081908
then
19091909
(eqnl, reinit);
19101910

@@ -1985,7 +1985,7 @@ algorithm
19851985
equation
19861986
size = Expression.sizeOf(ty);
19871987
then
1988-
lowerWhenTupleEqn(rest, inCond, e, source, i+1, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, DAE.TSUB(e, i, ty), NONE()), source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION())) ::iEquationLst);
1988+
lowerWhenTupleEqn(rest, inCond, e, source, i+1, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, DAE.TSUB(e, i, ty), NONE()), source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC) ::iEquationLst);
19891989
end match;
19901990
end lowerWhenTupleEqn;
19911991

@@ -2013,7 +2013,7 @@ algorithm
20132013
source = DAEUtil.mergeSources(iSource, source);
20142014
size = Expression.sizeOf(Expression.typeof(e));
20152015
then
2016-
lowerWhenIfEqns2(rest, inCond, iSource, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inEqns);
2016+
lowerWhenIfEqns2(rest, inCond, iSource, BackendDAE.WHEN_EQUATION(size, BackendDAE.WHEN_EQ(inCond, cr, e, NONE()), source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inEqns);
20172017
end match;
20182018
end lowerWhenIfEqns2;
20192019

@@ -2391,7 +2391,7 @@ algorithm
23912391
(alg, _) = Inline.inlineAlgorithm(alg, (SOME(functionTree), {DAE.NORM_INLINE()}));
23922392
crefLst = CheckModel.algorithmOutputs(alg, inCrefExpansion);
23932393
size = listLength(crefLst);
2394-
(eqns, reqns) = List.consOnBool(intGt(size, 0), BackendDAE.ALGORITHM(size, alg, source, inCrefExpansion, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION())), inEquations, inREquations);
2394+
(eqns, reqns) = List.consOnBool(intGt(size, 0), BackendDAE.ALGORITHM(size, alg, source, inCrefExpansion, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC), inEquations, inREquations);
23952395
then (eqns, reqns, inIEquations);
23962396

23972397
case (DAE.INITIALALGORITHM(algorithm_=alg, source=source), _, _, _, _, _)
@@ -2400,7 +2400,7 @@ algorithm
24002400
(alg, _) = Inline.inlineAlgorithm(alg, (SOME(functionTree), {DAE.NORM_INLINE()}));
24012401
crefLst = CheckModel.algorithmOutputs(alg, inCrefExpansion);
24022402
size = listLength(crefLst);
2403-
then (inEquations, inREquations, BackendDAE.ALGORITHM(size, alg, source, inCrefExpansion, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.INITIAL_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inIEquations);
2403+
then (inEquations, inREquations, BackendDAE.ALGORITHM(size, alg, source, inCrefExpansion, BackendDAE.EQ_ATTR_DEFAULT_INITIAL)::inIEquations);
24042404

24052405
// skipp asserts with condition=true
24062406
case (DAE.ASSERT(condition=DAE.BCONST(true)), _, _, _, _, _)
@@ -2413,16 +2413,16 @@ algorithm
24132413
(level, source, _,_) = Inline.inlineExp(level, (SOME(functionTree), {DAE.NORM_INLINE()}), source);
24142414
BackendDAEUtil.checkAssertCondition(cond, msg, level, DAEUtil.getElementSourceFileInfo(source));
24152415
alg = DAE.ALGORITHM_STMTS({DAE.STMT_ASSERT(cond, msg, level, source)});
2416-
then (inEquations, BackendDAE.ALGORITHM(0, alg, source, inCrefExpansion, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inREquations, inIEquations);
2416+
then (inEquations, BackendDAE.ALGORITHM(0, alg, source, inCrefExpansion, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inREquations, inIEquations);
24172417

24182418
case (DAE.TERMINATE(message=msg, source=source), _, _, _, _, _)
2419-
then (inEquations, BackendDAE.ALGORITHM(0, DAE.ALGORITHM_STMTS({DAE.STMT_TERMINATE(msg, source)}), source, inCrefExpansion, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inREquations, inIEquations);
2419+
then (inEquations, BackendDAE.ALGORITHM(0, DAE.ALGORITHM_STMTS({DAE.STMT_TERMINATE(msg, source)}), source, inCrefExpansion, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inREquations, inIEquations);
24202420

24212421
case (DAE.NORETCALL(exp=e, source=source), _, _, _, _, _)
24222422
equation
24232423
(e, source, _, _) = Inline.inlineExp(e, (SOME(functionTree), {DAE.NORM_INLINE()}), source);
24242424
alg = DAE.ALGORITHM_STMTS({DAE.STMT_NORETCALL(e, source)});
2425-
then (inEquations, BackendDAE.ALGORITHM(0, alg, source, inCrefExpansion, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::inREquations, inIEquations);
2425+
then (inEquations, BackendDAE.ALGORITHM(0, alg, source, inCrefExpansion, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::inREquations, inIEquations);
24262426

24272427
case (_, _, _, _, _, _)
24282428
equation
@@ -2665,7 +2665,7 @@ algorithm
26652665
(vars, knvars, extvars, avars, repl, eqns);
26662666
// if no alias selectable add as equation
26672667
case (_, _, _, _, _, _, _, _, _)
2668-
then (iVars, iKnVars, iExtVars, iAVars, iRepl, BackendDAE.EQUATION(exp1, exp2, source, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()))::iEqns);
2668+
then (iVars, iKnVars, iExtVars, iAVars, iRepl, BackendDAE.EQUATION(exp1, exp2, source, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC)::iEqns);
26692669
end matchcontinue;
26702670
end selectAlias;
26712671

Compiler/BackEnd/BackendDAEOptimize.mo

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2585,7 +2585,7 @@ algorithm
25852585
startExp = Expression.makePureBuiltinCall("$_start", {e}, tp);
25862586
e1 = DAE.BINARY(crefExp, DAE.SUB(DAE.T_REAL_DEFAULT), startExp);
25872587

2588-
eqn = BackendDAE.RESIDUAL_EQUATION(e1, DAE.emptyElementSource, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.INITIAL_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()));
2588+
eqn = BackendDAE.RESIDUAL_EQUATION(e1, DAE.emptyElementSource, BackendDAE.EQ_ATTR_DEFAULT_INITIAL);
25892589
then ((var,eqn::eqns));
25902590

25912591
else inTpl;
@@ -2614,7 +2614,7 @@ algorithm
26142614
_ = Expression.crefExp(cref);
26152615
e1 = DAE.BINARY(crefExp, DAE.SUB(DAE.T_REAL_DEFAULT), bindExp);
26162616

2617-
eqn = BackendDAE.RESIDUAL_EQUATION(e1, DAE.emptyElementSource, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.INITIAL_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()));
2617+
eqn = BackendDAE.RESIDUAL_EQUATION(e1, DAE.emptyElementSource, BackendDAE.EQ_ATTR_DEFAULT_INITIAL);
26182618
then ((var,eqn::eqns));
26192619

26202620
else inTpl;
@@ -6804,7 +6804,7 @@ algorithm
68046804

68056805
var = BackendDAE.VAR(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), BackendDAE.DISCRETE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_BOOL_DEFAULT, NONE(), NONE(), {}, inSource, NONE(), NONE(), DAE.NON_CONNECTOR());
68066806
var = BackendVariable.setVarFixed(var, true);
6807-
eqn = BackendDAE.EQUATION(DAE.CREF(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), DAE.T_BOOL_DEFAULT), condition, inSource, BackendDAE.EQUATION_ATTRIBUTES(false, BackendDAE.DYNAMIC_EQUATION(), BackendDAE.UNKNOWN_SUB_PARTITION()));
6807+
eqn = BackendDAE.EQUATION(DAE.CREF(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), DAE.T_BOOL_DEFAULT), condition, inSource, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC);
68086808

68096809
condition = DAE.CREF(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), DAE.T_BOOL_DEFAULT);
68106810
then (condition, {var}, {eqn}, index+1, ht);

0 commit comments

Comments
 (0)