Lines Matching refs:firstPloop
33 static bool equalIterationSpaces(ParallelOp firstPloop, in equalIterationSpaces() argument
35 if (firstPloop.getNumLoops() != secondPloop.getNumLoops()) in equalIterationSpaces()
43 return matchOperands(firstPloop.getLowerBound(), in equalIterationSpaces()
45 matchOperands(firstPloop.getUpperBound(), in equalIterationSpaces()
47 matchOperands(firstPloop.getStep(), secondPloop.getStep()); in equalIterationSpaces()
54 ParallelOp firstPloop, ParallelOp secondPloop, in haveNoReadsAfterWriteExceptSameIndex() argument
57 firstPloop.getBody()->walk([&](memref::StoreOp store) { in haveNoReadsAfterWriteExceptSameIndex()
94 verifyDependencies(ParallelOp firstPloop, ParallelOp secondPloop, in verifyDependencies() argument
96 if (!haveNoReadsAfterWriteExceptSameIndex(firstPloop, secondPloop, in verifyDependencies()
102 firstPloop.getBody()->getArguments()); in verifyDependencies()
104 secondPloop, firstPloop, secondToFirstPloopIndices)); in verifyDependencies()
108 isFusionLegal(ParallelOp firstPloop, ParallelOp secondPloop, in isFusionLegal() argument
110 return !hasNestedParallelOp(firstPloop) && in isFusionLegal()
112 equalIterationSpaces(firstPloop, secondPloop) && in isFusionLegal()
113 succeeded(verifyDependencies(firstPloop, secondPloop, in isFusionLegal()
118 static void fuseIfLegal(ParallelOp firstPloop, ParallelOp secondPloop, in fuseIfLegal() argument
121 firstToSecondPloopIndices.map(firstPloop.getBody()->getArguments(), in fuseIfLegal()
124 if (!isFusionLegal(firstPloop, secondPloop, firstToSecondPloopIndices)) in fuseIfLegal()
128 for (auto &op : firstPloop.getBody()->without_terminator()) in fuseIfLegal()
130 firstPloop.erase(); in fuseIfLegal()