Skip to content

Commit 98c9cf3

Browse files
author
Volker Waurich
committed
- fixed bug of the description of nodes for arrays
- updated some functions for new datatypes git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@16610 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent cf2e82d commit 98c9cf3

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

Compiler/BackEnd/HpcOmTaskGraph.mo

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -727,9 +727,10 @@ algorithm
727727
eqString =stringCharListString(eqDescLst);
728728
//get the variable string
729729
varLst = BackendVariable.varList(orderedVars);
730-
var = listGet(varLst,arrayGet(ass2,i));
731-
varString = getVarString(var);
732-
desc = ("ARRAY:"+&eqString +& " FOR " +& varString);
730+
//var = listGet(varLst,arrayGet(ass2,i));
731+
//varString = getVarString(var);
732+
//desc = ("ARRAY:"+&eqString +& " FOR " +& varString);
733+
desc = ("ARRAY:"+&eqString +& " FOR THE VARS: " +& stringDelimitList(List.map1(vs,List.getIndexFirst,List.map(varLst,getVarString))," AND "));
733734
descLst = desc::iEqDesc;
734735
then
735736
descLst;
@@ -1840,7 +1841,7 @@ algorithm
18401841
inComps := listArray(List.deletePositions(arrayList(inComps),List.map1(cutNodes,intSub,1)));
18411842
varSccMapping := removeContinuousEntries(varSccMapping,cutNodes);
18421843
eqSccMapping := removeContinuousEntries(eqSccMapping,cutNodes);
1843-
(_,rootNodes,_) := List.intersection1OnTrue(rootNodes,cutNodes,intEq); //TODO: this has to be updated
1844+
(_,rootNodes,_) := List.intersection1OnTrue(rootNodes,cutNodes,intEq); //TODO: this has to be updated(When cutting out When-nodes new roots arise)
18441845
rangeLst := List.intRange(arrayLength(nodeMark));
18451846
nodeMark := List.fold1(rangeLst, markRemovedNodes,cutNodes,nodeMark);
18461847
graphDataOut :=TASKGRAPHMETA(inComps,varSccMapping,eqSccMapping,rootNodes,nodeNames,nodeDescs,exeCosts,commCosts,nodeMark);
@@ -2502,46 +2503,46 @@ protected function getCommunicationCost " gets the communication cost for an edg
25022503
author: waurich TUD 2013-06."
25032504
input Integer parentIdx;
25042505
input Integer childIdx;
2505-
input array<list<tuple<Integer,Integer>>> commCosts;
2506+
input array<list<tuple<Integer,Integer,Integer>>> commCosts;
25062507
output Integer costOut;
25072508
protected
2508-
list<tuple<Integer,Integer>> commRow;
2509-
tuple<Integer,Integer> commEntry;
2509+
list<tuple<Integer,Integer,Integer>> commRow;
2510+
tuple<Integer,Integer,Integer> commEntry;
25102511
algorithm
25112512
commRow := arrayGet(commCosts,parentIdx);
25122513
commEntry := getTupleByFirstEntry(commRow,childIdx);
2513-
(_,costOut) := commEntry;
2514+
(_,costOut,_) := commEntry;
25142515
end getCommunicationCost;
25152516

25162517

2517-
protected function getTupleByFirstEntry " gets the tuple of a list<tuple> whose first entry correpsonds to valueIn.
2518+
protected function getTupleByFirstEntry " gets the tuple of a list<tuple> whose first entry corresponds to valueIn.
25182519
author:Waurich TUD 2013-06"
2519-
input list<tuple<Integer,Integer>> tplLstIn;
2520+
input list<tuple<Integer,Integer,Integer>> tplLstIn;
25202521
input Integer valueIn;
2521-
output tuple<Integer,Integer> tpleOut;
2522+
output tuple<Integer,Integer,Integer> tpleOut;
25222523
algorithm
25232524
tpleOut := matchcontinue(tplLstIn,valueIn)
25242525
local
25252526
Integer tplValue;
2526-
tuple<Integer,Integer> tplTmp;
2527-
tuple<Integer,Integer> head;
2528-
list<tuple<Integer,Integer>> rest;
2527+
tuple<Integer,Integer,Integer> tplTmp;
2528+
tuple<Integer,Integer,Integer> head;
2529+
list<tuple<Integer,Integer,Integer>> rest;
25292530
case(head::rest,_)
25302531
equation
2531-
(tplValue,_) = head;
2532+
(tplValue,_,_) = head;
25322533
false = intEq(tplValue,valueIn);
25332534
tplTmp = getTupleByFirstEntry(rest,valueIn);
25342535
then
25352536
tplTmp;
25362537
case(head::rest,_)
25372538
equation
2538-
(tplValue,_) = head;
2539+
(tplValue,_,_) = head;
25392540
true = intEq(tplValue,valueIn);
25402541
then
25412542
head;
25422543
case({},_)
25432544
equation
2544-
print("the value "+&intString(valueIn)+&" can not be found in the tuple list \n");
2545+
print("getCommunicationCosts failed! - the value "+&intString(valueIn)+&" can not be found in the list of edges\n");
25452546
then
25462547
fail();
25472548
end matchcontinue;
@@ -4035,6 +4036,6 @@ algorithm
40354036
coords := ((xCoord,parallelSetIdx*levelInterval));
40364037
nodeCoordsOut := arrayUpdate(nodeCoordsIn,compIdx,coords);
40374038
end getYCoordForNode;
4038-
4039+
40394040

40404041
end HpcOmTaskGraph;

0 commit comments

Comments
 (0)