search for: shadowstacklink

Displaying 4 results from an estimated 4 matches for "shadowstacklink".

2008 Apr 21
0
[LLVMdev] getting started with IR needing GC
...R instructs the code generator to automatically maintain the linked list of stack frames. You don't have to do anything to maintain these shadow stack frames except to keep your variables in the llvm.gcroot'd allocas. Essentially, it does this: struct ShadowStackEntry { ShadowStackLink *next; const ShadowStackMetadata *metadata; void *roots[0]; }; template <size_t count> struct Roots { ShadowStackLink *next; const ShadowStackMetadata *metadata; void *roots[0]; }; ShadowStackEntry *shadowStackHead;...
2008 Apr 21
2
[LLVMdev] getting started with IR needing GC
On Apr 20, 2008, at 5:36 PM, Gordon Henriksen wrote: > The shadow stack walker is in the runtime directory with the semispace > heap example. The runtime directory is built to LLVM IR using llvm- > gcc. So it's skipped unless you configure llvm with llvm-gcc support. doh! That's how I missed the binary. thanks! > Since the semispace heap doesn't actually work (it's
2008 Apr 21
2
[LLVMdev] getting started with IR needing GC
...> automatically maintain the linked list of stack frames. You don't > have to do anything to maintain these shadow stack frames except to > keep your variables in the llvm.gcroot'd allocas. Essentially, it > does this: > > struct ShadowStackEntry { > ShadowStackLink *next; > const ShadowStackMetadata *metadata; > void *roots[0]; > }; Ok, bear with me here... What's the difference between ShadowStackLink and ShadowStackEntry? > template <size_t count> > struct Roots { > ShadowStackLink *next;...
2008 Apr 22
0
[LLVMdev] getting started with IR needing GC
...ntain the linked list of stack frames. You don't >> have to do anything to maintain these shadow stack frames except to >> keep your variables in the llvm.gcroot'd allocas. Essentially, it >> does this: >> >> struct ShadowStackEntry { >> ShadowStackLink *next; >> const ShadowStackMetadata *metadata; >> void *roots[0]; >> }; > > Ok, bear with me here... > > What's the difference between ShadowStackLink and ShadowStackEntry? This is an abstract type with a flexible array member. >>...