[PATCH] D118102: [LoopInterchange] Prevent interchange with unsafe control-flow divergence inside inner loops (PR48057)

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 28 11:31:03 PST 2022


Meinersbur added a comment.

As mentioned in the LoopWG call, I don't think this has anything to do with dominance relations or diverging branches. Instead `store i16 %conv9.i, i16* @e` may be executed multiple times and the last written value written to `@e` must the value stored after the loop (the problem should occur even if the store is executed every time, i.e. not diverging). This is a classic output-dependency (write-after-write). I suggest to have a look at the dependency analysis and why it missed this case.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118102/new/

https://reviews.llvm.org/D118102



More information about the llvm-commits mailing list