[llvm-dev] Reason to use different address space for statepoints

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Fri May 7 08:33:03 PDT 2021


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> LinkedIn 
>> <https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/> Medium 
>> <https://medium.com/@kavindugimhanzoysa>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list