[llvm] r262671 - [docs] Add a description of current problem areas to the statepoint docs

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 3 15:24:44 PST 2016


Author: reames
Date: Thu Mar  3 17:24:44 2016
New Revision: 262671

URL: http://llvm.org/viewvc/llvm-project?rev=262671&view=rev
Log:
[docs] Add a description of current problem areas to the statepoint docs

Triggered by a question on llvm-dev about status


Modified:
    llvm/trunk/docs/Statepoints.rst

Modified: llvm/trunk/docs/Statepoints.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/Statepoints.rst?rev=262671&r1=262670&r2=262671&view=diff
==============================================================================
--- llvm/trunk/docs/Statepoints.rst (original)
+++ llvm/trunk/docs/Statepoints.rst Thu Mar  3 17:24:44 2016
@@ -791,6 +791,41 @@ Supported Architectures
 Support for statepoint generation requires some code for each backend.
 Today, only X86_64 is supported.  
 
+Problem Areas and Active Work
+=============================
+
+#. As the existing users of the late rewriting model have matured, we've found 
+   cases where the optimizer breaks the assumption that an SSA value of 
+   gc-pointer type actually contains a pointer and vice-versa.  We need to 
+   clarify our expectations and propose at least one small IR change.  (Today, 
+   the gc-pointer distinction is managed via address spaces.  This turns out 
+   not to be quite strong enough.)
+
+#. Support for languages which allow unmanaged pointers to garbage collected 
+   objects (i.e. pass a pointer to an object to a C routine) via pinning.
+
+#. Support for garbage collected objects allocated on the stack.  Specifically,
+   allocas are always assumed to be in address space 0 and we need a 
+   cast/promotion operator to let rewriting identify them.  
+
+#. The current statepoint lowering is known to be somewhat poor.  In the very 
+   long term, we'd like to integrate statepoints with the register allocator; 
+   in the near term this is unlikely to happen.  We've found the quality of 
+   lowering to be relatively unimportant as hot-statepoints are almost always 
+   inliner bugs.  
+
+#. Concerns have been raised that the statepoint representation results in a 
+   large amount of IR being produced for some examples and that this 
+   contributes to higher than expected memory usage and compile times.  There's
+   no immediate plans to make changes due to this, but alternate models may be 
+   explored in the future.
+
+#. Relocations along exceptional paths are currently broken in ToT.  In 
+   particular, there is current no way to represent a rethrow on a path which 
+   also has relocations.  See `this llvm-dev discussion 
+   <https://groups.google.com/forum/#!topic/llvm-dev/AE417XjgxvI>`_ for more 
+   detail.  
+
 Bugs and Enhancements
 =====================
 




More information about the llvm-commits mailing list