]> granicus.if.org Git - llvm/commit
[LoopDataPrefetch][AArch64FalkorHWPFFix] Preserve ScalarEvolution
authorGeoff Berry <gberry@codeaurora.org>
Wed, 16 Aug 2017 19:03:16 +0000 (19:03 +0000)
committerGeoff Berry <gberry@codeaurora.org>
Wed, 16 Aug 2017 19:03:16 +0000 (19:03 +0000)
commit8410517a1dce8d432387c2c4869716c695f5ab1f
treec9bbd904fd5834a33d77f18802d5ef248be460ba
parent10781fc2c1bafa59a3bbde1104f1fa8422c56a13
[LoopDataPrefetch][AArch64FalkorHWPFFix] Preserve ScalarEvolution

Summary:
Mark LoopDataPrefetch and AArch64FalkorHWPFFix passes as preserving
ScalarEvolution since they do not alter loop structure and should not
alter any SCEV values (though LoopDataPrefetch may introduce new
instructions that won't have cached SCEV values yet).

This can result in slight code differences, mainly w.r.t. nsw/nuw flags
on SCEVs, since these are computed somewhat lazily when a zext/sext
instruction is encountered.  As a result, passes after the modified
passes may see SCEVs with more nsw/nuw flags present.

Reviewers: sanjoy, anemet

Subscribers: aemerson, rengolin, mzolotukhin, javed.absar, kristof.beyls, mcrosier, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311032 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
lib/Transforms/Scalar/LoopDataPrefetch.cpp