From 616596e57118603c0c8fd2f4ae82501e9045a02b Mon Sep 17 00:00:00 2001 From: xushiwei Date: Mon, 29 Apr 2024 02:56:21 +0800 Subject: [PATCH] cl: don't need to compile alias type --- .gitignore | 2 + cl/compile.go | 3 + internal/runtime/llgo_autogen.ll | 130 +------------------------------ 3 files changed, 6 insertions(+), 129 deletions(-) diff --git a/.gitignore b/.gitignore index c16a7bb2..97750ce6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ *.so *.dylib +err.log + _go/ _runtime/ _tinygo/ diff --git a/cl/compile.go b/cl/compile.go index b46f5c7e..57eea93c 100644 --- a/cl/compile.go +++ b/cl/compile.go @@ -137,6 +137,9 @@ type context struct { func (p *context) compileType(pkg llssa.Package, t *ssa.Type) { tn := t.Object().(*types.TypeName) + if tn.IsAlias() { // don't need to compile alias type + return + } tnName := tn.Name() typ := tn.Type() name := llssa.FullName(tn.Pkg(), tnName) diff --git a/internal/runtime/llgo_autogen.ll b/internal/runtime/llgo_autogen.ll index bb922a98..57437ada 100644 --- a/internal/runtime/llgo_autogen.ll +++ b/internal/runtime/llgo_autogen.ll @@ -4,10 +4,8 @@ source_filename = "github.com/goplus/llgo/internal/runtime" %"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } %"github.com/goplus/llgo/internal/runtime.itab" = type { ptr, ptr, i32, [4 x i8], [1 x i64] } %"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/abi.InterfaceType" = type { %"github.com/goplus/llgo/internal/abi.Type", %"github.com/goplus/llgo/internal/abi.Name", %"github.com/goplus/llgo/internal/runtime.Slice" } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, ptr, ptr, i32, i32 } -%"github.com/goplus/llgo/internal/abi.Name" = type { ptr } %"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, ptr, ptr, i32, i32 } @"github.com/goplus/llgo/internal/runtime.TyAny" = global ptr null @"github.com/goplus/llgo/internal/runtime.basicTypes" = global ptr null @@ -83,114 +81,6 @@ _llgo_2: ; preds = %_llgo_0 call void @abort() } -define ptr @"(*github.com/goplus/llgo/internal/abi.InterfaceType).ArrayType"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).ArrayType"(ptr %1) - ret ptr %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).ArrayType"(ptr %3) - ret ptr %4 - -_llgo_01: ; No predecessors! -} - -define ptr @"(*github.com/goplus/llgo/internal/abi.InterfaceType).Common"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).Common"(ptr %1) - ret ptr %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).Common"(ptr %3) - ret ptr %4 - -_llgo_01: ; No predecessors! -} - -define ptr @"(*github.com/goplus/llgo/internal/abi.InterfaceType).Elem"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).Elem"(ptr %1) - ret ptr %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).Elem"(ptr %3) - ret ptr %4 - -_llgo_01: ; No predecessors! -} - -define ptr @"(*github.com/goplus/llgo/internal/abi.InterfaceType).FuncType"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).FuncType"(ptr %1) - ret ptr %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).FuncType"(ptr %3) - ret ptr %4 - -_llgo_01: ; No predecessors! -} - -define ptr @"(*github.com/goplus/llgo/internal/abi.InterfaceType).InterfaceType"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).InterfaceType"(ptr %1) - ret ptr %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).InterfaceType"(ptr %3) - ret ptr %4 - -_llgo_01: ; No predecessors! -} - -define i64 @"(*github.com/goplus/llgo/internal/abi.InterfaceType).Kind"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call i64 @"(*github.com/goplus/llgo/internal/abi.Type).Kind"(ptr %1) - ret i64 %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call i64 @"(*github.com/goplus/llgo/internal/abi.Type).Kind"(ptr %3) - ret i64 %4 - -_llgo_01: ; No predecessors! -} - -define i64 @"(*github.com/goplus/llgo/internal/abi.InterfaceType).Len"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call i64 @"(*github.com/goplus/llgo/internal/abi.Type).Len"(ptr %1) - ret i64 %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call i64 @"(*github.com/goplus/llgo/internal/abi.Type).Len"(ptr %3) - ret i64 %4 - -_llgo_01: ; No predecessors! -} - -define ptr @"(*github.com/goplus/llgo/internal/abi.InterfaceType).MapType"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).MapType"(ptr %1) - ret ptr %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).MapType"(ptr %3) - ret ptr %4 - -_llgo_01: ; No predecessors! -} - -define ptr @"(*github.com/goplus/llgo/internal/abi.InterfaceType).StructType"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %2 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).StructType"(ptr %1) - ret ptr %2 - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.InterfaceType", ptr %0, i32 0, i32 0 - %4 = call ptr @"(*github.com/goplus/llgo/internal/abi.Type).StructType"(ptr %3) - ret ptr %4 - -_llgo_01: ; No predecessors! -} - define %"github.com/goplus/llgo/internal/runtime.iface" @"github.com/goplus/llgo/internal/runtime.MakeAny"(ptr %0, ptr %1) { _llgo_0: %2 = alloca %"github.com/goplus/llgo/internal/runtime.iface", align 8 @@ -297,24 +187,6 @@ _llgo_0: ret %"github.com/goplus/llgo/internal/runtime.Slice" %4 } -declare ptr @"(*github.com/goplus/llgo/internal/abi.Type).ArrayType"(ptr) - -declare ptr @"(*github.com/goplus/llgo/internal/abi.Type).Common"(ptr) - -declare ptr @"(*github.com/goplus/llgo/internal/abi.Type).Elem"(ptr) - -declare ptr @"(*github.com/goplus/llgo/internal/abi.Type).FuncType"(ptr) - -declare ptr @"(*github.com/goplus/llgo/internal/abi.Type).InterfaceType"(ptr) - -declare i64 @"(*github.com/goplus/llgo/internal/abi.Type).Kind"(ptr) - -declare i64 @"(*github.com/goplus/llgo/internal/abi.Type).Len"(ptr) - -declare ptr @"(*github.com/goplus/llgo/internal/abi.Type).MapType"(ptr) - -declare ptr @"(*github.com/goplus/llgo/internal/abi.Type).StructType"(ptr) - define ptr @"github.com/goplus/llgo/internal/runtime.basicType"(i64 %0) { _llgo_0: %1 = call ptr @"github.com/goplus/llgo/internal/runtime.Alloc"(i64 16)