[PATCH] D56122: [CallSite removal] Migrate the statepoint GC infrastructure to use the `CallBase` class rather than `CallSite` wrappers.

Chandler Carruth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 28 01:28:58 PST 2018


chandlerc created this revision.
Herald added subscribers: hiraditya, mcrosier, sanjoy.

This is the largest remaining direct user of `CallSite` in the IR
headers.

I pushed this change down through most of the statepoint infrastructure,
completely removing the use of CallSite where I could reasonably do so.
I ended up making a couple of cut-points: generic call handling
(instcombine, TLI, SDAG). As soon as it hit truly generic handling with
users outside the immediate code, I simply transitioned into or out of
a `CallSite` to make this a reasonable sized chunk.

The next big chunk will be cleaning out the Analysis APIs, however it
may be unreasonable to make easy cut points there and so I may jointly
migrate all of Analysis and Transforms due to their tightly coupled
nature.

The last big chunk will be migrating codegen and SDAG.

Amidst these, of course, will be migrating implementation-only code in
various libraries when convenient. However, that is likely to be less
disruptive.


Repository:
  rL LLVM

https://reviews.llvm.org/D56122

Files:
  llvm/include/llvm/CodeGen/TargetLowering.h
  llvm/include/llvm/IR/Statepoint.h
  llvm/include/llvm/Transforms/Utils/Local.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  llvm/lib/IR/Statepoint.cpp
  llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
  llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  llvm/lib/Transforms/Utils/Local.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56122.179611.patch
Type: text/x-patch
Size: 57100 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181228/6e733abd/attachment.bin>


More information about the llvm-commits mailing list