Displaying 20 results from an estimated 7000 matches similar to: "[GC / Statepoints] Collector supports only base pointers as stack roots"
2020 Sep 18
3
GC-parseable element atomic memcpy/memmove
TLDR: a proposal to add GC-parseable lowering to element atomic
memcpy/memmove instrinsics controlled by a new "requires-statepoint”
call attribute.
Currently llvm.{memcpy|memmove}.element.unordered.atomic calls are
considered as GC leaf functions (like most other intrinsics). As a
result GC cannot occur while copy operation is in progress. This might
have negative effect on GC latencies
2016 Feb 05
2
gc relocations on exception path w/RS4GC currently broken
Sorry to reply to myself here, but I had an idea regarding "issue #2" -- possibly what makes the most sense for those clients/targets is to pull the pointer difference computation/reapplication into RS4GC itself -- it could have a pass just before or after rematerialization, which runs based on a configuration flag (eventually to be driven by GCStrategy), which performs rewrites like
2016 Feb 06
2
gc relocations on exception path w/RS4GC currently broken
Thanks, I think that's a useful way to look at it (though if I wanted to bikeshed I'd suggest the name "DoubleIndirect" as a bit more precise than "VeryIndirect").
An aspect of it that I'm still puzzling over is that my target runtime (at least in its current form) doesn't have a way to represent/process a "VeryIndirect" pointer. So I'd like to
2020 Sep 30
2
GC-parseable element atomic memcpy/memmove
Thanks for the feedback.
I think both of the suggestions are very reasonable. I’ll incorporate them.
Given there were no objections for two weeks, I’m going to go ahead with posting individual patches for review.
One small question inline:
On Sep 28, 2020, at 10:56 AM, Philip Reames <listmail at philipreames.com<mailto:listmail at philipreames.com>> wrote:
In general, I am
2015 Oct 15
2
Operand bundles and gc transition arguments
As part of adding `"deopt"` operand bundles, we're aiming to change
RewriteStatepointsForGC (called RS4GC henceforth) from rewriting
existing `gc.statepoint` calls to transforming normal LLVM calls and
invokes into `gc.statepoint` calls and invokes (i.e. to do
PlaceSafepoints + RS4GC in one step). This will make `gc.statepoint`
an artifact of the gc lowering strategy that only
2016 Jan 27
3
PlaceSafepoints, operand bundles, and RewriteStatepointsForGC
[+CC llvm-dev this time]
Hi,
As discussed in the review thread in http://reviews.llvm.org/D16439,
the future plan around statepoints, deopt bundles, PlaceSafepoints
etc. is to "constant fold" -spp-no-statepoints
and -rs4gc-use-deopt-bundles to true.
We (Azul) have moved to a representation of safepoint polls, deopt
state etc. that enables us to do the above; and at this point I'm
2016 Jan 22
6
FYI: gc relocations on exception path w/RS4GC currently broken
For anyone following along on ToT using the gc.statepoint mechanism, you
should know that ToT is currently not able to express arbitrary
exceptional control flow and relocations along exceptional edges. This
is a direct result of moving the gc.statepoint representation to using a
token type landingpad. Essentially, we have a design inconsistency
where we expect to be able to
2014 Dec 05
9
[LLVMdev] Future plans for GC in LLVM
Now that the statepoint changes have landed, I wanted to start a
discussion about what's next for GC support in LLVM. I'm going to
sketch out a strawman proposal, but I'm not set on any of this. I
mostly just want to draw interested parties out of the woodwork. :)
Overall Direction:
In the short term, my intent is to preserve the functionality of the
existing code, but migrate
2016 Jan 14
2
FYI: Relocating vector of pointers
TLDR. For anyone who is using the RewriteStatepointsForGC utility pass,
there is a recent change you should know about which may require you to
make some small changes to your stackmap parsing.
I have landed a small series of patches which change how we're handling
vector of pointers when reporting live pointers for the GC at
safepoints. Previously, the RS4GC pass was attempting to
2016 Mar 03
2
Status of Garbage Collection with Statepoints in LLVM
Hello LLVM community,
We have been experimenting with using LLVM IR as a target for a managed
(dynamically typed) language via an AOT compiler (including a backend for
ARM). One main challenge is getting the garbage collection right: We would
like to be able to implement a moving collector. This requires us to a)
find a precise set of root pointers and b) be able to rewrite those
pointers after
2018 Nov 19
2
Non-relocating GC with liveness tracking
Thanks for reviving this.
I completely forgot the details but I resolved this problem. Looking though
the code, seems I forked RewriteStatepointsForGC pass, and change it to
adding 'gc-livevars' bundle to the call/invoke inst after finding the
livevars, instead of changing it to StatepointCall intrinsic.
On Wed, Nov 14, 2018 at 11:48 AM Philip Reames <listmail at philipreames.com>
2017 Dec 08
4
Non-relocating GC with liveness tracking
Hi Team,
I'm working on a new pure functional language and I'm trying to add GC
support for that.
Because all vars are immutable, the IR that my frontend generates are all
register based, i.e. no alloca, and no readmem, writemem unless
accessing/constructing structs.
If I use the traditional GC with gcroot intrinsic, it will need to emit
more code for liveness tracking, storing the IR
2013 Oct 22
4
[LLVMdev] [RFC] Stackmap and Patchpoint Intrinsic Proposal
On Oct 22, 2013, at 1:48 PM, Philip R <listmail at philipreames.com> wrote:
> On 10/22/13 10:34 AM, Filip Pizlo wrote:
>> On Oct 22, 2013, at 9:53 AM, Philip R <listmail at philipreames.com> wrote:
>>
>>> On 10/17/13 10:39 PM, Andrew Trick wrote:
>>>> This is a proposal for adding Stackmaps and Patchpoints to LLVM. The
>>>> first client
2013 Oct 22
0
[LLVMdev] [RFC] Stackmap and Patchpoint Intrinsic Proposal
On Oct 22, 2013, at 3:08 PM, Filip Pizlo <fpizlo at apple.com> wrote:
> On Oct 22, 2013, at 1:48 PM, Philip R <listmail at philipreames.com> wrote:
>
>> On 10/22/13 10:34 AM, Filip Pizlo wrote:
>>> On Oct 22, 2013, at 9:53 AM, Philip R <listmail at philipreames.com> wrote:
>>>
>>>> On 10/17/13 10:39 PM, Andrew Trick wrote:
2013 Oct 26
3
[LLVMdev] Interfacing llvm with a precise, relocating GC
I'm also highly interested in relocating-GC support from LLVM. Up until now
my GC implementation has been non-relocating which is obviously kind of a
bummer given that it inhibits certain classes of memory
allocation/deallocation tricks.
I wrote up a bunch of my findings on the implementation of my GC here:
https://code.google.com/p/epoch-language/wiki/GarbageCollectionScheme
Frankly I
2015 Jul 29
2
[LLVMdev] A few folks in the SF Bay area are planning to get together to discuss GC statepoints
Specifically, I wanted to sit down with Sanjoy and Philip who have been
working on getting the current statepoint infrastructure sufficiently well
integrated with the optimizer to do early statepoint insertion, and discuss
what the path forward is here.
If anyone happens to be in the area and is interested in attending, please
let me know. Currently, I'm planning to host things up on
2018 Nov 08
2
Passing stack pointer to statepoint-gc
Hi,
I'm trying to use the statepoint-example strategy to build a simple garbage collector. After using the PlaceSafepoints and RewriteStatepointsForGC passes, I can successfully generate a stack map in my binary and call into my runtime's gc poll.
As far as I can tell, I need the stack pointer at the point of the poll to find the correct frame in the stack map. I'm having trouble
2018 Nov 08
3
Passing stack pointer to statepoint-gc
Sorry, what does "PC" mean here?
________________________________
From: Philip Reames <listmail at philipreames.com>
Sent: Thursday, November 8, 2018 7:27 AM
To: Jordan Rudd; llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] Passing stack pointer to statepoint-gc
Jordon,
First of all, StackMaps are keyed by PC, not by SP. Each entry corresponds to given location within the
2015 Jul 30
0
[LLVMdev] A few folks in the SF Bay area are planning to get together to discuss GC statepoints
Hi Chandler,
A few of us up here in Seattle would be interested, but we’re too cheap to buy plane tickets. Is it reasonable to set up a conference call? How the optimizer deals with statepoints is important to us.
-R
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Chandler Carruth
Sent: Tuesday, July 28, 2015 8:21 PM
To: Sanjoy Das <sanjoy at
2013 Oct 26
0
[LLVMdev] Interfacing llvm with a precise, relocating GC
> On Oct 26, 2013, at 12:37 AM, Michael Lewis <don.apoch at gmail.com> wrote:
>
> I'm also highly interested in relocating-GC support from LLVM. Up until now my GC implementation has been non-relocating which is obviously kind of a bummer given that it inhibits certain classes of memory allocation/deallocation tricks.
You can implement a copying GC (what the kids these days