Skip to content

Commit

Permalink
- do replacements also in known aliases
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@12575 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Jens Frenkel committed Aug 17, 2012
1 parent 7f96e62 commit 3b78a55
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions Compiler/BackEnd/BackendDAEOptimize.mo
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ protected import ExpressionSimplify;
protected import Error;
protected import Flags;
protected import Graph;
protected import HashTable4;
protected import HashSet;
protected import Inline;
protected import List;
Expand Down Expand Up @@ -1226,7 +1227,7 @@ algorithm
(osyst,oshared):=
match (b,syst,shared,repl,movedVars,movedAVars,meqns)
local
BackendDAE.Variables ordvars,knvars,exobj,ordvars1,knvars1,ordvars2,ordvars3,movedAVars1;
BackendDAE.Variables ordvars,knvars,exobj,ordvars1,knvars1,ordvars2,ordvars3;
BackendDAE.AliasVariables aliasVars;
BackendDAE.EquationArray eqns,remeqns,inieqns,eqns1;
array<DAE.Constraint> constrs;
Expand All @@ -1253,8 +1254,7 @@ algorithm
// replace moved vars in vars,knvars,aliasVars,ineqns,remeqns
(ordvars3,_) = BackendVariable.traverseBackendDAEVarsWithUpdate(ordvars2,replaceVarTraverser,repl);
// add alias variables
(movedAVars1,_) = BackendVariable.traverseBackendDAEVarsWithUpdate(movedAVars,replaceVarTraverser,repl);
aliasVars = BackendDAEUtil.addAliasVariables(BackendDAEUtil.varList(movedAVars1),aliasVars);
aliasVars = BackendDAEUtil.addAliasVariables(BackendDAEUtil.varList(movedAVars),aliasVars);
then
(BackendDAE.EQSYSTEM(ordvars3,eqns1,NONE(),NONE(),BackendDAE.NO_MATCHING()),BackendDAE.SHARED(knvars1,exobj,aliasVars,inieqns,remeqns,constrs,clsAttrs,cache,env,funcTree,einfo,eoc,btp,symjacs));
end match;
Expand All @@ -1271,7 +1271,9 @@ algorithm
match (b,inDAE,repl)
local
BackendDAE.Variables ordvars,knvars,exobj,knvars1;
BackendDAE.AliasVariables aliasVars;
HashTable2.HashTable varMappingsCref;
HashTable4.HashTable varMappingsExp;
BackendDAE.Variables aliasVars;
BackendDAE.EquationArray remeqns,inieqns,inieqns1,remeqns1;
array<DAE.Constraint> constrs;
array<DAE.ClassAttributes> clsAttrs;
Expand All @@ -1286,18 +1288,19 @@ algorithm
BackendDAE.EqSystems systs,systs1;
list<BackendDAE.Var> ordvarslst;
case (false,_,_) then inDAE;
case (true,BackendDAE.DAE(systs,BackendDAE.SHARED(knvars,exobj,aliasVars,inieqns,remeqns,constrs,clsAttrs,cache,env,funcTree,BackendDAE.EVENT_INFO(whenClauseLst,zeroCrossingLst),eoc,btp,symjacs)),repl)
case (true,BackendDAE.DAE(systs,BackendDAE.SHARED(knvars,exobj,BackendDAE.ALIASVARS(varMappingsCref,varMappingsExp,aliasVars),inieqns,remeqns,constrs,clsAttrs,cache,env,funcTree,BackendDAE.EVENT_INFO(whenClauseLst,zeroCrossingLst),eoc,btp,symjacs)),repl)
equation
ordvarslst = BackendVariable.equationSystemsVarsLst(systs,{});
ordvars = BackendDAEUtil.listVar(ordvarslst);
// replace moved vars in knvars,ineqns,remeqns
(aliasVars,_) = BackendVariable.traverseBackendDAEVarsWithUpdate(aliasVars,replaceVarTraverser,repl);
(knvars1,_) = BackendVariable.traverseBackendDAEVarsWithUpdate(knvars,replaceVarTraverser,repl);
(inieqns1,_) = BackendEquation.traverseBackendDAEEqnsWithUpdate(inieqns,replaceEquationTraverser,repl);
(remeqns1,_) = BackendEquation.traverseBackendDAEEqnsWithUpdate(remeqns,replaceEquationTraverser,repl);
(whenClauseLst1,_) = BackendDAETransform.traverseBackendDAEExpsWhenClauseLst(whenClauseLst,replaceWhenClauseTraverser,repl);
systs1 = removeSimpleEquationsUpdateWrapper(systs,{},repl);
then
BackendDAE.DAE(systs1,BackendDAE.SHARED(knvars1,exobj,aliasVars,inieqns1,remeqns1,constrs,clsAttrs,cache,env,funcTree,BackendDAE.EVENT_INFO(whenClauseLst1,zeroCrossingLst),eoc,btp,symjacs));
BackendDAE.DAE(systs1,BackendDAE.SHARED(knvars1,exobj,BackendDAE.ALIASVARS(varMappingsCref,varMappingsExp,aliasVars),inieqns1,remeqns1,constrs,clsAttrs,cache,env,funcTree,BackendDAE.EVENT_INFO(whenClauseLst1,zeroCrossingLst),eoc,btp,symjacs));
end match;
end removeSimpleEquationsShared;

Expand Down

0 comments on commit 3b78a55

Please sign in to comment.