Displaying 8 results from an estimated 8 matches for "stackentry".
2008 Apr 22
3
[LLVMdev] getting closer!
...ight* be getting this from the assembly code. The assembly
code has:
L_llvm_gc_root_chain$non_lazy_ptr:
.indirect_symbol _llvm_gc_root_chain
.long 0
and I see it being used in the function preamble. Is that a ref to an
extern symbol or the def? I.e., is it referring to
StackEntry *llvm_gc_root_chain;
that I must have in my GC C code? (semispace.c has it)
SO! I might be getting this. The shadow stack plugin assumes I have
struct StackEntry {
StackEntry *Next; // Caller's stack entry.
const FrameMap *Map; // Pointer to constant FrameMap.
void *Roots[...
2008 Apr 22
0
[LLVMdev] getting closer!
On Apr 21, 2008, at 20:09, Terence Parr wrote:
> Ok, I *might* be getting this from the assembly code. ... From
> that, it will push/pop in functions? If so, that's easy enough. :)
Yup! Sounds like you've got it.
> What I was/am missing is the explicit link between types and
> variables in a GC.c file and the generated machine code. If I can
> get that last
2008 Apr 22
2
[LLVMdev] getting closer!
...gt;> that, it will push/pop in functions? If so, that's easy enough. :)
>
> Yup! Sounds like you've got it.
Yup, what i was missing and what somebody should add to the doc is
that "shadow-stack" adds a preamble/postamble snippet to each function
that must bind with
StackEntry *llvm_gc_root_chain;
wherever you choose to define it. I put into my GC.c file.
Further, that shadow-stack snippet generation assumes the following
structures for tracking roots:
typedef struct FrameMap FrameMap;
struct FrameMap {
int32_t NumRoots; // Number of roots in stack frame.
int...
2008 Apr 22
0
[LLVMdev] getting closer!
...nctions? If so, that's easy enough. :)
>>
>> Yup! Sounds like you've got it.
>
> Yup, what i was missing and what somebody should add to the doc is
> that "shadow-stack" adds a preamble/postamble snippet to each
> function that must bind with
>
> StackEntry *llvm_gc_root_chain;
>
> wherever you choose to define it. I put into my GC.c file.
>
> Further, that shadow-stack snippet generation assumes the following
> structures for tracking roots:
>
> typedef struct FrameMap FrameMap;
> struct FrameMap {
> int32_t NumRoots;...
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
Howdy do LLVM folks!
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). Not sure this IR is correct but here is what I've been
playing
2008 Apr 21
2
[LLVMdev] getting started with IR needing GC
...upport.
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: expecte...
2008 Mar 07
1
[LLVMdev] runtime/GC/SemiSpace/semispace.c does not build in release 2.2?
I just downloaded the source for release 2.2, and when I try to build
'make -C runtime' it fails with the following error:
----
[...]
llvm[2]: Compiling semispace.c for Release build (bytecode)
semispace.c:107: error: syntax error before 'ShadowStackEntry'
semispace.c:107: warning: no semicolon at end of struct or union
semispace.c:108: error: syntax error before '*' token
semispace.c:108: warning: type defaults to 'int' in declaration of 'Map'
semispace.c:108: warning: data definition has no type or storage class
semispa...