github.com/goplus/llgo@v0.8.3/cl/_testdata/fncall/out.ll (about)

     1  ; ModuleID = 'main'
     2  source_filename = "main"
     3  
     4  @"main.init$guard" = global ptr null
     5  @__llgo_argc = global ptr null
     6  @__llgo_argv = global ptr null
     7  
     8  define void @main.init() {
     9  _llgo_0:
    10    %0 = load i1, ptr @"main.init$guard", align 1
    11    br i1 %0, label %_llgo_2, label %_llgo_1
    12  
    13  _llgo_1:                                          ; preds = %_llgo_0
    14    store i1 true, ptr @"main.init$guard", align 1
    15    br label %_llgo_2
    16  
    17  _llgo_2:                                          ; preds = %_llgo_1, %_llgo_0
    18    ret void
    19  }
    20  
    21  define i32 @main(i32 %0, ptr %1) {
    22  _llgo_0:
    23    store i32 %0, ptr @__llgo_argc, align 4
    24    store ptr %1, ptr @__llgo_argv, align 8
    25    call void @"github.com/goplus/llgo/internal/runtime.init"()
    26    call void @main.init()
    27    %2 = call i64 @main.max(i64 1, i64 2)
    28    ret i32 0
    29  }
    30  
    31  define i64 @main.max(i64 %0, i64 %1) {
    32  _llgo_0:
    33    %2 = icmp sgt i64 %0, %1
    34    br i1 %2, label %_llgo_1, label %_llgo_2
    35  
    36  _llgo_1:                                          ; preds = %_llgo_0
    37    ret i64 %0
    38  
    39  _llgo_2:                                          ; preds = %_llgo_0
    40    ret i64 %1
    41  }
    42  
    43  declare void @"github.com/goplus/llgo/internal/runtime.init"()