Lines Matching refs:DepMatrix
80 static void printDepMatrix(CharMatrix &DepMatrix) { in printDepMatrix() argument
81 for (auto &Row : DepMatrix) { in printDepMatrix()
89 static bool populateDependencyMatrix(CharMatrix &DepMatrix, unsigned Level, in populateDependencyMatrix() argument
173 DepMatrix.push_back(Dep); in populateDependencyMatrix()
174 if (DepMatrix.size() > MaxMemInstrCount) { in populateDependencyMatrix()
188 static void interChangeDependencies(CharMatrix &DepMatrix, unsigned FromIndx, in interChangeDependencies() argument
190 for (unsigned I = 0, E = DepMatrix.size(); I < E; ++I) in interChangeDependencies()
191 std::swap(DepMatrix[I][ToIndx], DepMatrix[I][FromIndx]); in interChangeDependencies()
196 static bool isOuterMostDepPositive(CharMatrix &DepMatrix, unsigned Row, in isOuterMostDepPositive() argument
199 if (DepMatrix[Row][i] == '<') in isOuterMostDepPositive()
201 if (DepMatrix[Row][i] == '>') in isOuterMostDepPositive()
209 static bool containsNoDependence(CharMatrix &DepMatrix, unsigned Row, in containsNoDependence() argument
212 if (DepMatrix[Row][i] != '=' && DepMatrix[Row][i] != 'S' && in containsNoDependence()
213 DepMatrix[Row][i] != 'I') in containsNoDependence()
219 static bool validDepInterchange(CharMatrix &DepMatrix, unsigned Row, in validDepInterchange() argument
222 if (isOuterMostDepPositive(DepMatrix, Row, OuterLoopId)) in validDepInterchange()
246 if (!containsNoDependence(DepMatrix, Row, OuterLoopId)) in validDepInterchange()
257 static bool isLegalToInterChangeLoops(CharMatrix &DepMatrix, in isLegalToInterChangeLoops() argument
260 unsigned NumRows = DepMatrix.size(); in isLegalToInterChangeLoops()
263 char InnerDep = DepMatrix[Row][InnerLoopId]; in isLegalToInterChangeLoops()
264 char OuterDep = DepMatrix[Row][OuterLoopId]; in isLegalToInterChangeLoops()
267 if (!validDepInterchange(DepMatrix, Row, OuterLoopId, InnerDep, OuterDep)) in isLegalToInterChangeLoops()
333 CharMatrix &DepMatrix);
380 CharMatrix &DepMatrix);
1061 CharMatrix &DepMatrix) { in canInterchangeLoops() argument
1062 if (!isLegalToInterChangeLoops(DepMatrix, InnerLoopId, OuterLoopId)) { in canInterchangeLoops()
1208 CharMatrix &DepMatrix) { in isProfitableForVectorization() argument
1212 for (auto &Row : DepMatrix) { in isProfitableForVectorization()
1222 return !DepMatrix.empty(); in isProfitableForVectorization()
1227 CharMatrix &DepMatrix) { in isProfitable() argument
1243 if (isProfitableForVectorization(InnerLoopId, OuterLoopId, DepMatrix)) in isProfitable()