[PATCH] [RewriteStatepointsForGC] Limited support for vectors of pointers

Philip Reames listmail at philipreames.com
Fri Mar 27 13:42:51 PDT 2015


Hi sanjoy, swaroop.sridhar,

This patch adds limited support for inserting explicit relocations when there's a vector of pointers live over the statepoint.  This doesn't handle the case where the vector contains a mix of base and non-base pointers; that's future work.  

The current implementation just scalarizes the vector over the gc.statepoint before doing the explicit rewrite.  An alternate approach would be to plumb the vector all the way though the backend lowering, but doing that appears challenging.  In particular, the size of the indirect spill slot is currently assumed to be sizeof(pointer) throughout the backend. 

In practice, this is enough to allow running the SLP and Loop vectorizers before RewriteStatepointsForGC.

http://reviews.llvm.org/D8671

Files:
  lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  test/Transforms/RewriteStatepointsForGC/live-vector.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8671.22814.patch
Type: text/x-patch
Size: 16858 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150327/0c58ee7b/attachment.bin>


More information about the llvm-commits mailing list