[ZoneAlgo] Add motivation for exception. NFC.

Suggested-by: Hongbin Zheng <etherzhhb@gmail.com>
llvm-svn: 310455
This commit is contained in:
Michael Kruse 2017-08-09 09:29:15 +00:00
parent a9033aaba2
commit 8756b3fbec
1 changed files with 20 additions and 0 deletions

View File

@ -281,6 +281,26 @@ ZoneAlgorithm::ZoneAlgorithm(const char *PassName, Scop *S, LoopInfo *LI)
/// Check if all stores in @p Stmt store the very same value.
///
/// This covers a special situation occurring in Polybench's
/// covariance/correlation (which is typical for algorithms that cover symmetric
/// matrices):
///
/// for (int i = 0; i < n; i += 1)
/// for (int j = 0; j <= i; j += 1) {
/// double x = ...;
/// C[i][j] = x;
/// C[j][i] = x;
/// }
///
/// For i == j, the same value is written twice to the same element.Double
/// writes to the same element are not allowed in DeLICM because its algorithm
/// does not see which of the writes is effective.But if its the same value
/// anyway, it doesn't matter.
///
/// LLVM passes, however, cannot simplify this because the write is necessary
/// for i != j (unless it would add a condition for one of the writes to occur
/// only if i != j).
///
/// TODO: In the future we may want to extent this to make the checks
/// specific to different memory locations.
static bool onlySameValueWrites(ScopStmt *Stmt) {