1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00

[LoopInterchange] Loops with empty dependency matrix are safe.

The dependency matrix is only empty if no conflicting load/store
instructions have been found. In that case, it is safe to interchange.

For the LLVM test-suite, after this change around 1900 loops are
interchanged, whereas it is 15 before this change. On cortex-a57,
this gives an improvement of -0.57% on the geomean execution
time of SPEC2006, SPEC2000 and the test-suite. There are a
few small perf regressions, but I think we can improve on those
by making the cost model better.

Reviewers: karthikthecool, mcrosier

Reviewed by: karthikthecool

Differential Revision: https://reviews.llvm.org/D43236

llvm-svn: 326077
This commit is contained in:
Florian Hahn 2018-02-26 10:45:25 +00:00
parent 2e806a1d4c
commit 32006dcf64

View File

@ -173,9 +173,6 @@ static bool populateDependencyMatrix(CharMatrix &DepMatrix, unsigned Level,
}
}
// We don't have a DepMatrix to check legality return false.
if (DepMatrix.empty())
return false;
return true;
}