mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 19:50:14 +01:00
Update LLVM (#3932)
Fixes #3136, wherein the clangd patch is upstreamed so we don't need to apply it anymore. Updates goldens relative to a yaml output change in LLVM.
This commit is contained in:
+3
-4
@@ -105,8 +105,8 @@ bazel_dep(name = "zstd", version = "1.5.5.bcr.1", repo_name = "llvm_zstd")
|
||||
|
||||
# We pin to specific upstream commits and try to track top-of-tree reasonably
|
||||
# closely rather than pinning to a specific release.
|
||||
# HEAD as of 2024-03-06.
|
||||
llvm_project_version = "be15a6b3b68bed7b9d982f25b2e10a273302002a"
|
||||
# HEAD as of 2024-04-30.
|
||||
llvm_project_version = "a7b968a57834a0e522505b56fab0ca4b979cb68f"
|
||||
|
||||
# Load a repository for the raw llvm-project, pre-overlay.
|
||||
http_archive(
|
||||
@@ -116,9 +116,8 @@ http_archive(
|
||||
patches = [
|
||||
"@carbon//bazel/llvm_project:0001_Patch_for_mallinfo2_when_using_Bazel_build_system.patch",
|
||||
"@carbon//bazel/llvm_project:0002_Added_Bazel_build_for_compiler_rt_fuzzer.patch",
|
||||
"@carbon//bazel/llvm_project:0003_Add_library_for_clangd.patch",
|
||||
],
|
||||
sha256 = "1e6cc2eb634438a59fb5e1b87e7bb35883fb680dc2934f431150db22fb3a6c09",
|
||||
sha256 = "57c598287c774ff0a6919de6bcdf331bb60bb962f8ba74b4ce6a3fc0cb6aaa0c",
|
||||
strip_prefix = "llvm-project-{0}".format(llvm_project_version),
|
||||
urls = ["https://github.com/llvm/llvm-project/archive/{0}.tar.gz".format(llvm_project_version)],
|
||||
)
|
||||
|
||||
Generated
+9
-15
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"lockFileVersion": 6,
|
||||
"moduleFileHash": "f747f3ca0f4cd26f15f1bdb5d4e117245377124dbe291fddc28136aa40a927c4",
|
||||
"moduleFileHash": "93b7acb43f1cabce8291aa0a0f87b56afabbfb021e6625c01be806a93726e716",
|
||||
"flags": {
|
||||
"cmdRegistries": [
|
||||
"https://bcr.bazel.build/"
|
||||
@@ -68,13 +68,12 @@
|
||||
],
|
||||
"patches": [
|
||||
"@carbon//bazel/llvm_project:0001_Patch_for_mallinfo2_when_using_Bazel_build_system.patch",
|
||||
"@carbon//bazel/llvm_project:0002_Added_Bazel_build_for_compiler_rt_fuzzer.patch",
|
||||
"@carbon//bazel/llvm_project:0003_Add_library_for_clangd.patch"
|
||||
"@carbon//bazel/llvm_project:0002_Added_Bazel_build_for_compiler_rt_fuzzer.patch"
|
||||
],
|
||||
"sha256": "1e6cc2eb634438a59fb5e1b87e7bb35883fb680dc2934f431150db22fb3a6c09",
|
||||
"strip_prefix": "llvm-project-be15a6b3b68bed7b9d982f25b2e10a273302002a",
|
||||
"sha256": "57c598287c774ff0a6919de6bcdf331bb60bb962f8ba74b4ce6a3fc0cb6aaa0c",
|
||||
"strip_prefix": "llvm-project-a7b968a57834a0e522505b56fab0ca4b979cb68f",
|
||||
"urls": [
|
||||
"https://github.com/llvm/llvm-project/archive/be15a6b3b68bed7b9d982f25b2e10a273302002a.tar.gz"
|
||||
"https://github.com/llvm/llvm-project/archive/a7b968a57834a0e522505b56fab0ca4b979cb68f.tar.gz"
|
||||
],
|
||||
"name": "llvm-raw"
|
||||
},
|
||||
@@ -112,7 +111,7 @@
|
||||
"usingModule": "<root>",
|
||||
"location": {
|
||||
"file": "@@//:MODULE.bazel",
|
||||
"line": 127,
|
||||
"line": 126,
|
||||
"column": 29
|
||||
},
|
||||
"imports": {
|
||||
@@ -129,7 +128,7 @@
|
||||
"usingModule": "<root>",
|
||||
"location": {
|
||||
"file": "@@//:MODULE.bazel",
|
||||
"line": 139,
|
||||
"line": 138,
|
||||
"column": 23
|
||||
},
|
||||
"imports": {
|
||||
@@ -145,7 +144,7 @@
|
||||
"devDependency": false,
|
||||
"location": {
|
||||
"file": "@@//:MODULE.bazel",
|
||||
"line": 140,
|
||||
"line": 139,
|
||||
"column": 17
|
||||
}
|
||||
}
|
||||
@@ -1714,7 +1713,7 @@
|
||||
},
|
||||
"//bazel/llvm_project:llvm_project.bzl%llvm_project": {
|
||||
"general": {
|
||||
"bzlTransitiveDigest": "tHgfM+Nmv0eP7sYjIzNwlZ8PBPZsDBwZN0+xb709g6Y=",
|
||||
"bzlTransitiveDigest": "QG2kkxgw5yvNHGJYbsdwlidT0uFXu5uZMW6KftuXDsI=",
|
||||
"recordedFileInputs": {},
|
||||
"recordedDirentsInputs": {},
|
||||
"envVariables": {},
|
||||
@@ -1735,11 +1734,6 @@
|
||||
"",
|
||||
"llvm-raw",
|
||||
"_main~_repo_rules~llvm-raw"
|
||||
],
|
||||
[
|
||||
"_main~_repo_rules~llvm-raw",
|
||||
"bazel_tools",
|
||||
"bazel_tools"
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
From 2625e497fef1429f2041922a739d841050eda909 Mon Sep 17 00:00:00 2001
|
||||
From: maan2003 <manmeetmann2003@gmail.com>
|
||||
Date: Sat, 19 Aug 2023 02:32:03 +0530
|
||||
Subject: [PATCH] Add library for clangd
|
||||
|
||||
This exports clangd language server protocol helpers publically.
|
||||
Feature.h needs Feature.inc which is generated during build process, so we
|
||||
disable all features for now.
|
||||
---
|
||||
clang-tools-extra/clangd/BUILD.bazel | 36 +++++++++++++++++++++++++++
|
||||
clang-tools-extra/clangd/Protocol.cpp | 15 +++++++----
|
||||
clang-tools-extra/clangd/Protocol.h | 12 +++++++--
|
||||
clang-tools-extra/clangd/Transport.h | 1 -
|
||||
4 files changed, 56 insertions(+), 8 deletions(-)
|
||||
create mode 100644 clang-tools-extra/clangd/BUILD.bazel
|
||||
|
||||
diff --git a/clang-tools-extra/clangd/BUILD.bazel b/clang-tools-extra/clangd/BUILD.bazel
|
||||
new file mode 100644
|
||||
index 000000000..9f3f93f24
|
||||
--- /dev/null
|
||||
+++ b/clang-tools-extra/clangd/BUILD.bazel
|
||||
@@ -0,0 +1,39 @@
|
||||
+package(default_visibility = ["//visibility:public"])
|
||||
+
|
||||
+cc_library(
|
||||
+ name = "clangd_library",
|
||||
+ srcs = [
|
||||
+ "JSONTransport.cpp",
|
||||
+ "Protocol.cpp",
|
||||
+ "URI.cpp",
|
||||
+ "index/SymbolID.cpp",
|
||||
+ "support/Logger.cpp",
|
||||
+ "support/Trace.cpp",
|
||||
+ "support/MemoryTree.cpp",
|
||||
+ "support/Context.cpp",
|
||||
+ "support/Cancellation.cpp",
|
||||
+ "support/ThreadCrashReporter.cpp",
|
||||
+ "support/Shutdown.cpp",
|
||||
+ ],
|
||||
+ hdrs = [
|
||||
+ "Transport.h",
|
||||
+ "Protocol.h",
|
||||
+ "URI.h",
|
||||
+ "LSPBinder.h",
|
||||
+ "index/SymbolID.h",
|
||||
+ "support/Function.h",
|
||||
+ "support/Cancellation.h",
|
||||
+ "support/ThreadCrashReporter.h",
|
||||
+ "support/Logger.h",
|
||||
+ "support/Trace.h",
|
||||
+ "support/MemoryTree.h",
|
||||
+ "support/Context.h",
|
||||
+ "support/Shutdown.h",
|
||||
+ ],
|
||||
+ includes = ["."],
|
||||
+ deps = [
|
||||
+ "//llvm:Support",
|
||||
+ "//clang:basic",
|
||||
+ "//clang:index",
|
||||
+ ],
|
||||
+)
|
||||
diff --git a/clang-tools-extra/clangd/Transport.h b/clang-tools-extra/clangd/Transport.h
|
||||
index 4e80ea95b..f17441cfc 100644
|
||||
--- a/clang-tools-extra/clangd/Transport.h
|
||||
+++ b/clang-tools-extra/clangd/Transport.h
|
||||
@@ -17,9 +17,8 @@
|
||||
|
||||
#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_TRANSPORT_H
|
||||
#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_TRANSPORT_H
|
||||
|
||||
-#include "Feature.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/Support/JSON.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
|
||||
--
|
||||
2.41.0
|
||||
@@ -29,7 +29,7 @@ cc_binary(
|
||||
"//toolchain/parse:node_kind",
|
||||
"//toolchain/parse:tree",
|
||||
"//toolchain/source:source_buffer",
|
||||
"@llvm-project//clang-tools-extra/clangd:clangd_library",
|
||||
"@llvm-project//clang-tools-extra/clangd:ClangDaemon",
|
||||
"@llvm-project//llvm:Support",
|
||||
],
|
||||
)
|
||||
|
||||
+2
-2
@@ -29,7 +29,7 @@
|
||||
// CHECK:STDOUT: instBoundMethodType: {kind: Builtin, arg0: BoundMethodType, type: typeTypeType}
|
||||
// CHECK:STDOUT: instNamespaceType: {kind: Builtin, arg0: NamespaceType, type: typeTypeType}
|
||||
// CHECK:STDOUT: instWitnessType: {kind: Builtin, arg0: WitnessType, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+0: {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: 'inst+0': {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: instTypeType: template instTypeType
|
||||
// CHECK:STDOUT: instError: template instError
|
||||
@@ -41,7 +41,7 @@
|
||||
// CHECK:STDOUT: instBoundMethodType: template instBoundMethodType
|
||||
// CHECK:STDOUT: instNamespaceType: template instNamespaceType
|
||||
// CHECK:STDOUT: instWitnessType: template instWitnessType
|
||||
// CHECK:STDOUT: inst+0: template inst+0
|
||||
// CHECK:STDOUT: 'inst+0': template inst+0
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: empty: {}
|
||||
// CHECK:STDOUT: exports: {}
|
||||
|
||||
+10
-10
@@ -33,12 +33,12 @@ fn B() {}
|
||||
// CHECK:STDOUT: type1: {constant: template instFunctionType, value_rep: {kind: copy, type: type1}}
|
||||
// CHECK:STDOUT: type_blocks: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst+0: {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: inst+1: {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+2: {kind: Return}
|
||||
// CHECK:STDOUT: 'inst+0': {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: 'inst+1': {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+2': {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst+0: template inst+0
|
||||
// CHECK:STDOUT: inst+1: template inst+1
|
||||
// CHECK:STDOUT: 'inst+0': template inst+0
|
||||
// CHECK:STDOUT: 'inst+1': template inst+1
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
@@ -80,12 +80,12 @@ fn B() {}
|
||||
// CHECK:STDOUT: type1: {constant: template instFunctionType, value_rep: {kind: copy, type: type1}}
|
||||
// CHECK:STDOUT: type_blocks: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst+0: {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: inst+1: {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+2: {kind: Return}
|
||||
// CHECK:STDOUT: 'inst+0': {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: 'inst+1': {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+2': {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst+0: template inst+0
|
||||
// CHECK:STDOUT: inst+1: template inst+1
|
||||
// CHECK:STDOUT: 'inst+0': template inst+0
|
||||
// CHECK:STDOUT: 'inst+1': template inst+1
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
|
||||
@@ -33,12 +33,12 @@ fn B() {}
|
||||
// CHECK:STDOUT: type1: {constant: template instFunctionType, value_rep: {kind: copy, type: type1}}
|
||||
// CHECK:STDOUT: type_blocks: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst+0: {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: inst+1: {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+2: {kind: Return}
|
||||
// CHECK:STDOUT: 'inst+0': {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: 'inst+1': {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+2': {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst+0: template inst+0
|
||||
// CHECK:STDOUT: inst+1: template inst+1
|
||||
// CHECK:STDOUT: 'inst+0': template inst+0
|
||||
// CHECK:STDOUT: 'inst+1': template inst+1
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
@@ -65,12 +65,12 @@ fn B() {}
|
||||
// CHECK:STDOUT: type1: {constant: template instFunctionType, value_rep: {kind: copy, type: type1}}
|
||||
// CHECK:STDOUT: type_blocks: {}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst+0: {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: inst+1: {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+2: {kind: Return}
|
||||
// CHECK:STDOUT: 'inst+0': {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: 'inst+1': {kind: FunctionDecl, arg0: function0, arg1: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+2': {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst+0: template inst+0
|
||||
// CHECK:STDOUT: inst+1: template inst+1
|
||||
// CHECK:STDOUT: 'inst+0': template inst+0
|
||||
// CHECK:STDOUT: 'inst+1': template inst+1
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
|
||||
@@ -48,54 +48,54 @@ fn Foo(n: ()) -> ((), ()) {
|
||||
// CHECK:STDOUT: 0: type1
|
||||
// CHECK:STDOUT: 1: type1
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst+0: {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: inst+1: {kind: TupleType, arg0: typeBlock0, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+2: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+3: {kind: Converted, arg0: inst+2, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+4: {kind: Param, arg0: name1, type: type1}
|
||||
// CHECK:STDOUT: inst+5: {kind: BindName, arg0: bindName0, arg1: inst+4, type: type1}
|
||||
// CHECK:STDOUT: inst+6: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+7: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+8: {kind: TupleType, arg0: typeBlock4, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+9: {kind: TupleLiteral, arg0: block4, type: type2}
|
||||
// CHECK:STDOUT: inst+10: {kind: Converted, arg0: inst+6, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+11: {kind: Converted, arg0: inst+7, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+12: {kind: Converted, arg0: inst+9, arg1: inst+8, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+13: {kind: VarStorage, arg0: nameReturnSlot, type: type2}
|
||||
// CHECK:STDOUT: inst+14: {kind: FunctionDecl, arg0: function0, arg1: block5, type: type3}
|
||||
// CHECK:STDOUT: inst+15: {kind: PointerType, arg0: type2, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+16: {kind: NameRef, arg0: name1, arg1: inst+5, type: type1}
|
||||
// CHECK:STDOUT: inst+17: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+18: {kind: TupleLiteral, arg0: block7, type: type2}
|
||||
// CHECK:STDOUT: inst+19: {kind: TupleAccess, arg0: inst+13, arg1: element0, type: type1}
|
||||
// CHECK:STDOUT: inst+20: {kind: TupleInit, arg0: block8, arg1: inst+19, type: type1}
|
||||
// CHECK:STDOUT: inst+21: {kind: TupleValue, arg0: block9, type: type1}
|
||||
// CHECK:STDOUT: inst+22: {kind: Converted, arg0: inst+16, arg1: inst+20, type: type1}
|
||||
// CHECK:STDOUT: inst+23: {kind: TupleAccess, arg0: inst+13, arg1: element1, type: type1}
|
||||
// CHECK:STDOUT: inst+24: {kind: TupleInit, arg0: empty, arg1: inst+23, type: type1}
|
||||
// CHECK:STDOUT: inst+25: {kind: Converted, arg0: inst+17, arg1: inst+24, type: type1}
|
||||
// CHECK:STDOUT: inst+26: {kind: TupleInit, arg0: block10, arg1: inst+13, type: type2}
|
||||
// CHECK:STDOUT: inst+27: {kind: TupleValue, arg0: block12, type: type2}
|
||||
// CHECK:STDOUT: inst+28: {kind: Converted, arg0: inst+18, arg1: inst+26, type: type2}
|
||||
// CHECK:STDOUT: inst+29: {kind: ReturnExpr, arg0: inst+28, arg1: inst+13}
|
||||
// CHECK:STDOUT: 'inst+0': {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: 'inst+1': {kind: TupleType, arg0: typeBlock0, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+2': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+3': {kind: Converted, arg0: inst+2, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+4': {kind: Param, arg0: name1, type: type1}
|
||||
// CHECK:STDOUT: 'inst+5': {kind: BindName, arg0: bindName0, arg1: inst+4, type: type1}
|
||||
// CHECK:STDOUT: 'inst+6': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+7': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+8': {kind: TupleType, arg0: typeBlock4, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+9': {kind: TupleLiteral, arg0: block4, type: type2}
|
||||
// CHECK:STDOUT: 'inst+10': {kind: Converted, arg0: inst+6, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+11': {kind: Converted, arg0: inst+7, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+12': {kind: Converted, arg0: inst+9, arg1: inst+8, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+13': {kind: VarStorage, arg0: nameReturnSlot, type: type2}
|
||||
// CHECK:STDOUT: 'inst+14': {kind: FunctionDecl, arg0: function0, arg1: block5, type: type3}
|
||||
// CHECK:STDOUT: 'inst+15': {kind: PointerType, arg0: type2, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+16': {kind: NameRef, arg0: name1, arg1: inst+5, type: type1}
|
||||
// CHECK:STDOUT: 'inst+17': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+18': {kind: TupleLiteral, arg0: block7, type: type2}
|
||||
// CHECK:STDOUT: 'inst+19': {kind: TupleAccess, arg0: inst+13, arg1: element0, type: type1}
|
||||
// CHECK:STDOUT: 'inst+20': {kind: TupleInit, arg0: block8, arg1: inst+19, type: type1}
|
||||
// CHECK:STDOUT: 'inst+21': {kind: TupleValue, arg0: block9, type: type1}
|
||||
// CHECK:STDOUT: 'inst+22': {kind: Converted, arg0: inst+16, arg1: inst+20, type: type1}
|
||||
// CHECK:STDOUT: 'inst+23': {kind: TupleAccess, arg0: inst+13, arg1: element1, type: type1}
|
||||
// CHECK:STDOUT: 'inst+24': {kind: TupleInit, arg0: empty, arg1: inst+23, type: type1}
|
||||
// CHECK:STDOUT: 'inst+25': {kind: Converted, arg0: inst+17, arg1: inst+24, type: type1}
|
||||
// CHECK:STDOUT: 'inst+26': {kind: TupleInit, arg0: block10, arg1: inst+13, type: type2}
|
||||
// CHECK:STDOUT: 'inst+27': {kind: TupleValue, arg0: block12, type: type2}
|
||||
// CHECK:STDOUT: 'inst+28': {kind: Converted, arg0: inst+18, arg1: inst+26, type: type2}
|
||||
// CHECK:STDOUT: 'inst+29': {kind: ReturnExpr, arg0: inst+28, arg1: inst+13}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst+0: template inst+0
|
||||
// CHECK:STDOUT: inst+1: template inst+1
|
||||
// CHECK:STDOUT: inst+3: template inst+1
|
||||
// CHECK:STDOUT: inst+8: template inst+8
|
||||
// CHECK:STDOUT: inst+10: template inst+1
|
||||
// CHECK:STDOUT: inst+11: template inst+1
|
||||
// CHECK:STDOUT: inst+12: template inst+8
|
||||
// CHECK:STDOUT: inst+14: template inst+14
|
||||
// CHECK:STDOUT: inst+15: template inst+15
|
||||
// CHECK:STDOUT: inst+20: template inst+21
|
||||
// CHECK:STDOUT: inst+21: template inst+21
|
||||
// CHECK:STDOUT: inst+22: template inst+21
|
||||
// CHECK:STDOUT: inst+24: template inst+21
|
||||
// CHECK:STDOUT: inst+25: template inst+21
|
||||
// CHECK:STDOUT: inst+26: template inst+27
|
||||
// CHECK:STDOUT: inst+27: template inst+27
|
||||
// CHECK:STDOUT: inst+28: template inst+27
|
||||
// CHECK:STDOUT: 'inst+0': template inst+0
|
||||
// CHECK:STDOUT: 'inst+1': template inst+1
|
||||
// CHECK:STDOUT: 'inst+3': template inst+1
|
||||
// CHECK:STDOUT: 'inst+8': template inst+8
|
||||
// CHECK:STDOUT: 'inst+10': template inst+1
|
||||
// CHECK:STDOUT: 'inst+11': template inst+1
|
||||
// CHECK:STDOUT: 'inst+12': template inst+8
|
||||
// CHECK:STDOUT: 'inst+14': template inst+14
|
||||
// CHECK:STDOUT: 'inst+15': template inst+15
|
||||
// CHECK:STDOUT: 'inst+20': template inst+21
|
||||
// CHECK:STDOUT: 'inst+21': template inst+21
|
||||
// CHECK:STDOUT: 'inst+22': template inst+21
|
||||
// CHECK:STDOUT: 'inst+24': template inst+21
|
||||
// CHECK:STDOUT: 'inst+25': template inst+21
|
||||
// CHECK:STDOUT: 'inst+26': template inst+27
|
||||
// CHECK:STDOUT: 'inst+27': template inst+27
|
||||
// CHECK:STDOUT: 'inst+28': template inst+27
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
|
||||
+47
-47
@@ -48,54 +48,54 @@ fn Foo(n: ()) -> ((), ()) {
|
||||
// CHECK:STDOUT: 0: type1
|
||||
// CHECK:STDOUT: 1: type1
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst+0: {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: inst+1: {kind: TupleType, arg0: typeBlock0, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+2: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+3: {kind: Converted, arg0: inst+2, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+4: {kind: Param, arg0: name1, type: type1}
|
||||
// CHECK:STDOUT: inst+5: {kind: BindName, arg0: bindName0, arg1: inst+4, type: type1}
|
||||
// CHECK:STDOUT: inst+6: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+7: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+8: {kind: TupleType, arg0: typeBlock4, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+9: {kind: TupleLiteral, arg0: block4, type: type2}
|
||||
// CHECK:STDOUT: inst+10: {kind: Converted, arg0: inst+6, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+11: {kind: Converted, arg0: inst+7, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+12: {kind: Converted, arg0: inst+9, arg1: inst+8, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+13: {kind: VarStorage, arg0: nameReturnSlot, type: type2}
|
||||
// CHECK:STDOUT: inst+14: {kind: FunctionDecl, arg0: function0, arg1: block5, type: type3}
|
||||
// CHECK:STDOUT: inst+15: {kind: PointerType, arg0: type2, type: typeTypeType}
|
||||
// CHECK:STDOUT: inst+16: {kind: NameRef, arg0: name1, arg1: inst+5, type: type1}
|
||||
// CHECK:STDOUT: inst+17: {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: inst+18: {kind: TupleLiteral, arg0: block7, type: type2}
|
||||
// CHECK:STDOUT: inst+19: {kind: TupleAccess, arg0: inst+13, arg1: element0, type: type1}
|
||||
// CHECK:STDOUT: inst+20: {kind: TupleInit, arg0: block8, arg1: inst+19, type: type1}
|
||||
// CHECK:STDOUT: inst+21: {kind: TupleValue, arg0: block9, type: type1}
|
||||
// CHECK:STDOUT: inst+22: {kind: Converted, arg0: inst+16, arg1: inst+20, type: type1}
|
||||
// CHECK:STDOUT: inst+23: {kind: TupleAccess, arg0: inst+13, arg1: element1, type: type1}
|
||||
// CHECK:STDOUT: inst+24: {kind: TupleInit, arg0: empty, arg1: inst+23, type: type1}
|
||||
// CHECK:STDOUT: inst+25: {kind: Converted, arg0: inst+17, arg1: inst+24, type: type1}
|
||||
// CHECK:STDOUT: inst+26: {kind: TupleInit, arg0: block10, arg1: inst+13, type: type2}
|
||||
// CHECK:STDOUT: inst+27: {kind: TupleValue, arg0: block12, type: type2}
|
||||
// CHECK:STDOUT: inst+28: {kind: Converted, arg0: inst+18, arg1: inst+26, type: type2}
|
||||
// CHECK:STDOUT: inst+29: {kind: ReturnExpr, arg0: inst+28, arg1: inst+13}
|
||||
// CHECK:STDOUT: 'inst+0': {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type0}
|
||||
// CHECK:STDOUT: 'inst+1': {kind: TupleType, arg0: typeBlock0, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+2': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+3': {kind: Converted, arg0: inst+2, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+4': {kind: Param, arg0: name1, type: type1}
|
||||
// CHECK:STDOUT: 'inst+5': {kind: BindName, arg0: bindName0, arg1: inst+4, type: type1}
|
||||
// CHECK:STDOUT: 'inst+6': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+7': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+8': {kind: TupleType, arg0: typeBlock4, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+9': {kind: TupleLiteral, arg0: block4, type: type2}
|
||||
// CHECK:STDOUT: 'inst+10': {kind: Converted, arg0: inst+6, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+11': {kind: Converted, arg0: inst+7, arg1: inst+1, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+12': {kind: Converted, arg0: inst+9, arg1: inst+8, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+13': {kind: VarStorage, arg0: nameReturnSlot, type: type2}
|
||||
// CHECK:STDOUT: 'inst+14': {kind: FunctionDecl, arg0: function0, arg1: block5, type: type3}
|
||||
// CHECK:STDOUT: 'inst+15': {kind: PointerType, arg0: type2, type: typeTypeType}
|
||||
// CHECK:STDOUT: 'inst+16': {kind: NameRef, arg0: name1, arg1: inst+5, type: type1}
|
||||
// CHECK:STDOUT: 'inst+17': {kind: TupleLiteral, arg0: empty, type: type1}
|
||||
// CHECK:STDOUT: 'inst+18': {kind: TupleLiteral, arg0: block7, type: type2}
|
||||
// CHECK:STDOUT: 'inst+19': {kind: TupleAccess, arg0: inst+13, arg1: element0, type: type1}
|
||||
// CHECK:STDOUT: 'inst+20': {kind: TupleInit, arg0: block8, arg1: inst+19, type: type1}
|
||||
// CHECK:STDOUT: 'inst+21': {kind: TupleValue, arg0: block9, type: type1}
|
||||
// CHECK:STDOUT: 'inst+22': {kind: Converted, arg0: inst+16, arg1: inst+20, type: type1}
|
||||
// CHECK:STDOUT: 'inst+23': {kind: TupleAccess, arg0: inst+13, arg1: element1, type: type1}
|
||||
// CHECK:STDOUT: 'inst+24': {kind: TupleInit, arg0: empty, arg1: inst+23, type: type1}
|
||||
// CHECK:STDOUT: 'inst+25': {kind: Converted, arg0: inst+17, arg1: inst+24, type: type1}
|
||||
// CHECK:STDOUT: 'inst+26': {kind: TupleInit, arg0: block10, arg1: inst+13, type: type2}
|
||||
// CHECK:STDOUT: 'inst+27': {kind: TupleValue, arg0: block12, type: type2}
|
||||
// CHECK:STDOUT: 'inst+28': {kind: Converted, arg0: inst+18, arg1: inst+26, type: type2}
|
||||
// CHECK:STDOUT: 'inst+29': {kind: ReturnExpr, arg0: inst+28, arg1: inst+13}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: inst+0: template inst+0
|
||||
// CHECK:STDOUT: inst+1: template inst+1
|
||||
// CHECK:STDOUT: inst+3: template inst+1
|
||||
// CHECK:STDOUT: inst+8: template inst+8
|
||||
// CHECK:STDOUT: inst+10: template inst+1
|
||||
// CHECK:STDOUT: inst+11: template inst+1
|
||||
// CHECK:STDOUT: inst+12: template inst+8
|
||||
// CHECK:STDOUT: inst+14: template inst+14
|
||||
// CHECK:STDOUT: inst+15: template inst+15
|
||||
// CHECK:STDOUT: inst+20: template inst+21
|
||||
// CHECK:STDOUT: inst+21: template inst+21
|
||||
// CHECK:STDOUT: inst+22: template inst+21
|
||||
// CHECK:STDOUT: inst+24: template inst+21
|
||||
// CHECK:STDOUT: inst+25: template inst+21
|
||||
// CHECK:STDOUT: inst+26: template inst+27
|
||||
// CHECK:STDOUT: inst+27: template inst+27
|
||||
// CHECK:STDOUT: inst+28: template inst+27
|
||||
// CHECK:STDOUT: 'inst+0': template inst+0
|
||||
// CHECK:STDOUT: 'inst+1': template inst+1
|
||||
// CHECK:STDOUT: 'inst+3': template inst+1
|
||||
// CHECK:STDOUT: 'inst+8': template inst+8
|
||||
// CHECK:STDOUT: 'inst+10': template inst+1
|
||||
// CHECK:STDOUT: 'inst+11': template inst+1
|
||||
// CHECK:STDOUT: 'inst+12': template inst+8
|
||||
// CHECK:STDOUT: 'inst+14': template inst+14
|
||||
// CHECK:STDOUT: 'inst+15': template inst+15
|
||||
// CHECK:STDOUT: 'inst+20': template inst+21
|
||||
// CHECK:STDOUT: 'inst+21': template inst+21
|
||||
// CHECK:STDOUT: 'inst+22': template inst+21
|
||||
// CHECK:STDOUT: 'inst+24': template inst+21
|
||||
// CHECK:STDOUT: 'inst+25': template inst+21
|
||||
// CHECK:STDOUT: 'inst+26': template inst+27
|
||||
// CHECK:STDOUT: 'inst+27': template inst+27
|
||||
// CHECK:STDOUT: 'inst+28': template inst+27
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
|
||||
Reference in New Issue
Block a user