search for: rs4gc

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