Displaying 2 results from an estimated 2 matches for "l_gc_safepoint_map".
2010 Oct 10
1
[LLVMdev] More questions about non_lazy_ptr
...point map. Here's what the code looks like in IR:
%init = invoke {} @GC_init(i32* getelementptr inbounds ([0 x i32]*
@gc_safepoint_map, i32 0, i32 0))
to label %nounwind unwind label %catch
When lowered to assembly, the code looks like this on OS X:
Ltmp426:
movl L_gc_safepoint_map$non_lazy_ptr, %eax
movl %eax, (%esp)
calll _GC_init
(and later on in the same file):
L_gc_safepoint_map$non_lazy_ptr:
.indirect_symbol _gc_safepoint_map
.long 0
This looks correct to me - it's dereferencing the non_lazy_ptr version...
2010 Aug 24
1
[LLVMdev] non_lazy_ptr question
...eing passed to an
external function. (BTW, gc_safepoint_map is the map of all of the stack
offsets containing pointers, indexed by the program counter address of the
safe point. It's generated by a custom linker pass.)
However, the code that is being generated looks like this:
movl L_gc_safepoint_map$non_lazy_ptr, %eax
movl %eax, (%esp)
call _GC_init
In other words, it's passing the 'non_lazy_ptr' version of the symbol
directly to GC_init, without dereferencing it. This makes the code go boom.
OK, so my question is:
- Where exactly would this dereference...