Hi all,

*package main*

*func main() {*
* foo()*
*}*

*func foo() {*
* a := 5*
* _ = a*
* foo()*
*}*

I have generated the below llvm ir using the command `./bin/llvm-goc -S 
test.go -dump-ir`. I expected there are some llvm intrinsics that have been 
used to handle stack overflow. But it is not there. How does gollvm handle 
stackoverflow?

*define void @main.main(i8* nest %nest.0) #0 !dbg !14 {*
*entry:*
*  call void @main.foo(i8* nest undef), !dbg !15*
*  ret void*
*}*

*define void @main.foo(i8* nest %nest.1) #0 !dbg !16 {*
*entry:*
*  %a = alloca i64, align 8*
*  %0 = bitcast i64* %a to i8**
*  call void @llvm.lifetime.start.p0i8(i64 8, i8* %0)*
*  store i64 5, i64* %a, align 8*
*  call void @llvm.dbg.declare(metadata i64* %a, metadata !17, metadata 
!DIExpression()), !dbg !20*
*  %a.ld.0 = load i64, i64* %a, align 8, !dbg !21*
*  call void @main.foo(i8* nest undef), !dbg !22*
*  %1 = bitcast i64* %a to i8**
*  call void @llvm.lifetime.end.p0i8(i64 8, i8* %1)*
*  ret void*
*}*

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/0bbb1347-5ceb-4ed2-9622-cb695d29bc6dn%40googlegroups.com.

Reply via email to