Add a GCStrategy for CoreCLR
authorSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>
Wed, 20 May 2015 01:07:23 +0000 (01:07 +0000)
committerSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>
Wed, 20 May 2015 01:07:23 +0000 (01:07 +0000)
commit95d08bce87645180ff63ef7468f8042b559ca0f6
tree56f90dddc2041bd25a7b92566e3d014b53673afd
parenta6f501cb9734934b8a2ddba2066f558661972573
Add a GCStrategy for CoreCLR

This change adds a new GC strategy for supporting the CoreCLR runtime.

This strategy is currently identical to Statepoint-example GC,
but is necessary for several upcoming changes specific to CoreCLR, such as:

1. Base-pointers not explicitly reported for interior pointers
2. Different format for stack-map encoding
3. Location of Safe-point polls: polls are only needed before loop-back edges and before tail-calls (not needed at function-entry)
4. Runtime specific handshake between calls to managed/unmanaged functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237753 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/GCs.h
include/llvm/CodeGen/LinkAllCodegenComponents.h
lib/CodeGen/CMakeLists.txt
lib/CodeGen/CoreCLRGC.cpp [new file with mode: 0644]
lib/Transforms/Scalar/PlaceSafepoints.cpp
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
test/Transforms/PlaceSafepoints/statepoint-coreclr.ll [new file with mode: 0644]