[PATCH] [RewriteStatepointsForGC] Exclude constant values from being considered live at a safepoint

Philip Reames listmail at philipreames.com
Thu Apr 23 16:31:06 PDT 2015


Upload the diff again to force an email after adding llvm-commits.

Full description copied by hand in case it doesn't get resent.

[RewriteStatepointsForGC] Exclude constant values from being considered live at a safepoint

There can be various constant pointers in the IR which do not get relocated at a safepoint.  One example is the address of a global variable.  Another example is a pointer created via inttoptr.  Note that the optimizer itself likes to create such inttoptrs when locally propagating constants through dynamically dead code.

To deal with this, we need to exclude uses of constants from contributing to the liveness of a safepoint which might reach that use.  At some later date, it might be worth exploring what could be done to support the relocation of various special types of "constants", but that's future work.


http://reviews.llvm.org/D9236

Files:
  lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  test/Transforms/RewriteStatepointsForGC/constants.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9236.24342.patch
Type: text/x-patch
Size: 5048 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150423/509be2dc/attachment.bin>


More information about the llvm-commits mailing list