mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-30 23:21:04 +00:00
[docs][statepoint] Expand a bit on problems with mixing references and raw pointers since it keeps coming up in discussions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346513 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7bade9c965
commit
55d210a76b
@ -908,7 +908,15 @@ Problem Areas and Active Work
|
||||
=============================
|
||||
|
||||
#. 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.
|
||||
objects (i.e. pass a pointer to an object to a C routine) in the abstract
|
||||
machine model. At the moment, the best idea on how to approach this
|
||||
involves an intrinsic or opaque function which hides the connection between
|
||||
the reference value and the raw pointer. The problem is that having a
|
||||
ptrtoint or inttoptr cast (which is common for such use cases) breaks the
|
||||
rules used for inferring base pointers for arbitrary references when
|
||||
lowering out of the abstract model to the explicit physical model. Note
|
||||
that a frontend which lowers directly to the physical model doesn't have
|
||||
any problems here.
|
||||
|
||||
#. Support for garbage collected objects allocated on the stack. Specifically,
|
||||
allocas are always assumed to be in address space 0 and we need a
|
||||
|
Loading…
Reference in New Issue
Block a user