[DeLICM] Properly handle PHI writes becoming empty partial writes.
authorMichael Kruse <llvm@meinersbur.de>
Tue, 8 Aug 2017 11:27:12 +0000 (11:27 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Tue, 8 Aug 2017 11:27:12 +0000 (11:27 +0000)
commit27c010a22e5a856794adea22895325e0b6963e74
tree6b67437dd8a2611dc08d389c5347d5b59bbf6207
parent4003a98eec76915d93b4d7724620adc808b5f216
[DeLICM] Properly handle PHI writes becoming empty partial writes.

It is possible that partial writes are empty (write is never executed).
In this case, when in PHINode's incoming edge is never taken such that
the incoming write becomes an empty partial write, if enabled. The
issue is that when converting the union_map to an map, it's space
cannot be derived from the union_map itself. Rather, we need to
determine its space independently.

This fixes test-suite's MultiSource/Benchmarks/ASC_Sequoia/CrystalMk.

llvm-svn: 310348
polly/lib/Transform/DeLICM.cpp
polly/test/DeLICM/reduction_looprotate_alwaystaken.ll [new file with mode: 0644]