Displaying 12 results from an estimated 12 matches for "rs4gc".
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 appears very late in
the...
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
waiting for an okay from you guys. LLILC should mostly Just Work in
this new world, with the exception of gc transition operands -- t...
2016 Sep 30
2
Adding utility/debugging passes upstream
...munity guideline for adding new passes which are solely used for debugging/analysis purposes? Can this be in the upstream llvm, or such passes are more suitable in local downstream repository?
In our case, the ‘utility (ease-of-analysis)’ pass is for transformation done by RewriteStatepointsForGC (RS4GC). Note that right now, RS4GC is not enabled in the opt pipeline upstream, but the utility pass would be for downstream users who have RS4GC enabled in their opt pipeline.
Thanks,
Anna
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 below to ensure that only base pointers are live across statepoints when it's done (plus a bit of bookkeeping w.r...
2016 Feb 06
2
gc relocations on exception path w/RS4GC currently broken
...to inject loads/stores to convert a "VeryIndirect" to a (single)"Indirect"? Should CodeGenPrepare be responsible for doing that rewrite at the IR level (and is it reasonable to assume that nothing after CGP would do the inverse)? Is it "good enough" to just know that RS4GC won't directly emit the pattern that lowers to "VeryIndirect", and have clients that care like LLILC run RS4GC "right before" CGP? Or were you suggesting something different, like somehow on the machine code we should insert loads and stores if needed when we see a "Ve...
2016 Sep 30
2
Adding utility/debugging passes upstream
...munity guideline for adding new passes which are solely used for debugging/analysis purposes? Can this be in the upstream llvm, or such passes are more suitable in local downstream repository?
In our case, the ‘utility (ease-of-analysis)’ pass is for transformation done by RewriteStatepointsForGC (RS4GC). Note that right now, RS4GC is not enabled in the opt pipeline upstream, but the utility pass would be for downstream users who have RS4GC enabled in their opt pipeline.
I think you should start by describing exactly what the pass is doing and how it is useful for working with/on RewriteStatepoin...
2016 Jan 22
6
FYI: gc relocations on exception path w/RS4GC currently broken
...that it basically "becomes part of" the landing pad without actually
being the landing pad. None of us were particular thrilled by the
changes involved.
Given exceptional paths are nearly by definition cold, we're currently
exploring another option. We're considering having RS4GC insert
explicit spill slots at the IR level (via allocas) for values live along
exceptional paths, and leaving all of the normal path values represented
as gc.relocates. This avoids the need for another IR extension, makes
it slightly easier to meet an ABI requirement Joseph has, and provides...
2016 Jan 14
2
FYI: Relocating vector of pointers
...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 scalarize any
such vectors which were live over a safepoint so that it could insert
explicit relocations for each element of the vector. In the near
future, this scalarization code will be removed and we will report the
vector of pointers directly in the stack map for th...
2020 Sep 18
3
GC-parseable element atomic memcpy/memmove
...es-statepoint". This attribute on a call will result in a
different lowering, which makes it possible to have a GC safepoint
during the copy operation.
There are three parts to the new lowering:
1) The calls with the new attribute will be wrapped into a statepoint
by RewriteStatepointsForGC (RS4GC). This way the stack at the calls
will be GC parceable.
2) Currently these intrinsics are lowered to GC leaf calls to the symbols
__llvm_{memcpy|memmove}_element_unordered_atomic_<element_size>.
The calls with the new attribute will be lowered to calls to different
symbols, let's say
__l...
2020 Sep 30
2
GC-parseable element atomic memcpy/memmove
...es-statepoint". This attribute on a call will result in a
different lowering, which makes it possible to have a GC safepoint
during the copy operation.
There are three parts to the new lowering:
1) The calls with the new attribute will be wrapped into a statepoint
by RewriteStatepointsForGC (RS4GC). This way the stack at the calls
will be GC parceable.
2) Currently these intrinsics are lowered to GC leaf calls to the symbols
__llvm_{memcpy|memmove}_element_unordered_atomic_<element_size>.
The calls with the new attribute will be lowered to calls to different
symbols, let's say
__l...
2015 Dec 31
2
[GC / Statepoints] Collector supports only base pointers as stack roots
Hi,
My collector supports only base pointers as stack roots. This wasn't a
problem until I tried to run some optimizations before RS4GC, which
introduced (interior) derived pointers. The statepoint documentation
mentions that these collectors exist, but doesn't mention whether and
how this is currently supported. What could I do to make it work?
-Manuel
2016 Jan 22
8
[GlobalISel][RFC] Thoughts on MachineModulePass
Hi,
In the initial thread of the proposal for GlobalISel, I have mentioned that it may be interesting to have a kind of MachineModulePass.
Marcello mentioned this would be useful for their current pipeline.
I am interested in knowing:
1. If anyone else is interested for such concept?
2. What kind of information should we make accessible in an hypothetical MachineModule? I.e., how do you plan to