[PATCH] D137707: Move "auto-init" instructions to the dominator of their users

serge via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 5 13:49:51 PST 2022


serge-sans-paille updated this revision to Diff 480228.
serge-sans-paille added a comment.

Take into account memory fences, call sites etc so that the instruction move respects memory order enforced by memory barriers.

This is achieved through MemorySSA, which makes the pass effortlessly more generic.

There a re still a few test to be done on my side, but I'd love to have feedback from @efriedma on the approach first.


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

https://reviews.llvm.org/D137707

Files:
  llvm/include/llvm/Transforms/Utils/MoveAutoInit.h
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Passes/PassBuilderPipelines.cpp
  llvm/lib/Passes/PassRegistry.def
  llvm/lib/Transforms/Utils/CMakeLists.txt
  llvm/lib/Transforms/Utils/MoveAutoInit.cpp
  llvm/test/Other/new-pm-defaults.ll
  llvm/test/Other/new-pm-thinlto-defaults.ll
  llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
  llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
  llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
  llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
  llvm/test/Transforms/MoveAutoInit/branch.ll
  llvm/test/Transforms/MoveAutoInit/fence.ll
  llvm/test/Transforms/MoveAutoInit/loop.ll
  llvm/test/Transforms/MoveAutoInit/scalar.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D137707.480228.patch
Type: text/x-patch
Size: 32541 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221205/965a1d4e/attachment.bin>


More information about the llvm-commits mailing list