Port PlaceSafepoints pass to the new pass manager
authorJan Dupej <jandupej@microsoft.com>
Thu, 16 Feb 2023 20:37:16 +0000 (12:37 -0800)
committerArthur Eubanks <aeubanks@google.com>
Fri, 17 Feb 2023 17:17:49 +0000 (09:17 -0800)
commit1ceb79e2e075745f0c02aa8206227f60362e3743
tree2708d2b37b9966343afc2dfa6787d7ef34d4fc87
parent4180b29d206f2049b54111d0465e15d47900b66b
Port PlaceSafepoints pass to the new pass manager

This patch ports the PlaceSafepoints pass to the new pass manager as it is used by .NET/Mono. Compatibility with the legacy pass manager is maintained by adding PlaceSafepointsLegacyPass. This pass also depends on PlaceBackedgeSafepointsLegacyPass, which has been kept in the legacy-only variant, since it is apparently used only from PlaceSafepointsPass. It has been renamed, though, to indicate its legacy interface.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D136163
15 files changed:
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/Transforms/Scalar/PlaceSafepoints.h [new file with mode: 0644]
llvm/lib/Passes/PassBuilder.cpp
llvm/lib/Passes/PassRegistry.def
llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
llvm/lib/Transforms/Scalar/Scalar.cpp
llvm/test/Transforms/PlaceSafepoints/basic.ll
llvm/test/Transforms/PlaceSafepoints/call-in-loop.ll
llvm/test/Transforms/PlaceSafepoints/finite-loops.ll
llvm/test/Transforms/PlaceSafepoints/libcall.ll
llvm/test/Transforms/PlaceSafepoints/memset.ll
llvm/test/Transforms/PlaceSafepoints/no-statepoints.ll
llvm/test/Transforms/PlaceSafepoints/split-backedge.ll
llvm/test/Transforms/PlaceSafepoints/statepoint-coreclr.ll
llvm/test/Transforms/PlaceSafepoints/statepoint-frameescape.ll