Lines Matching refs:DepMatrix

79 static void printDepMatrix(CharMatrix &DepMatrix) {  in printDepMatrix()  argument
80 for (auto &Row : DepMatrix) { in printDepMatrix()
88 static bool populateDependencyMatrix(CharMatrix &DepMatrix, unsigned Level, in populateDependencyMatrix() argument
170 DepMatrix.push_back(Dep); in populateDependencyMatrix()
171 if (DepMatrix.size() > MaxMemInstrCount) { in populateDependencyMatrix()
185 static void interChangeDependencies(CharMatrix &DepMatrix, unsigned FromIndx, in interChangeDependencies() argument
187 for (unsigned I = 0, E = DepMatrix.size(); I < E; ++I) in interChangeDependencies()
188 std::swap(DepMatrix[I][ToIndx], DepMatrix[I][FromIndx]); in interChangeDependencies()
193 static bool isOuterMostDepPositive(CharMatrix &DepMatrix, unsigned Row, in isOuterMostDepPositive() argument
196 if (DepMatrix[Row][i] == '<') in isOuterMostDepPositive()
198 if (DepMatrix[Row][i] == '>') in isOuterMostDepPositive()
206 static bool containsNoDependence(CharMatrix &DepMatrix, unsigned Row, in containsNoDependence() argument
209 if (DepMatrix[Row][i] != '=' && DepMatrix[Row][i] != 'S' && in containsNoDependence()
210 DepMatrix[Row][i] != 'I') in containsNoDependence()
216 static bool validDepInterchange(CharMatrix &DepMatrix, unsigned Row, in validDepInterchange() argument
219 if (isOuterMostDepPositive(DepMatrix, Row, OuterLoopId)) in validDepInterchange()
243 if (!containsNoDependence(DepMatrix, Row, OuterLoopId)) in validDepInterchange()
254 static bool isLegalToInterChangeLoops(CharMatrix &DepMatrix, in isLegalToInterChangeLoops() argument
257 unsigned NumRows = DepMatrix.size(); in isLegalToInterChangeLoops()
260 char InnerDep = DepMatrix[Row][InnerLoopId]; in isLegalToInterChangeLoops()
261 char OuterDep = DepMatrix[Row][OuterLoopId]; in isLegalToInterChangeLoops()
264 if (!validDepInterchange(DepMatrix, Row, OuterLoopId, InnerDep, OuterDep)) in isLegalToInterChangeLoops()
304 CharMatrix &DepMatrix);
363 CharMatrix &DepMatrix,
990 CharMatrix &DepMatrix) { in canInterchangeLoops() argument
991 if (!isLegalToInterChangeLoops(DepMatrix, InnerLoopId, OuterLoopId)) { in canInterchangeLoops()
1142 CharMatrix &DepMatrix) { in isProfitableForVectorization() argument
1146 for (auto &Row : DepMatrix) { in isProfitableForVectorization()
1156 return !DepMatrix.empty(); in isProfitableForVectorization()
1161 unsigned OuterLoopId, CharMatrix &DepMatrix, in isProfitable() argument
1189 if (isProfitableForVectorization(InnerLoopId, OuterLoopId, DepMatrix)) in isProfitable()