ssa: abi check interface method

This commit is contained in:
visualfc
2024-10-10 16:07:52 +08:00
parent 9ea88fe247
commit d62c2d913e
19 changed files with 13557 additions and 11948 deletions

View File

@@ -18,6 +18,7 @@ source_filename = "main"
@3 = private unnamed_addr constant [4 x i8] c"main", align 1
@_llgo_main.T = linkonce global ptr null, align 8
@4 = private unnamed_addr constant [6 x i8] c"main.T", align 1
@_llgo_any = linkonce global ptr null, align 8
@"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk" = linkonce global ptr null, align 8
@5 = private unnamed_addr constant [1 x i8] c"X", align 1
@6 = private unnamed_addr constant [1 x i8] c"Y", align 1
@@ -545,12 +546,10 @@ _llgo_0:
define void @"main.init#7"() {
_llgo_0:
%0 = load ptr, ptr @_llgo_int, align 8
%1 = load ptr, ptr @_llgo_string, align 8
%2 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8
%3 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %2, i64 0)
%4 = icmp ne ptr %3, null
call void @main.assert(i1 %4)
%0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8
%1 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %0, i64 0)
%2 = icmp ne ptr %1, null
call void @main.assert(i1 %2)
call void @main.assert(i1 true)
ret void
}
@@ -632,268 +631,300 @@ _llgo_7: ; preds = %_llgo_6
br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6
%26 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
%26 = load ptr, ptr @_llgo_any, align 8
%27 = icmp eq ptr %26, null
br i1 %27, label %_llgo_9, label %_llgo_10
_llgo_9: ; preds = %_llgo_8
%28 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 0
store ptr @5, ptr %29, align 8
%30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 1
store i64 1, ptr %30, align 4
%31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8
%32 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 0
store ptr null, ptr %33, align 8
%34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 1
store i64 0, ptr %34, align 4
%35 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %32, align 8
%36 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%37 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %31, ptr %36, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %35, i1 false)
%28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%29 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, i32 0, i32 0
store ptr %28, ptr %30, align 8
%31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, i32 0, i32 1
store i64 0, ptr %31, align 4
%32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, i32 0, i32 2
store i64 0, ptr %32, align 4
%33 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %29, align 8
%34 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 0
store ptr @3, ptr %35, align 8
%36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1
store i64 4, ptr %36, align 4
%37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8
%38 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 0
store ptr @6, ptr %39, align 8
store ptr null, ptr %39, align 8
%40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %38, i32 0, i32 1
store i64 1, ptr %40, align 4
store i64 0, ptr %40, align 4
%41 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %38, align 8
%42 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 0
store ptr null, ptr %43, align 8
%44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 1
store i64 0, ptr %44, align 4
%45 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %42, align 8
%46 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%47 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %41, ptr %46, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %45, i1 false)
%48 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 0
store ptr @7, ptr %49, align 8
%50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 1
store i64 1, ptr %50, align 4
%51 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %48, align 8
%52 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%53 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 0
store ptr null, ptr %53, align 8
%54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %52, i32 0, i32 1
store i64 0, ptr %54, align 4
%55 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %52, align 8
%56 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%57 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %51, ptr %56, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %55, i1 false)
%58 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %58, i32 0, i32 0
store ptr @8, ptr %59, align 8
%60 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %58, i32 0, i32 1
store i64 1, ptr %60, align 4
%61 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %58, align 8
%62 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 0
store ptr null, ptr %63, align 8
%64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %62, i32 0, i32 1
store i64 0, ptr %64, align 4
%65 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %62, align 8
%66 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%67 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, i32 0, i32 0
store ptr %66, ptr %68, align 8
%69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, i32 0, i32 1
store i64 0, ptr %69, align 4
%70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, i32 0, i32 2
store i64 0, ptr %70, align 4
%71 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %67, align 8
%72 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 0
store ptr @3, ptr %73, align 8
%74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %72, i32 0, i32 1
store i64 4, ptr %74, align 4
%75 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %72, align 8
%76 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 0
store ptr null, ptr %77, align 8
%78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1
store i64 0, ptr %78, align 4
%79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8
%80 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %75, %"github.com/goplus/llgo/internal/runtime.String" %79, %"github.com/goplus/llgo/internal/runtime.Slice" %71)
%81 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %61, ptr %80, i64 32, %"github.com/goplus/llgo/internal/runtime.String" %65, i1 false)
%82 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 0
store ptr @3, ptr %83, align 8
%84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %82, i32 0, i32 1
store i64 4, ptr %84, align 4
%85 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %82, align 8
%86 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224)
%87 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %37, ptr %87, align 8
%88 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %47, ptr %88, align 8
%89 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 2
store %"github.com/goplus/llgo/internal/abi.StructField" %57, ptr %89, align 8
%90 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 3
store %"github.com/goplus/llgo/internal/abi.StructField" %81, ptr %90, align 8
%91 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 0
store ptr %86, ptr %92, align 8
%93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 1
store i64 4, ptr %93, align 4
%94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, i32 0, i32 2
store i64 4, ptr %94, align 4
%95 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %91, align 8
%96 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %85, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %95)
store ptr %96, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
%42 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %37, %"github.com/goplus/llgo/internal/runtime.String" %41, %"github.com/goplus/llgo/internal/runtime.Slice" %33)
store ptr %42, ptr @_llgo_any, align 8
br label %_llgo_10
_llgo_10: ; preds = %_llgo_9, %_llgo_8
%97 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
br i1 %25, label %_llgo_11, label %_llgo_12
%43 = load ptr, ptr @_llgo_any, align 8
%44 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
%45 = icmp eq ptr %44, null
br i1 %45, label %_llgo_11, label %_llgo_12
_llgo_11: ; preds = %_llgo_10
%98 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 0
store ptr @3, ptr %99, align 8
%100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 1
store i64 4, ptr %100, align 4
%101 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %98, align 8
%102 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 0
store ptr @9, ptr %103, align 8
%104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 1
store i64 1, ptr %104, align 4
%105 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %102, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %23, %"github.com/goplus/llgo/internal/runtime.String" %101, %"github.com/goplus/llgo/internal/runtime.String" %105, ptr %97, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
%46 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 0
store ptr @5, ptr %47, align 8
%48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %46, i32 0, i32 1
store i64 1, ptr %48, align 4
%49 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %46, align 8
%50 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %50, i32 0, i32 0
store ptr null, ptr %51, align 8
%52 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %50, i32 0, i32 1
store i64 0, ptr %52, align 4
%53 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %50, align 8
%54 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%55 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %49, ptr %54, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %53, i1 false)
%56 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 0
store ptr @6, ptr %57, align 8
%58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %56, i32 0, i32 1
store i64 1, ptr %58, align 4
%59 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %56, align 8
%60 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%61 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 0
store ptr null, ptr %61, align 8
%62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %60, i32 0, i32 1
store i64 0, ptr %62, align 4
%63 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %60, align 8
%64 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%65 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %59, ptr %64, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %63, i1 false)
%66 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 0
store ptr @7, ptr %67, align 8
%68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 1
store i64 1, ptr %68, align 4
%69 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %66, align 8
%70 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 0
store ptr null, ptr %71, align 8
%72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1
store i64 0, ptr %72, align 4
%73 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %70, align 8
%74 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%75 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %69, ptr %74, i64 16, %"github.com/goplus/llgo/internal/runtime.String" %73, i1 false)
%76 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 0
store ptr @8, ptr %77, align 8
%78 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %76, i32 0, i32 1
store i64 1, ptr %78, align 4
%79 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %76, align 8
%80 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 0
store ptr null, ptr %81, align 8
%82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 1
store i64 0, ptr %82, align 4
%83 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %80, align 8
%84 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%85 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %85, i32 0, i32 0
store ptr %84, ptr %86, align 8
%87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %85, i32 0, i32 1
store i64 0, ptr %87, align 4
%88 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %85, i32 0, i32 2
store i64 0, ptr %88, align 4
%89 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %85, align 8
%90 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 0
store ptr @3, ptr %91, align 8
%92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 1
store i64 4, ptr %92, align 4
%93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %90, align 8
%94 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 0
store ptr null, ptr %95, align 8
%96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %94, i32 0, i32 1
store i64 0, ptr %96, align 4
%97 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %94, align 8
%98 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %93, %"github.com/goplus/llgo/internal/runtime.String" %97, %"github.com/goplus/llgo/internal/runtime.Slice" %89)
%99 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %79, ptr %98, i64 32, %"github.com/goplus/llgo/internal/runtime.String" %83, i1 false)
%100 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 0
store ptr @3, ptr %101, align 8
%102 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %100, i32 0, i32 1
store i64 4, ptr %102, align 4
%103 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %100, align 8
%104 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224)
%105 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %104, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %55, ptr %105, align 8
%106 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %104, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %65, ptr %106, align 8
%107 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %104, i64 2
store %"github.com/goplus/llgo/internal/abi.StructField" %75, ptr %107, align 8
%108 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %104, i64 3
store %"github.com/goplus/llgo/internal/abi.StructField" %99, ptr %108, align 8
%109 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 0
store ptr %104, ptr %110, align 8
%111 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 1
store i64 4, ptr %111, align 4
%112 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, i32 0, i32 2
store i64 4, ptr %112, align 4
%113 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %109, align 8
%114 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %103, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %113)
store ptr %114, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
br label %_llgo_12
_llgo_12: ; preds = %_llgo_11, %_llgo_10
%106 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 0
store ptr @10, ptr %107, align 8
%108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %106, i32 0, i32 1
store i64 6, ptr %108, align 4
%109 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %106, align 8
%110 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %109, i64 25, i64 0, i64 0, i64 0)
%111 = load ptr, ptr @_llgo_main.N, align 8
%112 = icmp eq ptr %111, null
br i1 %112, label %_llgo_13, label %_llgo_14
%115 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8
br i1 %25, label %_llgo_13, label %_llgo_14
_llgo_13: ; preds = %_llgo_12
store ptr %110, ptr @_llgo_main.N, align 8
%116 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%117 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 0
store ptr @3, ptr %117, align 8
%118 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %116, i32 0, i32 1
store i64 4, ptr %118, align 4
%119 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %116, align 8
%120 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 0
store ptr @9, ptr %121, align 8
%122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %120, i32 0, i32 1
store i64 1, ptr %122, align 4
%123 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %120, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %23, %"github.com/goplus/llgo/internal/runtime.String" %119, %"github.com/goplus/llgo/internal/runtime.String" %123, ptr %115, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
br label %_llgo_14
_llgo_14: ; preds = %_llgo_13, %_llgo_12
%113 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8
br i1 %112, label %_llgo_15, label %_llgo_16
%124 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%125 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %124, i32 0, i32 0
store ptr @10, ptr %125, align 8
%126 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %124, i32 0, i32 1
store i64 6, ptr %126, align 4
%127 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %124, align 8
%128 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %127, i64 25, i64 0, i64 0, i64 0)
%129 = load ptr, ptr @_llgo_main.N, align 8
%130 = icmp eq ptr %129, null
br i1 %130, label %_llgo_15, label %_llgo_16
_llgo_15: ; preds = %_llgo_14
%114 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %114, i32 0, i32 0
store ptr @3, ptr %115, align 8
%116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %114, i32 0, i32 1
store i64 4, ptr %116, align 4
%117 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %114, align 8
%118 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%119 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 0
store ptr @11, ptr %119, align 8
%120 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %118, i32 0, i32 1
store i64 1, ptr %120, align 4
%121 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %118, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %110, %"github.com/goplus/llgo/internal/runtime.String" %117, %"github.com/goplus/llgo/internal/runtime.String" %121, ptr %113, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
store ptr %128, ptr @_llgo_main.N, align 8
br label %_llgo_16
_llgo_16: ; preds = %_llgo_15, %_llgo_14
%122 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8
%123 = icmp eq ptr %122, null
br i1 %123, label %_llgo_17, label %_llgo_18
%131 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8
br i1 %130, label %_llgo_17, label %_llgo_18
_llgo_17: ; preds = %_llgo_16
%124 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%125 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%126 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%127 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 0
store ptr @12, ptr %127, align 8
%128 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %126, i32 0, i32 1
store i64 7, ptr %128, align 4
%129 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %126, align 8
%130 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%131 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 0
store ptr null, ptr %131, align 8
%132 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %130, i32 0, i32 1
store i64 0, ptr %132, align 4
%133 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %130, align 8
%134 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%135 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %134)
%136 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %129, ptr %135, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %133, i1 false)
%137 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %137, i32 0, i32 0
store ptr @13, ptr %138, align 8
%139 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %137, i32 0, i32 1
store i64 4, ptr %139, align 4
%140 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %137, align 8
%141 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 0
store ptr null, ptr %142, align 8
%143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %141, i32 0, i32 1
store i64 0, ptr %143, align 4
%144 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %141, align 8
%145 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%146 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %145)
%147 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %140, ptr %146, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %144, i1 false)
%148 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 0
store ptr @14, ptr %149, align 8
%150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 1
store i64 5, ptr %150, align 4
%151 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %148, align 8
%152 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%153 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 0
store ptr null, ptr %153, align 8
%154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %152, i32 0, i32 1
store i64 0, ptr %154, align 4
%155 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %152, align 8
%156 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%157 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %156)
%158 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %151, ptr %157, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %155, i1 false)
%159 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 0
store ptr @15, ptr %160, align 8
%161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1
store i64 8, ptr %161, align 4
%162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8
%163 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%164 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 0
store ptr null, ptr %164, align 8
%165 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %163, i32 0, i32 1
store i64 0, ptr %165, align 4
%166 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %163, align 8
%167 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58)
%168 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %162, ptr %167, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %166, i1 false)
%169 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%170 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %169, i32 0, i32 0
store ptr @3, ptr %170, align 8
%171 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %169, i32 0, i32 1
store i64 4, ptr %171, align 4
%172 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %169, align 8
%173 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224)
%174 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %136, ptr %174, align 8
%175 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %147, ptr %175, align 8
%176 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 2
store %"github.com/goplus/llgo/internal/abi.StructField" %158, ptr %176, align 8
%177 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %173, i64 3
store %"github.com/goplus/llgo/internal/abi.StructField" %168, ptr %177, align 8
%178 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 0
store ptr %173, ptr %179, align 8
%180 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 1
store i64 4, ptr %180, align 4
%181 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, i32 0, i32 2
store i64 4, ptr %181, align 4
%182 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %178, align 8
%183 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %172, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %182)
%184 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %124, ptr %125, ptr %183, i64 4)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %184)
store ptr %184, ptr @"map[_llgo_int]_llgo_string", align 8
%132 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%133 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %132, i32 0, i32 0
store ptr @3, ptr %133, align 8
%134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %132, i32 0, i32 1
store i64 4, ptr %134, align 4
%135 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %132, align 8
%136 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%137 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 0
store ptr @11, ptr %137, align 8
%138 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %136, i32 0, i32 1
store i64 1, ptr %138, align 4
%139 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %136, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %128, %"github.com/goplus/llgo/internal/runtime.String" %135, %"github.com/goplus/llgo/internal/runtime.String" %139, ptr %131, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
br label %_llgo_18
_llgo_18: ; preds = %_llgo_17, %_llgo_16
%140 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8
%141 = icmp eq ptr %140, null
br i1 %141, label %_llgo_19, label %_llgo_20
_llgo_19: ; preds = %_llgo_18
%142 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%143 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%144 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%145 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 0
store ptr @12, ptr %145, align 8
%146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %144, i32 0, i32 1
store i64 7, ptr %146, align 4
%147 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %144, align 8
%148 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 0
store ptr null, ptr %149, align 8
%150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %148, i32 0, i32 1
store i64 0, ptr %150, align 4
%151 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %148, align 8
%152 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%153 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %152)
%154 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %147, ptr %153, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %151, i1 false)
%155 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%156 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 0
store ptr @13, ptr %156, align 8
%157 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %155, i32 0, i32 1
store i64 4, ptr %157, align 4
%158 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %155, align 8
%159 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%160 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 0
store ptr null, ptr %160, align 8
%161 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %159, i32 0, i32 1
store i64 0, ptr %161, align 4
%162 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %159, align 8
%163 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%164 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %163)
%165 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %158, ptr %164, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %162, i1 false)
%166 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%167 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 0
store ptr @14, ptr %167, align 8
%168 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %166, i32 0, i32 1
store i64 5, ptr %168, align 4
%169 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %166, align 8
%170 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%171 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %170, i32 0, i32 0
store ptr null, ptr %171, align 8
%172 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %170, i32 0, i32 1
store i64 0, ptr %172, align 4
%173 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %170, align 8
%174 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%175 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %174)
%176 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %169, ptr %175, i64 72, %"github.com/goplus/llgo/internal/runtime.String" %173, i1 false)
%177 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%178 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %177, i32 0, i32 0
store ptr @15, ptr %178, align 8
%179 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %177, i32 0, i32 1
store i64 8, ptr %179, align 4
%180 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %177, align 8
%181 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%182 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %181, i32 0, i32 0
store ptr null, ptr %182, align 8
%183 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %181, i32 0, i32 1
store i64 0, ptr %183, align 4
%184 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %181, align 8
%185 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58)
%186 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %180, ptr %185, i64 200, %"github.com/goplus/llgo/internal/runtime.String" %184, i1 false)
%187 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%188 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 0
store ptr @3, ptr %188, align 8
%189 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %187, i32 0, i32 1
store i64 4, ptr %189, align 4
%190 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %187, align 8
%191 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224)
%192 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %191, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %154, ptr %192, align 8
%193 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %191, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %165, ptr %193, align 8
%194 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %191, i64 2
store %"github.com/goplus/llgo/internal/abi.StructField" %176, ptr %194, align 8
%195 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %191, i64 3
store %"github.com/goplus/llgo/internal/abi.StructField" %186, ptr %195, align 8
%196 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%197 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %196, i32 0, i32 0
store ptr %191, ptr %197, align 8
%198 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %196, i32 0, i32 1
store i64 4, ptr %198, align 4
%199 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %196, i32 0, i32 2
store i64 4, ptr %199, align 4
%200 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %196, align 8
%201 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %190, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %200)
%202 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %142, ptr %143, ptr %201, i64 4)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %202)
store ptr %202, ptr @"map[_llgo_int]_llgo_string", align 8
br label %_llgo_20
_llgo_20: ; preds = %_llgo_19, %_llgo_18
ret void
}

View File

@@ -12,12 +12,12 @@ source_filename = "main"
@"main.init$guard" = global i1 false, align 1
@_llgo_main.errorString = linkonce global ptr null, align 8
@0 = private unnamed_addr constant [16 x i8] c"main.errorString", align 1
@_llgo_string = linkonce global ptr null, align 8
@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8
@1 = private unnamed_addr constant [1 x i8] c"s", align 1
@2 = private unnamed_addr constant [4 x i8] c"main", align 1
@3 = private unnamed_addr constant [5 x i8] c"Error", align 1
@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8
@_llgo_string = linkonce global ptr null, align 8
@4 = private unnamed_addr constant [11 x i8] c"errorString", align 1
@"*_llgo_main.errorString" = linkonce global ptr null, align 8
@"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8
@@ -30,16 +30,18 @@ _llgo_0:
%1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16)
%2 = getelementptr inbounds %main.errorString, ptr %1, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %0, ptr %2, align 8
%3 = load ptr, ptr @"*_llgo_main.errorString", align 8
%4 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8
%5 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %4, ptr %3)
%6 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8
%7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %6, i32 0, i32 0
store ptr %5, ptr %7, align 8
%8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %6, i32 0, i32 1
store ptr %1, ptr %8, align 8
%9 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %6, align 8
ret %"github.com/goplus/llgo/internal/runtime.iface" %9
%3 = load ptr, ptr @_llgo_main.errorString, align 8
%4 = load ptr, ptr @"*_llgo_main.errorString", align 8
%5 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%6 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8
%7 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %6, ptr %4)
%8 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8
%9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %8, i32 0, i32 0
store ptr %7, ptr %9, align 8
%10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.iface", ptr %8, i32 0, i32 1
store ptr %1, ptr %10, align 8
%11 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %8, align 8
ret %"github.com/goplus/llgo/internal/runtime.iface" %11
}
define %"github.com/goplus/llgo/internal/runtime.String" @"main.(*errorString).Error"(ptr %0) {
@@ -108,176 +110,177 @@ _llgo_0:
%3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8
%4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %3, i64 25, i64 16, i64 0, i64 1)
store ptr %4, ptr @_llgo_main.errorString, align 8
%5 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %5, i32 0, i32 0
store ptr @1, ptr %6, align 8
%7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %5, i32 0, i32 1
store i64 1, ptr %7, align 4
%8 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %5, align 8
%9 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 0
store ptr null, ptr %10, align 8
%11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 1
store i64 0, ptr %11, align 4
%12 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %9, align 8
%13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%14 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %8, ptr %13, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %12, i1 false)
%15 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%16 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %15, i32 0, i32 0
store ptr @2, ptr %16, align 8
%17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %15, i32 0, i32 1
store i64 4, ptr %17, align 4
%18 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8
%19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
%20 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %19, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %14, ptr %20, align 8
%21 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, i32 0, i32 0
store ptr %19, ptr %22, align 8
%23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, i32 0, i32 1
store i64 1, ptr %23, align 4
%24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, i32 0, i32 2
store i64 1, ptr %24, align 4
%25 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %21, align 8
%26 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %18, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %25)
store ptr %26, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8
%27 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8
%28 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 0
store ptr @3, ptr %29, align 8
%30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 1
store i64 5, ptr %30, align 4
%31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8
%32 = load ptr, ptr @_llgo_string, align 8
%33 = icmp eq ptr %32, null
br i1 %33, label %_llgo_1, label %_llgo_2
%5 = load ptr, ptr @_llgo_string, align 8
%6 = icmp eq ptr %5, null
br i1 %6, label %_llgo_1, label %_llgo_2
_llgo_1: ; preds = %_llgo_0
%34 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
store ptr %34, ptr @_llgo_string, align 8
%7 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
store ptr %7, ptr @_llgo_string, align 8
br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0
%35 = load ptr, ptr @_llgo_string, align 8
%36 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%37 = icmp eq ptr %36, null
br i1 %37, label %_llgo_3, label %_llgo_4
%8 = load ptr, ptr @_llgo_string, align 8
%9 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 0
store ptr @1, ptr %10, align 8
%11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %9, i32 0, i32 1
store i64 1, ptr %11, align 4
%12 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %9, align 8
%13 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 0
store ptr null, ptr %14, align 8
%15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 1
store i64 0, ptr %15, align 4
%16 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %13, align 8
%17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24)
%18 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %12, ptr %17, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %16, i1 false)
%19 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 0
store ptr @2, ptr %20, align 8
%21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %19, i32 0, i32 1
store i64 4, ptr %21, align 4
%22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8
%23 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
%24 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %23, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %18, ptr %24, align 8
%25 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %25, i32 0, i32 0
store ptr %23, ptr %26, align 8
%27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %25, i32 0, i32 1
store i64 1, ptr %27, align 4
%28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %25, i32 0, i32 2
store i64 1, ptr %28, align 4
%29 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %25, align 8
%30 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %22, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %29)
store ptr %30, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8
%31 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8
%32 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 0
store ptr @3, ptr %33, align 8
%34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %32, i32 0, i32 1
store i64 5, ptr %34, align 4
%35 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %32, align 8
%36 = load ptr, ptr @_llgo_string, align 8
%37 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%38 = icmp eq ptr %37, null
br i1 %38, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2
%38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%39 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%40 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, i32 0, i32 0
store ptr %38, ptr %40, align 8
%41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, i32 0, i32 1
store i64 0, ptr %41, align 4
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, i32 0, i32 2
%39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%40 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 0
store ptr %39, ptr %41, align 8
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 1
store i64 0, ptr %42, align 4
%43 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %39, align 8
%44 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8)
%45 = getelementptr ptr, ptr %44, i64 0
store ptr %35, ptr %45, align 8
%46 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 0
store ptr %44, ptr %47, align 8
%48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 1
store i64 1, ptr %48, align 4
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, i32 0, i32 2
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 2
store i64 0, ptr %43, align 4
%44 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, align 8
%45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8)
%46 = getelementptr ptr, ptr %45, i64 0
store ptr %36, ptr %46, align 8
%47 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%48 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, i32 0, i32 0
store ptr %45, ptr %48, align 8
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, i32 0, i32 1
store i64 1, ptr %49, align 4
%50 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %46, align 8
%51 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %43, %"github.com/goplus/llgo/internal/runtime.Slice" %50, i1 false)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %51)
store ptr %51, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, i32 0, i32 2
store i64 1, ptr %50, align 4
%51 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %47, align 8
%52 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %44, %"github.com/goplus/llgo/internal/runtime.Slice" %51, i1 false)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %52)
store ptr %52, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2
%52 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%53 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%54 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %31, ptr %54, align 8
%55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 1
store ptr %52, ptr %55, align 8
%56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 2
store ptr @"main.(*errorString).Error", ptr %56, align 8
%57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i32 0, i32 3
%53 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%54 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%55 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %35, ptr %55, align 8
%56 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 1
store ptr %53, ptr %56, align 8
%57 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 2
store ptr @"main.(*errorString).Error", ptr %57, align 8
%58 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %53, align 8
%59 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%60 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %59, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %58, ptr %60, align 8
%61 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%62 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, i32 0, i32 0
store ptr %59, ptr %62, align 8
%63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, i32 0, i32 1
store i64 1, ptr %63, align 4
%64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, i32 0, i32 2
%58 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %54, i32 0, i32 3
store ptr @"main.(*errorString).Error", ptr %58, align 8
%59 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %54, align 8
%60 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%61 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %60, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %59, ptr %61, align 8
%62 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %62, i32 0, i32 0
store ptr %60, ptr %63, align 8
%64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %62, i32 0, i32 1
store i64 1, ptr %64, align 4
%65 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %61, align 8
%66 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 0
store ptr @2, ptr %67, align 8
%68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %66, i32 0, i32 1
store i64 4, ptr %68, align 4
%69 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %66, align 8
%70 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 0
store ptr @4, ptr %71, align 8
%72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %70, i32 0, i32 1
store i64 11, ptr %72, align 4
%73 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %70, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %69, %"github.com/goplus/llgo/internal/runtime.String" %73, ptr %27, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %65)
%74 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 0
store ptr @0, ptr %75, align 8
%76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 1
store i64 16, ptr %76, align 4
%77 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %74, align 8
%78 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %77, i64 25, i64 16, i64 0, i64 1)
%79 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %78)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %79)
store ptr %79, ptr @"*_llgo_main.errorString", align 8
%80 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%81 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8
%82 = icmp eq ptr %81, null
br i1 %82, label %_llgo_5, label %_llgo_6
%65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %62, i32 0, i32 2
store i64 1, ptr %65, align 4
%66 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %62, align 8
%67 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%68 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 0
store ptr @2, ptr %68, align 8
%69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %67, i32 0, i32 1
store i64 4, ptr %69, align 4
%70 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %67, align 8
%71 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%72 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 0
store ptr @4, ptr %72, align 8
%73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %71, i32 0, i32 1
store i64 11, ptr %73, align 4
%74 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %71, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %70, %"github.com/goplus/llgo/internal/runtime.String" %74, ptr %31, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %66)
%75 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 0
store ptr @0, ptr %76, align 8
%77 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %75, i32 0, i32 1
store i64 16, ptr %77, align 4
%78 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %75, align 8
%79 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %78, i64 25, i64 16, i64 0, i64 1)
%80 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %79)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %80)
store ptr %80, ptr @"*_llgo_main.errorString", align 8
%81 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8
%82 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8
%83 = icmp eq ptr %82, null
br i1 %83, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_4
%83 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 0
store ptr @3, ptr %84, align 8
%85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %83, i32 0, i32 1
store i64 5, ptr %85, align 4
%86 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %83, align 8
%87 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8
%88 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %86, ptr %88, align 8
%89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, i32 0, i32 1
store ptr %80, ptr %89, align 8
%90 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, align 8
%91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24)
%92 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %91, i64 0
store %"github.com/goplus/llgo/internal/abi.Imethod" %90, ptr %92, align 8
%93 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 0
store ptr %91, ptr %94, align 8
%95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 1
store i64 1, ptr %95, align 4
%96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, i32 0, i32 2
%84 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 0
store ptr @3, ptr %85, align 8
%86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 1
store i64 5, ptr %86, align 4
%87 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %84, align 8
%88 = alloca %"github.com/goplus/llgo/internal/abi.Imethod", align 8
%89 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %88, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %87, ptr %89, align 8
%90 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Imethod", ptr %88, i32 0, i32 1
store ptr %81, ptr %90, align 8
%91 = load %"github.com/goplus/llgo/internal/abi.Imethod", ptr %88, align 8
%92 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24)
%93 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %92, i64 0
store %"github.com/goplus/llgo/internal/abi.Imethod" %91, ptr %93, align 8
%94 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 0
store ptr %92, ptr %95, align 8
%96 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 1
store i64 1, ptr %96, align 4
%97 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %93, align 8
%98 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 0
store ptr @2, ptr %99, align 8
%100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %98, i32 0, i32 1
store i64 4, ptr %100, align 4
%101 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %98, align 8
%102 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%103 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 0
store ptr null, ptr %103, align 8
%104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %102, i32 0, i32 1
store i64 0, ptr %104, align 4
%105 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %102, align 8
%106 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %101, %"github.com/goplus/llgo/internal/runtime.String" %105, %"github.com/goplus/llgo/internal/runtime.Slice" %97)
store ptr %106, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8
%97 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, i32 0, i32 2
store i64 1, ptr %97, align 4
%98 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %94, align 8
%99 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 0
store ptr @2, ptr %100, align 8
%101 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %99, i32 0, i32 1
store i64 4, ptr %101, align 4
%102 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %99, align 8
%103 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%104 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %103, i32 0, i32 0
store ptr null, ptr %104, align 8
%105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %103, i32 0, i32 1
store i64 0, ptr %105, align 4
%106 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %103, align 8
%107 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" %102, %"github.com/goplus/llgo/internal/runtime.String" %106, %"github.com/goplus/llgo/internal/runtime.Slice" %98)
store ptr %107, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8
br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_4
@@ -286,12 +289,12 @@ _llgo_6: ; preds = %_llgo_5, %_llgo_4
declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice")
declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1)
declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64)
declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice")

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@ source_filename = "main"
%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 }
@"main.init$guard" = global i1 false, align 1
@_llgo_int = linkonce global ptr null, align 8
@"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88" = linkonce global ptr null, align 8
@0 = private unnamed_addr constant [1 x i8] c"v", align 1
@1 = private unnamed_addr constant [4 x i8] c"main", align 1
@@ -25,16 +26,17 @@ _llgo_0:
%1 = getelementptr inbounds { i64 }, ptr %0, i32 0, i32 0
store i64 1, ptr %1, align 4
%2 = load { i64 }, ptr %0, align 4
%3 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8
%4 = extractvalue { i64 } %2, 0
%5 = inttoptr i64 %4 to ptr
%6 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8
%7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %6, i32 0, i32 0
store ptr %3, ptr %7, align 8
%8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %6, i32 0, i32 1
store ptr %5, ptr %8, align 8
%9 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %6, align 8
ret %"github.com/goplus/llgo/internal/runtime.eface" %9
%3 = load ptr, ptr @_llgo_int, align 8
%4 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8
%5 = extractvalue { i64 } %2, 0
%6 = inttoptr i64 %5 to ptr
%7 = alloca %"github.com/goplus/llgo/internal/runtime.eface", align 8
%8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %7, i32 0, i32 0
store ptr %4, ptr %8, align 8
%9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %7, i32 0, i32 1
store ptr %6, ptr %9, align 8
%10 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %7, align 8
ret %"github.com/goplus/llgo/internal/runtime.eface" %10
}
define void @main.init() {
@@ -240,89 +242,99 @@ declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0
define void @"main.init$after"() {
_llgo_0:
%0 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%1 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 0
store ptr @0, ptr %1, align 8
%2 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %0, i32 0, i32 1
store i64 1, ptr %2, align 4
%3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %0, align 8
%4 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 0
store ptr null, ptr %5, align 8
%6 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %4, i32 0, i32 1
store i64 0, ptr %6, align 4
%7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8
%8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%9 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %3, ptr %8, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %7, i1 false)
%10 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %10, i32 0, i32 0
store ptr @1, ptr %11, align 8
%12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %10, i32 0, i32 1
store i64 4, ptr %12, align 4
%13 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %10, align 8
%14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
%15 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %14, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %9, ptr %15, align 8
%16 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%17 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 0
store ptr %14, ptr %17, align 8
%18 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 1
store i64 1, ptr %18, align 4
%19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, i32 0, i32 2
store i64 1, ptr %19, align 4
%20 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %16, align 8
%21 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %13, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %20)
store ptr %21, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8
%22 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
%23 = icmp eq ptr %22, null
br i1 %23, label %_llgo_1, label %_llgo_2
%0 = load ptr, ptr @_llgo_int, align 8
%1 = icmp eq ptr %0, null
br i1 %1, label %_llgo_1, label %_llgo_2
_llgo_1: ; preds = %_llgo_0
%24 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 0
store ptr @3, ptr %25, align 8
%26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 1
store i64 1, ptr %26, align 4
%27 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %24, align 8
%28 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 0
store ptr null, ptr %29, align 8
%30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 1
store i64 0, ptr %30, align 4
%31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8
%32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%33 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %27, ptr %32, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %31, i1 false)
%34 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%35 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 0
store ptr @1, ptr %35, align 8
%36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %34, i32 0, i32 1
store i64 4, ptr %36, align 4
%37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %34, align 8
%38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
%39 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %38, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %33, ptr %39, align 8
%40 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%41 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 0
store ptr %38, ptr %41, align 8
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 1
store i64 1, ptr %42, align 4
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, i32 0, i32 2
store i64 1, ptr %43, align 4
%44 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %40, align 8
%45 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %37, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %44)
store ptr %45, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
%2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
store ptr %2, ptr @_llgo_int, align 8
br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0
%3 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 0
store ptr @0, ptr %4, align 8
%5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %3, i32 0, i32 1
store i64 1, ptr %5, align 4
%6 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8
%7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0
store ptr null, ptr %8, align 8
%9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1
store i64 0, ptr %9, align 4
%10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8
%11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%12 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %6, ptr %11, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %10, i1 false)
%13 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 0
store ptr @1, ptr %14, align 8
%15 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %13, i32 0, i32 1
store i64 4, ptr %15, align 4
%16 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %13, align 8
%17 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
%18 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %17, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %12, ptr %18, align 8
%19 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 0
store ptr %17, ptr %20, align 8
%21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 1
store i64 1, ptr %21, align 4
%22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, i32 0, i32 2
store i64 1, ptr %22, align 4
%23 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %19, align 8
%24 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %16, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %23)
store ptr %24, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8
%25 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
%26 = icmp eq ptr %25, null
br i1 %26, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2
%27 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%28 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 0
store ptr @3, ptr %28, align 8
%29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %27, i32 0, i32 1
store i64 1, ptr %29, align 4
%30 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %27, align 8
%31 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 0
store ptr null, ptr %32, align 8
%33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 1
store i64 0, ptr %33, align 4
%34 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %31, align 8
%35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34)
%36 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %30, ptr %35, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %34, i1 false)
%37 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 0
store ptr @1, ptr %38, align 8
%39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %37, i32 0, i32 1
store i64 4, ptr %39, align 4
%40 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %37, align 8
%41 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56)
%42 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %41, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %36, ptr %42, align 8
%43 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 0
store ptr %41, ptr %44, align 8
%45 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 1
store i64 1, ptr %45, align 4
%46 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, i32 0, i32 2
store i64 1, ptr %46, align 4
%47 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %43, align 8
%48 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %40, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %47)
store ptr %48, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8
br label %_llgo_4
_llgo_4: ; preds = %_llgo_3, %_llgo_2
ret void
}
declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice")
declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1)
declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64)
declare void @"github.com/goplus/llgo/cl/internal/foo.init"()

View File

@@ -12,14 +12,15 @@ source_filename = "main"
@"main.init$guard" = global i1 false, align 1
@"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo" = linkonce global ptr null, align 8
@0 = private unnamed_addr constant [42 x i8] c"github.com/goplus/llgo/cl/internal/foo.Foo", align 1
@_llgo_byte = linkonce global ptr null, align 8
@"*_llgo_byte" = linkonce global ptr null, align 8
@_llgo_float32 = linkonce global ptr null, align 8
@"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs" = linkonce global ptr null, align 8
@1 = private unnamed_addr constant [2 x i8] c"pb", align 1
@2 = private unnamed_addr constant [1 x i8] c"F", align 1
@3 = private unnamed_addr constant [4 x i8] c"main", align 1
@4 = private unnamed_addr constant [2 x i8] c"Pb", align 1
@"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE" = linkonce global ptr null, align 8
@_llgo_byte = linkonce global ptr null, align 8
@"*_llgo_byte" = linkonce global ptr null, align 8
@5 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1
@6 = private unnamed_addr constant [3 x i8] c"Foo", align 1
@_llgo_main.bar = linkonce global ptr null, align 8
@@ -205,270 +206,285 @@ _llgo_1: ; preds = %_llgo_0
br label %_llgo_2
_llgo_2: ; preds = %_llgo_1, %_llgo_0
%7 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%8 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 0
store ptr @1, ptr %8, align 8
%9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %7, i32 0, i32 1
store i64 2, ptr %9, align 4
%10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8
%11 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%12 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 0
store ptr null, ptr %12, align 8
%13 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %11, i32 0, i32 1
store i64 0, ptr %13, align 4
%14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8
%15 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%16 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %15)
%17 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %10, ptr %16, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %14, i1 false)
%18 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%19 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 0
store ptr @2, ptr %19, align 8
%20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %18, i32 0, i32 1
store i64 1, ptr %20, align 4
%21 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %18, align 8
%22 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%23 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %22, i32 0, i32 0
store ptr null, ptr %23, align 8
%24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %22, i32 0, i32 1
store i64 0, ptr %24, align 4
%25 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %22, align 8
%26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45)
%27 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %21, ptr %26, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %25, i1 false)
%28 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%29 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 0
store ptr @3, ptr %29, align 8
%30 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %28, i32 0, i32 1
store i64 4, ptr %30, align 4
%31 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %28, align 8
%32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112)
%33 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %32, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %17, ptr %33, align 8
%34 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %32, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %27, ptr %34, align 8
%35 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 0
store ptr %32, ptr %36, align 8
%37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 1
store i64 2, ptr %37, align 4
%38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, i32 0, i32 2
store i64 2, ptr %38, align 4
%39 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %35, align 8
%40 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %31, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %39)
store ptr %40, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
%41 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
br i1 %6, label %_llgo_3, label %_llgo_4
%7 = load ptr, ptr @_llgo_byte, align 8
%8 = icmp eq ptr %7, null
br i1 %8, label %_llgo_3, label %_llgo_4
_llgo_3: ; preds = %_llgo_2
%42 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 0
store ptr @4, ptr %43, align 8
%44 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %42, i32 0, i32 1
store i64 2, ptr %44, align 4
%45 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %42, align 8
%46 = load ptr, ptr @_llgo_byte, align 8
%47 = icmp eq ptr %46, null
br i1 %47, label %_llgo_5, label %_llgo_6
%9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
store ptr %9, ptr @_llgo_byte, align 8
br label %_llgo_4
_llgo_4: ; preds = %_llgo_10, %_llgo_2
%48 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 0
store ptr @7, ptr %49, align 8
%50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %48, i32 0, i32 1
store i64 8, ptr %50, align 4
%51 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %48, align 8
%52 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %51, i64 25, i64 16, i64 0, i64 0)
store ptr %52, ptr @_llgo_main.bar, align 8
%53 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 0
store ptr @1, ptr %54, align 8
%55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %53, i32 0, i32 1
store i64 2, ptr %55, align 4
%56 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %53, align 8
%57 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%58 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 0
store ptr null, ptr %58, align 8
%59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %57, i32 0, i32 1
store i64 0, ptr %59, align 4
%60 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %57, align 8
%61 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%62 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %61)
%63 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %56, ptr %62, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %60, i1 false)
%64 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 0
store ptr @8, ptr %65, align 8
%66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i32 0, i32 1
store i64 1, ptr %66, align 4
%67 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %64, align 8
%68 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 0
store ptr null, ptr %69, align 8
%70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %68, i32 0, i32 1
store i64 0, ptr %70, align 4
%71 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %68, align 8
%72 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45)
%73 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %67, ptr %72, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %71, i1 false)
%74 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 0
store ptr @3, ptr %75, align 8
%76 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %74, i32 0, i32 1
store i64 4, ptr %76, align 4
%77 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %74, align 8
%78 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112)
%79 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %78, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %63, ptr %79, align 8
%80 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %78, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %73, ptr %80, align 8
%81 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 0
store ptr %78, ptr %82, align 8
%83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 1
store i64 2, ptr %83, align 4
%84 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, i32 0, i32 2
store i64 2, ptr %84, align 4
%85 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %81, align 8
%86 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %77, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %85)
store ptr %86, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8
%87 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8
%88 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%89 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %88, i32 0, i32 0
store ptr @3, ptr %89, align 8
%90 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %88, i32 0, i32 1
store i64 4, ptr %90, align 4
%91 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %88, align 8
%92 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%93 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 0
store ptr @9, ptr %93, align 8
%94 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %92, i32 0, i32 1
store i64 3, ptr %94, align 4
%95 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %92, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %52, %"github.com/goplus/llgo/internal/runtime.String" %91, %"github.com/goplus/llgo/internal/runtime.String" %95, ptr %87, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
ret void
_llgo_4: ; preds = %_llgo_3, %_llgo_2
%10 = load ptr, ptr @_llgo_byte, align 8
%11 = load ptr, ptr @"*_llgo_byte", align 8
%12 = icmp eq ptr %11, null
br i1 %12, label %_llgo_5, label %_llgo_6
_llgo_5: ; preds = %_llgo_3
%96 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
store ptr %96, ptr @_llgo_byte, align 8
_llgo_5: ; preds = %_llgo_4
%13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%14 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %13)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %14)
store ptr %14, ptr @"*_llgo_byte", align 8
br label %_llgo_6
_llgo_6: ; preds = %_llgo_5, %_llgo_3
%97 = load ptr, ptr @"*_llgo_byte", align 8
%98 = icmp eq ptr %97, null
br i1 %98, label %_llgo_7, label %_llgo_8
_llgo_6: ; preds = %_llgo_5, %_llgo_4
%15 = load ptr, ptr @"*_llgo_byte", align 8
%16 = load ptr, ptr @_llgo_float32, align 8
%17 = icmp eq ptr %16, null
br i1 %17, label %_llgo_7, label %_llgo_8
_llgo_7: ; preds = %_llgo_6
%99 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%100 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %99)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %100)
store ptr %100, ptr @"*_llgo_byte", align 8
%18 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45)
store ptr %18, ptr @_llgo_float32, align 8
br label %_llgo_8
_llgo_8: ; preds = %_llgo_7, %_llgo_6
%101 = load ptr, ptr @"*_llgo_byte", align 8
%102 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
%103 = icmp eq ptr %102, null
br i1 %103, label %_llgo_9, label %_llgo_10
%19 = load ptr, ptr @_llgo_float32, align 8
%20 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%21 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i32 0, i32 0
store ptr @1, ptr %21, align 8
%22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i32 0, i32 1
store i64 2, ptr %22, align 4
%23 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %20, align 8
%24 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 0
store ptr null, ptr %25, align 8
%26 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %24, i32 0, i32 1
store i64 0, ptr %26, align 4
%27 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %24, align 8
%28 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%29 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %28)
%30 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %23, ptr %29, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %27, i1 false)
%31 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%32 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 0
store ptr @2, ptr %32, align 8
%33 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %31, i32 0, i32 1
store i64 1, ptr %33, align 4
%34 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %31, align 8
%35 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%36 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %35, i32 0, i32 0
store ptr null, ptr %36, align 8
%37 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %35, i32 0, i32 1
store i64 0, ptr %37, align 4
%38 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %35, align 8
%39 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45)
%40 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %34, ptr %39, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %38, i1 false)
%41 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%42 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 0
store ptr @3, ptr %42, align 8
%43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %41, i32 0, i32 1
store i64 4, ptr %43, align 4
%44 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8
%45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112)
%46 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %45, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %30, ptr %46, align 8
%47 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %45, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %40, ptr %47, align 8
%48 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%49 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 0
store ptr %45, ptr %49, align 8
%50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 1
store i64 2, ptr %50, align 4
%51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, i32 0, i32 2
store i64 2, ptr %51, align 4
%52 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %48, align 8
%53 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %44, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %52)
store ptr %53, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
%54 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8
br i1 %6, label %_llgo_9, label %_llgo_10
_llgo_9: ; preds = %_llgo_8
%104 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%105 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 0
store ptr %104, ptr %106, align 8
%107 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 1
store i64 0, ptr %107, align 4
%108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, i32 0, i32 2
store i64 0, ptr %108, align 4
%109 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %105, align 8
%110 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8)
%111 = getelementptr ptr, ptr %110, i64 0
store ptr %101, ptr %111, align 8
%112 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%113 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 0
store ptr %110, ptr %113, align 8
%114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 1
store i64 1, ptr %114, align 4
%115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, i32 0, i32 2
store i64 1, ptr %115, align 4
%116 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %112, align 8
%117 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %109, %"github.com/goplus/llgo/internal/runtime.Slice" %116, i1 false)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %117)
store ptr %117, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
br label %_llgo_10
%55 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%56 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %55, i32 0, i32 0
store ptr @4, ptr %56, align 8
%57 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %55, i32 0, i32 1
store i64 2, ptr %57, align 4
%58 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %55, align 8
%59 = load ptr, ptr @"*_llgo_byte", align 8
%60 = load ptr, ptr @"*_llgo_byte", align 8
%61 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
%62 = icmp eq ptr %61, null
br i1 %62, label %_llgo_11, label %_llgo_12
_llgo_10: ; preds = %_llgo_9, %_llgo_8
%118 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
%119 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%120 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %45, ptr %120, align 8
%121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 1
_llgo_10: ; preds = %_llgo_12, %_llgo_8
%63 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%64 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 0
store ptr @7, ptr %64, align 8
%65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %63, i32 0, i32 1
store i64 8, ptr %65, align 4
%66 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %63, align 8
%67 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" %66, i64 25, i64 16, i64 0, i64 0)
store ptr %67, ptr @_llgo_main.bar, align 8
%68 = load ptr, ptr @"*_llgo_byte", align 8
%69 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %69, i32 0, i32 0
store ptr @1, ptr %70, align 8
%71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %69, i32 0, i32 1
store i64 2, ptr %71, align 4
%72 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %69, align 8
%73 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%74 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %73, i32 0, i32 0
store ptr null, ptr %74, align 8
%75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %73, i32 0, i32 1
store i64 0, ptr %75, align 4
%76 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %73, align 8
%77 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40)
%78 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %77)
%79 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %72, ptr %78, i64 0, %"github.com/goplus/llgo/internal/runtime.String" %76, i1 false)
%80 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%81 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 0
store ptr @8, ptr %81, align 8
%82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %80, i32 0, i32 1
store i64 1, ptr %82, align 4
%83 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %80, align 8
%84 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%85 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 0
store ptr null, ptr %85, align 8
%86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %84, i32 0, i32 1
store i64 0, ptr %86, align 4
%87 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %84, align 8
%88 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45)
%89 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" %83, ptr %88, i64 8, %"github.com/goplus/llgo/internal/runtime.String" %87, i1 false)
%90 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 0
store ptr @3, ptr %91, align 8
%92 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %90, i32 0, i32 1
store i64 4, ptr %92, align 4
%93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %90, align 8
%94 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112)
%95 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %94, i64 0
store %"github.com/goplus/llgo/internal/abi.StructField" %79, ptr %95, align 8
%96 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %94, i64 1
store %"github.com/goplus/llgo/internal/abi.StructField" %89, ptr %96, align 8
%97 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%98 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 0
store ptr %94, ptr %98, align 8
%99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 1
store i64 2, ptr %99, align 4
%100 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, i32 0, i32 2
store i64 2, ptr %100, align 4
%101 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %97, align 8
%102 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" %93, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %101)
store ptr %102, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8
%103 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8
%104 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%105 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %104, i32 0, i32 0
store ptr @3, ptr %105, align 8
%106 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %104, i32 0, i32 1
store i64 4, ptr %106, align 4
%107 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %104, align 8
%108 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%109 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %108, i32 0, i32 0
store ptr @9, ptr %109, align 8
%110 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %108, i32 0, i32 1
store i64 3, ptr %110, align 4
%111 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %108, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %67, %"github.com/goplus/llgo/internal/runtime.String" %107, %"github.com/goplus/llgo/internal/runtime.String" %111, ptr %103, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer)
ret void
_llgo_11: ; preds = %_llgo_9
%112 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0)
%113 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%114 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, i32 0, i32 0
store ptr %112, ptr %114, align 8
%115 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, i32 0, i32 1
store i64 0, ptr %115, align 4
%116 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, i32 0, i32 2
store i64 0, ptr %116, align 4
%117 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %113, align 8
%118 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8)
%119 = getelementptr ptr, ptr %118, i64 0
store ptr %60, ptr %119, align 8
%120 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%121 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, i32 0, i32 0
store ptr %118, ptr %121, align 8
%122 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 2
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %122, align 8
%123 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i32 0, i32 3
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %123, align 8
%124 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %119, align 8
%125 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %45, ptr %126, align 8
%127 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 1
store ptr %118, ptr %127, align 8
%128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 2
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %128, align 8
%129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %125, i32 0, i32 3
store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %129, align 8
%130 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %125, align 8
%131 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%132 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %131, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %130, ptr %132, align 8
%133 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%134 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 0
store ptr %131, ptr %134, align 8
%135 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 1
store i64 1, ptr %135, align 4
%136 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, i32 0, i32 2
store i64 1, ptr %136, align 4
%137 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %133, align 8
%138 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%139 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %138, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %124, ptr %139, align 8
%140 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%141 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, i32 0, i32 0
store ptr %138, ptr %141, align 8
%142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, i32 0, i32 1
store i64 1, ptr %142, align 4
%143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, i32 0, i32 2
%122 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, i32 0, i32 1
store i64 1, ptr %122, align 4
%123 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, i32 0, i32 2
store i64 1, ptr %123, align 4
%124 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %120, align 8
%125 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %117, %"github.com/goplus/llgo/internal/runtime.Slice" %124, i1 false)
call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %125)
store ptr %125, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
br label %_llgo_12
_llgo_12: ; preds = %_llgo_11, %_llgo_9
%126 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8
%127 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %127, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %58, ptr %128, align 8
%129 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %127, i32 0, i32 1
store ptr %126, ptr %129, align 8
%130 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %127, i32 0, i32 2
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %130, align 8
%131 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %127, i32 0, i32 3
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %131, align 8
%132 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %127, align 8
%133 = alloca %"github.com/goplus/llgo/internal/abi.Method", align 8
%134 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %133, i32 0, i32 0
store %"github.com/goplus/llgo/internal/runtime.String" %58, ptr %134, align 8
%135 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %133, i32 0, i32 1
store ptr %126, ptr %135, align 8
%136 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %133, i32 0, i32 2
store ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", ptr %136, align 8
%137 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Method", ptr %133, i32 0, i32 3
store ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", ptr %137, align 8
%138 = load %"github.com/goplus/llgo/internal/abi.Method", ptr %133, align 8
%139 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%140 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %139, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %138, ptr %140, align 8
%141 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%142 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, i32 0, i32 0
store ptr %139, ptr %142, align 8
%143 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, i32 0, i32 1
store i64 1, ptr %143, align 4
%144 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %140, align 8
%145 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%146 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %145, i32 0, i32 0
store ptr @5, ptr %146, align 8
%147 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %145, i32 0, i32 1
store i64 38, ptr %147, align 4
%148 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %145, align 8
%149 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %149, i32 0, i32 0
store ptr @6, ptr %150, align 8
%151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %149, i32 0, i32 1
store i64 3, ptr %151, align 4
%152 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %149, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %148, %"github.com/goplus/llgo/internal/runtime.String" %152, ptr %41, %"github.com/goplus/llgo/internal/runtime.Slice" %137, %"github.com/goplus/llgo/internal/runtime.Slice" %144)
br label %_llgo_4
%144 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, i32 0, i32 2
store i64 1, ptr %144, align 4
%145 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %141, align 8
%146 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40)
%147 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %146, i64 0
store %"github.com/goplus/llgo/internal/abi.Method" %132, ptr %147, align 8
%148 = alloca %"github.com/goplus/llgo/internal/runtime.Slice", align 8
%149 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %148, i32 0, i32 0
store ptr %146, ptr %149, align 8
%150 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %148, i32 0, i32 1
store i64 1, ptr %150, align 4
%151 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.Slice", ptr %148, i32 0, i32 2
store i64 1, ptr %151, align 4
%152 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %148, align 8
%153 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%154 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %153, i32 0, i32 0
store ptr @5, ptr %154, align 8
%155 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %153, i32 0, i32 1
store i64 38, ptr %155, align 4
%156 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %153, align 8
%157 = alloca %"github.com/goplus/llgo/internal/runtime.String", align 8
%158 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %157, i32 0, i32 0
store ptr @6, ptr %158, align 8
%159 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %157, i32 0, i32 1
store i64 3, ptr %159, align 4
%160 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %157, align 8
call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %156, %"github.com/goplus/llgo/internal/runtime.String" %160, ptr %54, %"github.com/goplus/llgo/internal/runtime.Slice" %145, %"github.com/goplus/llgo/internal/runtime.Slice" %152)
br label %_llgo_10
}
declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr)
declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr)
declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice")
declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1)
declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr)
declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64)
declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64)
declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice")
declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr)
declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1)
declare ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb"(ptr)