[PATCH] D41162: [PM] port Rewrite Statepoints For GC to the new pass manager.

Fedor Sergeev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 13 02:25:08 PST 2017


fedor.sergeev created this revision.
fedor.sergeev added reviewers: sanjoy, anna, reames.

The port is nearly straightforward.
The only complication is related to the analyses handling,
since one of the analyses used in this module pass is domtree,
which is a function analysis. That requires asking for the results
of each function and disallows a single interface for run-on-module
pass action.

Decided to copy-paste the main body of this pass.
Most of its code is requesting analyses anyway, so not that much
of a copy-paste.

The rest of the code movement is to transform all the implementation
helper functions like stripNonValidData into non-member statics.

Extended all the related LLVM tests with new-pass-manager use.
No failures.


https://reviews.llvm.org/D41162

Files:
  include/llvm/InitializePasses.h
  include/llvm/Transforms/Scalar.h
  include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h
  lib/Passes/PassBuilder.cpp
  lib/Passes/PassRegistry.def
  lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  lib/Transforms/Scalar/Scalar.cpp
  test/Transforms/RewriteStatepointsForGC/base-pointers-1.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-10.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-11.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-12.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-13.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-2.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-3.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-4.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-5.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-6.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-7.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-8.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers-9.ll
  test/Transforms/RewriteStatepointsForGC/base-pointers.ll
  test/Transforms/RewriteStatepointsForGC/base-vector.ll
  test/Transforms/RewriteStatepointsForGC/basic.ll
  test/Transforms/RewriteStatepointsForGC/basics.ll
  test/Transforms/RewriteStatepointsForGC/call-gc-result.ll
  test/Transforms/RewriteStatepointsForGC/codegen-cond.ll
  test/Transforms/RewriteStatepointsForGC/constants.ll
  test/Transforms/RewriteStatepointsForGC/deopt-intrinsic-cconv.ll
  test/Transforms/RewriteStatepointsForGC/deopt-intrinsic.ll
  test/Transforms/RewriteStatepointsForGC/deopt-lowering-attrs.ll
  test/Transforms/RewriteStatepointsForGC/deref-pointers.ll
  test/Transforms/RewriteStatepointsForGC/drop-invalid-metadata.ll
  test/Transforms/RewriteStatepointsForGC/gc-relocate-creation.ll
  test/Transforms/RewriteStatepointsForGC/invokes.ll
  test/Transforms/RewriteStatepointsForGC/leaf-function.ll
  test/Transforms/RewriteStatepointsForGC/libcall.ll
  test/Transforms/RewriteStatepointsForGC/live-vector-nosplit.ll
  test/Transforms/RewriteStatepointsForGC/liveness-basics.ll
  test/Transforms/RewriteStatepointsForGC/patchable-statepoints.ll
  test/Transforms/RewriteStatepointsForGC/preprocess.ll
  test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll
  test/Transforms/RewriteStatepointsForGC/relocation.ll
  test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll
  test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll
  test/Transforms/RewriteStatepointsForGC/statepoint-attrs.ll
  test/Transforms/RewriteStatepointsForGC/statepoint-calling-conventions.ll
  test/Transforms/RewriteStatepointsForGC/statepoint-coreclr.ll
  test/Transforms/RewriteStatepointsForGC/statepoint-format.ll
  test/Transforms/RewriteStatepointsForGC/two-invokes-one-landingpad.ll
  test/Transforms/RewriteStatepointsForGC/vector-bitcast.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41162.126700.patch
Type: text/x-patch
Size: 36072 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171213/f406dbaf/attachment.bin>


More information about the llvm-commits mailing list