Skip to content

Commit

Permalink
avoid List.intRange in conjunction with for loops
Browse files Browse the repository at this point in the history
  • Loading branch information
hkiel authored and OpenModelica-Hudson committed May 14, 2016
1 parent f1fc675 commit 8f3825c
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 9 deletions.
6 changes: 3 additions & 3 deletions Compiler/BackEnd/CommonSubExpression.mo
Expand Up @@ -1212,15 +1212,15 @@ algorithm
//eqAtts := List.threadMap(List.fill(false, arrayLength(m)), List.fill("", arrayLength(m)), Util.makeTuple);
//BackendDump.dumpBipartiteGraphStrongComponent2(pathVars, eqs, m, varAtts, eqAtts, "shortenPaths"+stringDelimitList(List.map(partition,intString),"_"));

for varIdx in List.intRange(arrayLength(mT)) loop
adjEqs := arrayGet(mT,varIdx);
for idx in 1:arrayLength(mT) loop
adjEqs := arrayGet(mT,idx);

if listLength(adjEqs)==2 then
//print("varIdx1 "+intString(varIdx)+"\n");
//print("adjEqs "+stringDelimitList(List.map(adjEqs,intString),",")+"\n");
adjEqs := List.map1(adjEqs,List.getIndexFirst,partition);
adjEqs := List.map1(adjEqs, Array.getIndexFirst, eqMap);
varIdx := arrayGet(pathVarIdxMap,varIdx);
varIdx := arrayGet(pathVarIdxMap,idx);
cses := SHORTCUT_CSE(adjEqs,varIdx)::cses;
end if;
end for; //end the variables
Expand Down
2 changes: 1 addition & 1 deletion Compiler/BackEnd/EvaluateFunctions.mo
Expand Up @@ -2288,7 +2288,7 @@ algorithm
(start,stop,step) := getRangeBounds(range);
true := intEq(step,1);
repl := replIn;
for i in List.intRange2(start,stop) loop
for i in start:stop loop
repl := BackendVarTransform.addReplacement(repl, ComponentReference.makeCrefIdent(iter,DAE.T_INTEGER_DEFAULT,{}),DAE.ICONST(i),NONE());
(stmts,((_,repl,_))) := evaluateFunctions_updateStatement(stmtsIn,(funcTreeIn,repl,i),{});

Expand Down
6 changes: 3 additions & 3 deletions Compiler/BackEnd/IndexReduction.mo
Expand Up @@ -1411,7 +1411,7 @@ protected
Integer size, numEqs, e;
algorithm
numEqs := arrayLength(inOrgEqns);
for e in List.intRange(numEqs) loop
for e in 1:numEqs loop
orgeqns := arrayGet(inOrgEqns,e);
size := BackendEquation.equationLstSize(orgeqns);
oCount := oCount + size;
Expand All @@ -1432,7 +1432,7 @@ protected
algorithm
outOrgEqns := inOrgEqns;
numEqs := arrayLength(inOrgEqns);
for e in List.intRange(numEqs) loop
for e in 1:numEqs loop
orgeqns := arrayGet(inOrgEqns,e);
(orgeqns,_) := BackendInline.inlineEqs(orgeqns, inA,{},false);
arrayUpdate(outOrgEqns,e,orgeqns);
Expand Down Expand Up @@ -2849,7 +2849,7 @@ protected
algorithm
outOrgEqns := inOrgEqns;
numEqs := arrayLength(inOrgEqns);
for e in List.intRange(numEqs) loop
for e in 1:numEqs loop
orgeqns := arrayGet(outOrgEqns,e);
if not listEmpty(orgeqns) then
(outEqnsLst, orgeqns) := match orgeqns
Expand Down
3 changes: 1 addition & 2 deletions Compiler/FrontEnd/Expression.mo
Expand Up @@ -1707,10 +1707,9 @@ algorithm
dims := expDimensions(eIn);
try
{DAE.DIM_INTEGER(integer=size)} := dims;
for i in List.intRange(size) loop
for i in size:-1:1 loop
eLstOut := makeASUBSingleSub(eIn,DAE.ICONST(i))::eLstOut;
end for;
eLstOut := listReverse(eLstOut);
else
eLstOut := {};
end try;
Expand Down

0 comments on commit 8f3825c

Please sign in to comment.