[PATCH] Introduce an example statepoint GC strategy

Philip Reames listmail at philipreames.com
Mon Dec 29 21:41:09 PST 2014


Hi whitequark, sanjoy,

This change includes the most basic possible GCStrategy for a GC which is using the statepoint lowering code.  At the moment, this GCStrategy doesn't really do much - aside from actually generate correct stackmaps that is - but I went ahead and added a few extra correctness checks as proof of concept.  It's mostly here to provide documentation on how to do one, and to provide a point for various optimization legality hooks I'd like to add going forward.  (For context, see the TODOs in InstCombine around gc.relocate.)  

Note that I am deliberately not making a GCStrategy required to use gc.statepoints with this change.  I want to give folks out of tree - including myself - a chance to migrate.  In a week or two, I'll make having a GCStrategy be required for gc.statepoints.  To this end, I added the gc tag to one of the test cases but not others.

http://reviews.llvm.org/D6808

Files:
  include/llvm/CodeGen/GCStrategy.h
  include/llvm/CodeGen/GCs.h
  include/llvm/CodeGen/LinkAllCodegenComponents.h
  lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/GCStrategy.cpp
  lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  test/CodeGen/X86/statepoint-forward.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6808.17706.patch
Type: text/x-patch
Size: 9355 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141230/20068748/attachment.bin>


More information about the llvm-commits mailing list