Displaying 4 results from an estimated 4 matches for "shadowstackmetadata".
2008 Apr 21
0
[LLVMdev] getting started with IR needing GC
...tomatically 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;
// Defined by the code generator.
co...
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
...ist 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;
> const ShadowStackMetadata *metada...
2008 Apr 22
0
[LLVMdev] getting started with IR needing GC
...'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.
>> template <size_t count>
>> struct...