[PATCH] D97828: [LoopInterchange] Disallow interchange when memory accesses are guarded by control flow

Ta-Wei Tu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 2 20:29:40 PST 2021


TaWeiTu created this revision.
TaWeiTu added reviewers: fhahn, Whitney.
Herald added a subscriber: hiraditya.
TaWeiTu requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

If instructions that have side effects are guarded by control flow, 
the order of execution might differ after interchanging the loops
and results in incorrect behaviour (the branch condition may depends
on the execution order).

This fixes https://bugs.llvm.org/show_bug.cgi?id=48057


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D97828

Files:
  llvm/lib/Transforms/Scalar/LoopInterchange.cpp
  llvm/test/Transforms/LoopInterchange/pr48057.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97828.327657.patch
Type: text/x-patch
Size: 8180 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210303/b12fc20d/attachment.bin>


More information about the llvm-commits mailing list