Displaying 4 results from an estimated 4 matches for "f_metadata".
2008 Apr 21
0
[LLVMdev] getting started with IR needing GC
...d *roots[0];
};
template <size_t count>
struct Roots {
ShadowStackLink *next;
const ShadowStackMetadata *metadata;
void *roots[0];
};
ShadowStackEntry *shadowStackHead;
// Defined by the code generator.
const ShadowStackMetadata f_metadata = ...;
void f() {
Roots<3> roots;
roots.next = shadowStackHead;
roots.metadata = f_metadata;
roots.roots[0] = NULL;
roots.roots[1] = NULL;
roots.roots[2] = NULL;
shadowStackHead = (ShadowStackEntry *) &roots;
....
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
...size_t count>
> struct Roots {
> ShadowStackLink *next;
> const ShadowStackMetadata *metadata;
> void *roots[0];
> };
>
> ShadowStackEntry *shadowStackHead;
>
> // Defined by the code generator.
> const ShadowStackMetadata f_metadata = ...;
Do you mean generated by my front end that emits IR or do you mean the
backend? It seems that, since I read the source code and build the
symbol table, I would need to build this stack frame type information
for LLVM.
> void f() {
> Roots<3> roots;
>...
2008 Apr 22
0
[LLVMdev] getting started with IR needing GC
...gt;> const ShadowStackMetadata *metadata;
>> void *roots[0];
>> };
This should be roots[n], which makes the difference.
>> ShadowStackEntry *shadowStackHead;
>>
>> // Defined by the code generator.
>> const ShadowStackMetadata f_metadata = ...;
>
> Do you mean generated by my front end that emits IR or do you mean
> the backend? It seems that, since I read the source code and build
> the symbol table, I would need to build this stack frame type
> information for LLVM.
No, the code generator injects this consta...