Skip to content

Commit 2091757

Browse files
author
Volker Waurich
committed
- fix bootstrapper
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@21039 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent aee9b98 commit 2091757

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

Compiler/BackEnd/Tearing.mo

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,7 @@ algorithm
799799
(outTVars,oMark) := matchcontinue(unsolvables,tSel_always,tSel_prefer,tSel_avoid,tSel_never,m,mt,mapEqnIncRow,mapIncRowEqn,size,vars,ishared,ass1,ass2,columark,mark,inTVars)
800800
local
801801
Integer tvar;
802+
array<Integer> ass1_;
802803
list<Integer> unassigned,rest,ass1List;
803804
BackendDAE.AdjacencyMatrixElementEnhanced vareqns;
804805
// if there are no unsolvables choose tvar by heuristic
@@ -846,16 +847,16 @@ algorithm
846847
Debug.fcall(Flags.TEARING_DUMP, print,"Variables with annotation attribute 'always' as tVars: " +& stringDelimitList(List.map(tSel_always,intString),",")+&"\n");
847848
// mark tearing var
848849
ass1List = markTVars(tSel_always,arrayList(ass1));
849-
ass1 = Util.arrayCopy(listArray(ass1List),ass1);
850+
ass1_ = Util.arrayCopy(listArray(ass1List),ass1);
850851
// equations not yet assigned containing the tvars
851852
vareqns = findVareqns(ass2,isAssignedSaveEnhanced,mt,tSel_always,{});
852853
Debug.fcall(Flags.TEARING_DUMPVERBOSE,print,"Assignable equations containing new tvars:\n");
853854
Debug.fcall(Flags.TEARING_DUMPVERBOSE,BackendDump.dumpAdjacencyRowEnhanced,vareqns);Debug.fcall(Flags.TEARING_DUMPVERBOSE,print,"\n");
854855
// cheap matching
855-
tearingBFS(vareqns,m,mt,mapEqnIncRow,mapIncRowEqn,size,ass1,ass2,columark,mark,{});
856+
tearingBFS(vareqns,m,mt,mapEqnIncRow,mapIncRowEqn,size,ass1_,ass2,columark,mark,{});
856857
// check for unassigned vars, if there some rerun
857-
unassigned = Matching.getUnassigned(size,ass1,{});
858-
(outTVars,oMark) = omcTearing3(unassigned,unsolvables,{},tSel_prefer,tSel_avoid,tSel_never,m,mt,mapEqnIncRow,mapIncRowEqn,size,vars,ishared,ass1,ass2,columark,mark+1,listAppend(tSel_always,inTVars));
858+
unassigned = Matching.getUnassigned(size,ass1_,{});
859+
(outTVars,oMark) = omcTearing3(unassigned,unsolvables,{},tSel_prefer,tSel_avoid,tSel_never,m,mt,mapEqnIncRow,mapIncRowEqn,size,vars,ishared,ass1_,ass2,columark,mark+1,listAppend(tSel_always,inTVars));
859860
then
860861
(outTVars,oMark);
861862
else

0 commit comments

Comments
 (0)