Displaying 3 results from an estimated 3 matches for "gc_currhead".
2011 Apr 11
0
[LLVMdev] gcroot + `section not found for addresss ...' ???
The linker is going off in the weeds trying to parse the dwarf unwind info. The CIE has:
Leh_frame_common_begin0:
.long 0 ## CIE Identifier Tag
.byte 1 ## DW_CIE_VERSION
.asciz "zLR" ## CIE Augmentation
.byte 1 ## CIE Code Alignment Factor
.byte 120 ## CIE Data Alignment
2011 Apr 10
2
[LLVMdev] gcroot + `section not found for addresss ...' ???
Hi,
If I type
define i32 @main() gc "shadow-stack" {
entry:
%0 = alloca i8*
%1 = call i8* @malloc(i64 1)
store i8* %1, i8** %0
call void @llvm.gcroot(i8** %0, i8* null)
ret i32 0
}
declare i8* @malloc(i64)
declare void @llvm.gcroot(i8**, i8*) nounwind
in test.ll
and then do
> llc test.ll
> gcc test.s
I get the error
ld: in
2011 Apr 12
2
[LLVMdev] gcroot + `section not found for addresss ...' ???
This is an interesting problem. The GC code is being converted into 'invokes' instead of calls:
define i32 @main() gc "shadow-stack" {
entry:
%gc_frame = alloca %gc_stackentry.main
%gc_currhead = load %gc_stackentry** @llvm_gc_root_chain
%gc_frame.map = getelementptr %gc_stackentry.main* %gc_frame, i32 0, i32 0, i32 1
store %gc_map* getelementptr inbounds (%gc_map.0* @__gc_main, i32 0, i32 0), %gc_map** %gc_frame.map
%0 = getelementptr %gc_stackentry.main* %gc_frame, i32 0, i32 1...