diff options
author | Geoff Berry <gberry@codeaurora.org> | 2017-08-16 19:03:16 +0000 |
---|---|---|
committer | Geoff Berry <gberry@codeaurora.org> | 2017-08-16 19:03:16 +0000 |
commit | 8410517a1dce8d432387c2c4869716c695f5ab1f (patch) | |
tree | c9bbd904fd5834a33d77f18802d5ef248be460ba /lib/Target/AArch64/AArch64FalkorHWPFFix.cpp | |
parent | 10781fc2c1bafa59a3bbde1104f1fa8422c56a13 (diff) |
[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
Diffstat (limited to 'lib/Target/AArch64/AArch64FalkorHWPFFix.cpp')
-rw-r--r-- | lib/Target/AArch64/AArch64FalkorHWPFFix.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp b/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp index 4c429c76c3b..3dd82f648b1 100644 --- a/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp +++ b/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp @@ -92,9 +92,7 @@ public: AU.addRequired<LoopInfoWrapperPass>(); AU.addPreserved<LoopInfoWrapperPass>(); AU.addRequired<ScalarEvolutionWrapperPass>(); - // FIXME: For some reason, preserving SE here breaks LSR (even if - // this pass changes nothing). - // AU.addPreserved<ScalarEvolutionWrapperPass>(); + AU.addPreserved<ScalarEvolutionWrapperPass>(); } bool runOnFunction(Function &F) override; |