[llvm-dev] Reason to use different address space for statepoints
Philip Reames via llvm-dev
llvm-dev at lists.llvm.org
Fri May 7 09:24:57 PDT 2021
Kavindu,
If it would help, I'm more than happy to jump on a call and walk you
through some of the basics of the statepoint infrastructure. I
frequently find conversation much easier for this type of thing than email.
Philip
On 5/7/21 9:23 AM, Kavindu Gimhan Zoysa wrote:
> Hi David and Philip,
>
> Thank you for your responses. The reason to ask that question is that,
> in this statepoints document
> <https://releases.llvm.org/11.0.0/docs/Statepoints.html>, examples are
> used address space 1.
>
> I would be grateful if you can check this mail thread "*Generate
> statepoints for given code" *which was sent by me*.*
>
> Thank you,
> Kavindu
>
> Kavindu Gimhan Zoysa,
> BSc(Hons) | ENTC | UoM,
> SSE | WSO2
>
> GitHub <https://github.com/KavinduZoysa> LinkedIn
> <https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/> Medium
> <https://medium.com/@kavindugimhanzoysa>
>
>
> On Fri, 7 May 2021 at 21:03, Philip Reames via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> Point of order, most of this work was done to support a Java
> frontend.
> CLR came later. :)
>
> David, your point isn't wrong, but it does miss one of the major use
> cases. We support both an abstract machine model and a physical
> machine
> model. In the abstract machine model, objects aren't deallocated.
> RS4GC is the lowering pass which converts from abstract to physical
> (e.g. exposes the existence of deallocation). In the abstract
> model, we
> need pointers to be "non-integral" to restrict transformations which
> would break the reference to object abstraction.
>
> Kavindu, if you're lowering directly to physical (e.g. generating
> statepoints in your frontend), you shouldn't care about non-integral
> pointers.
>
> Philip
>
> On 5/7/21 8:21 AM, David Chisnall via llvm-dev wrote:
> > Hi,
> >
> > I'm not sure that this is a requirement. The CLR implementation
> that
> > drove a lot of this work wanted to be able to track both
> native-code
> > pointers that were not GC'd and pointers to the GC'd heap and so
> used
> > AS 1 for GC'd pointers. If you don't have this distinction then
> you
> > may be able to avoid it. Note that the data layout makes a
> > distinction at the address-space level between pointers that can be
> > treated as integers and ones that can't. Pointers to memory with
> > accurate GC shouldn't be treated as integers (where they may go
> > out-of-bounds in an intermediate state and be lost to the GC).
> >
> > David
> >
> > On 07/05/2021 15:28, Kavindu Gimhan Zoysa via llvm-dev wrote:
> >> Hi all,
> >>
> >> When we generate an LLVM IR introducing statepoints, do we
> >> essentially need to use a different address space other than the
> >> default address space? If so can you explain the reason for that?
> >>
> >> Thank you in advance,
> >> Kavindu
> >>
> >> Kavindu Gimhan Zoysa,
> >> BSc(Hons) | ENTC | UoM,
> >> SSE | WSO2
> >>
> >> GitHub <https://github.com/KavinduZoysa
> <https://github.com/KavinduZoysa>> LinkedIn
> >> <https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/
> <https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/>> Medium
> >> <https://medium.com/@kavindugimhanzoysa
> <https://medium.com/@kavindugimhanzoysa>>
> >>
> >> _______________________________________________
> >> LLVM Developers mailing list
> >> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> >>
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210507/08a59389/attachment.html>
More information about the llvm-dev
mailing list