search for: placesafepoints

Displaying 11 results from an estimated 11 matches for "placesafepoints".

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...
2016 Mar 03
2
Status of Garbage Collection with Statepoints in LLVM
...t option, namely "gcroot", is only viable for conservative collectors and statepoints might eventually replace gcroot. So we wanted to try out the statepoints approach. Though it turned out that: * the pass for inserting statepoints is hard-coded to only work with samples and CLR (see [placesafepoints]) * the pass for rewriting statepoints is hard-coded to only work with samples and CLR (see [rewritestatepoints]) * the only backend supporting statepoints right now seems to be 64-bit intel (see [backend-x64]) Since the ARM backend (and e.g. 32-bit intel) doesn't seem to have support for...
2016 Mar 04
2
Status of Garbage Collection with Statepoints in LLVM
Hi Martin, Philip covered all of it very well, I'll just add one minor comment: > More generally, can I back up and ask an important question? Do you have to > support deoptimization (i.e. osr side exits) in any form? If you do, you'll > probably want to avoid the PlaceSafepoints utility pass. If you need to PlaceSafepoints is inadequate only if you have asynchronous invalidation -- i.e. thread X is spinning in a long running loop while thread Y loaded a class that makes the code running in thread X invalid, so thread X needs to be polling for deopt safepoints. If all yo...
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 doing that. One library I loo...
2018 Nov 08
3
Passing stack pointer to statepoint-gc
...n your generated code and your C/C++ runtime code which grabs the PC from the stack, and moves it into an argument register. Philip On 11/7/18 5:22 PM, Jordan Rudd via llvm-dev wrote: 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 doing that. One library I loo...
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 pipeline, and not a generic "meta call". For us, this opens up the possibility of making the optimizer work well around calls with deopt state (e.g. be able to...
2015 Jun 17
2
[LLVMdev] design question on inlining through statepoints and patchpoints
...39;s likely that we'll end with a scheme which inserts safepoint polls quite early (but with restricted semantics and optimization impact) and then converts them to explicit GC safepoints (with full invalidation semantics) quite late. We already have this distinction in tree in the form of PlaceSafepoints and RewriteStatepointsForGC. I suspect we'll move further in this direction. I suspect that for languages without deoptimization, you'll want to insert safepoint polls quite late. Whether you do the same for safepoints-at-calls is debatable. I used to think that you should do that...
2015 May 25
2
[LLVMdev] GC Statepoint Transition Status?
Hi, I am looking to utilize LLVM as the backend in an existing compiler for a garbage collected language, and have a question regarding the current and future support for precise GC in LLVM. It appears that gc.root is being phased out, with with breaking changes such as this: http://reviews.llvm.org/D7004 <http://reviews.llvm.org/D7004> Does this mean that gc.statepoint is ready for
2015 Feb 19
2
[LLVMdev] Beginner GCRoot Questions
Hello, I've spent some time with the LLVM documentation and am beginning to grasp a few things, but I sometimes need very literal statements to actually understand things. My first question is about StackMaps: Is it true that llvm_gc_root_chain is an API? I've been trying to understand how exactly one accesses this structure and no where in the documentation does it mention this is a
2015 Jun 17
3
[LLVMdev] design question on inlining through statepoints and patchpoints
I've been looking at inlining invokes / calls done through statepoints and I want to have a design discussion before I sink too much time into something I'll have to throw away. I'm not actively working on adding inlining support to patchpoints, but I suspect these issues are applicable towards teaching LLVM to inline through patchpoints as well. There are two distinct problems to
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
...build llvm[3]: Compiling OcamlGCPrinter.cpp for Release+Asserts build llvm[3]: Compiling InstCombineShifts.cpp for Release+Asserts build llvm[3]: Compiling PartiallyInlineLibCalls.cpp for Release+Asserts build llvm[3]: Compiling WinCodeViewLineTables.cpp for Release+Asserts build llvm[3]: Compiling PlaceSafepoints.cpp for Release+Asserts build llvm[3]: Compiling InstCombineSimplifyDemanded.cpp for Release+Asserts build llvm[3]: Compiling WinException.cpp for Release+Asserts build llvm[4]: Building Release+Asserts Archive Library libLLVMX86AsmParser.a make[4]: Leaving directory '/home/NIKHILREDDY/WORK/LLV...