ssa: compile go string constant without alloca

This commit is contained in:
Li Jie
2024-11-24 15:19:16 +08:00
parent 17832fe18c
commit 43c1bc8d5f
73 changed files with 9742 additions and 21877 deletions

View File

@@ -10,13 +10,7 @@ source_filename = "main"
define { ptr, ptr } @main.add() {
_llgo_0:
%0 = alloca { ptr, ptr }, align 8
%1 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr @"__llgo_stub.main.add$1", ptr %1, align 8
%2 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr null, ptr %2, align 8
%3 = load { ptr, ptr }, ptr %0, align 8
ret { ptr, ptr } %3
ret { ptr, ptr } { ptr @"__llgo_stub.main.add$1", ptr null }
}
define i64 @"main.add$1"(i64 %0, i64 %1) {
@@ -27,19 +21,7 @@ _llgo_0:
define { { ptr, ptr }, i64 } @main.add2() {
_llgo_0:
%0 = alloca { ptr, ptr }, align 8
%1 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr @"__llgo_stub.main.add2$1", ptr %1, align 8
%2 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr null, ptr %2, align 8
%3 = load { ptr, ptr }, ptr %0, align 8
%4 = alloca { { ptr, ptr }, i64 }, align 8
%5 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %4, i32 0, i32 0
store { ptr, ptr } %3, ptr %5, align 8
%6 = getelementptr inbounds { { ptr, ptr }, i64 }, ptr %4, i32 0, i32 1
store i64 1, ptr %6, align 4
%7 = load { { ptr, ptr }, i64 }, ptr %4, align 8
ret { { ptr, ptr }, i64 } %7
ret { { ptr, ptr }, i64 } { { ptr, ptr } { ptr @"__llgo_stub.main.add2$1", ptr null }, i64 1 }
}
define i64 @"main.add2$1"(i64 %0, i64 %1) {
@@ -90,13 +72,7 @@ _llgo_0:
define { ptr, ptr } @"main.main$1"() {
_llgo_0:
%0 = alloca { ptr, ptr }, align 8
%1 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 0
store ptr @"__llgo_stub.main.main$1$1", ptr %1, align 8
%2 = getelementptr inbounds { ptr, ptr }, ptr %0, i32 0, i32 1
store ptr null, ptr %2, align 8
%3 = load { ptr, ptr }, ptr %0, align 8
ret { ptr, ptr } %3
ret { ptr, ptr } { ptr @"__llgo_stub.main.main$1$1", ptr null }
}
define i64 @"main.main$1$1"(i64 %0, i64 %1) {