search for: shadowstack

Displaying 9 results from an estimated 9 matches for "shadowstack".

2015 Feb 19
2
[LLVMdev] Beginner GCRoot Questions
...resent in the final executable (in those or such explicit words). Secondly, if this is true, does it then mean that this variable is only accessible to C/C++ land? In turn I'll have some sort of main.cpp that will then be linked with llc output? My second question is about GCRoot intrinsic and ShadowStack? I've read up about intrinsics and it seems if I call LLVMAddFunction("llvm.*") .. it will be treated in special way by the code generator? If I set my GC to Shadowstack and mark all object pointers as GCroots, will this be 100% correct? Or do I need to myself in my code gen phase s...
2008 Apr 28
2
[LLVMdev] getting started with IR needing GC
...llector > plugin. OK. This is helpful in trying to understand what the Collector plugin is. So is it correct then that the Collector plugin is the GC's view into the backend? In other words, most garbage collectors have to have some knowledge of how the runtime stack is actually laid out. ShadowStack skirts around this issue by maintaining a "shadow" stack, so when the GC needs info about the runtime stack, ShadowStack instead provides info about the "shadow" stack. But most collector plugins would instead have to know about the actual layout of the runtime stack. Is that ri...
2008 Apr 28
0
[LLVMdev] getting started with IR needing GC
...lpful in trying to understand what the Collector > plugin is. > > So is it correct then that the Collector plugin is the GC's view > into the backend? In other words, most garbage collectors have to > have some knowledge of how the runtime stack is actually laid out. > ShadowStack skirts around this issue by maintaining a "shadow" > stack, so when the GC needs info about the runtime stack, > ShadowStack instead provides info about the "shadow" stack. But most > collector plugins would instead have to know about the actual layout > of t...
2008 Apr 28
0
[LLVMdev] getting started with IR needing GC
On 2008-04-27, at 21:29, Lane Schwartz wrote: > Hi guys, Hi Lane! This is a lot of questions. I'm not going to answer each individually, but will instead give general guidance to help you avoid the pain points… > I somehow need to inform the garbage collection runtime (my > copycollector.c) about my variables - specifically about gc roots. > So, after I get new memory
2008 Apr 28
3
[LLVMdev] getting started with IR needing GC
On Mon, Apr 21, 2008 at 8:13 PM, Gordon Henriksen <gordonhenriksen at mac.com> wrote: > > Hi Terence, > > > I think you're getting hung up on the details of the shadow stack collector. > The shadow stack is a GC that is possible within this framework, but of > course could be implemented without any special support. Its presence is > more misleading than anything
2013 Jul 31
0
[LLVMdev] New ideas about how to improve garbage collection support
Hi, I currently write a LLVM backend for RPython, a programming language and toolchain to write dynamic language interpreters. For example, this toolchain powers PyPy, a fast Python interpreter. In the moment the implementation uses a shadowstack to manage garbage collection stack roots. To improve performance, I experimented with LLVM's garbage collection support. It works by marking a stack slot as containing a garbage collection root. This enables easy code generation for frontends which use the mem2reg pass to construct the SSA for...
2008 Apr 21
0
[LLVMdev] getting started with IR needing GC
Hi Terence, On 2008-04-20, at 20:08, Terence Parr wrote: > I've exhausted what I can do on my own to make a GC example bind > (usual googling, reading, playing, looking at source). I can't find > the shadow collector lib or perhaps the -l options needed to link my > sample (not even to point where I'm figuring out GC actually as I > can't link). The shadow
2008 Apr 21
2
[LLVMdev] getting started with IR needing GC
...%t0 = add i32 99,0 %t1 = load i32** %pa ;%t2 = getelementptr i32** %t1, i32 0 store i32 %t0, i32* %t1 store i32* null, i32** %pa; say it's dead ret void } define void @main() { call void @foo() call void @llvm_gc_collect() ret void } Naturally I find ShadowStackCollector.cpp but even crazy links like this: gcc -lLLVMLinker -lLLVMipo /usr/local/lib/LLVMInterpreter.o - lLLVMInstrumentation /usr/local/lib/LLVMExecutionEngine.o /usr/local/ lib/LLVMJIT.o -lLLVMDebugger -lLLVMBitWriter /usr/local/lib/LLVMX86.o -lLLVMSelectionDAG -lLLVMCodeGen -lLLVMScalar...
2008 Apr 21
2
[LLVMdev] getting started with IR needing GC
...-gcc support. doh! That's how I missed the binary. thanks! > Since the semispace heap doesn't actually work (it's an example, at > best), I suggest you simply copy the stack visitor into your project; > it's only a dozen lines of code or so. Ok, copying; can't find ShadowStackEntry though. Even make in that dir doesn't work: /usr/local/llvm-2.2/runtime/GC/SemiSpace $ sudo make Password: llvm[0]: Compiling semispace.c for Release build (bytecode) semispace.c:107: error: expected specifier-qualifier-list before 'ShadowStackEntry' semispace.c:111: error: ex...