Add evaluation for conversion instructions. (#3594)

Also some finessing of evaluation for other instruction kinds and some
additional testing.
This commit is contained in:
Richard Smith
2024-01-11 23:50:04 +00:00
committed by GitHub
parent 7553d864e1
commit a2012d4777
58 changed files with 232 additions and 171 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ fn Main() {
// CHECK:STDOUT: %Echo.ref: <function> = name_ref Echo, file.%Echo, const = file.%Echo
// CHECK:STDOUT: %.loc12_9.1: {} = struct_literal ()
// CHECK:STDOUT: %.loc12_9.2: {} = struct_value (), const = constants.%.loc12
// CHECK:STDOUT: %.loc12_9.3: {} = converted %.loc12_9.1, %.loc12_9.2
// CHECK:STDOUT: %.loc12_9.3: {} = converted %.loc12_9.1, %.loc12_9.2, const = constants.%.loc12
// CHECK:STDOUT: %.loc12_7: init {} = call %Echo.ref(%.loc12_9.3)
// CHECK:STDOUT: return
// CHECK:STDOUT: }
+1 -1
View File
@@ -36,7 +36,7 @@ fn Main() {
// CHECK:STDOUT: %Echo.ref: <function> = name_ref Echo, file.%Echo, const = file.%Echo
// CHECK:STDOUT: %.loc12_9.1: () = tuple_literal ()
// CHECK:STDOUT: %.loc12_9.2: () = tuple_value (), const = constants.%.loc12
// CHECK:STDOUT: %.loc12_9.3: () = converted %.loc12_9.1, %.loc12_9.2
// CHECK:STDOUT: %.loc12_9.3: () = converted %.loc12_9.1, %.loc12_9.2, const = constants.%.loc12
// CHECK:STDOUT: %.loc12_7: init () = call %Echo.ref(%.loc12_9.3)
// CHECK:STDOUT: return
// CHECK:STDOUT: }
@@ -37,7 +37,7 @@ fn Main() {
// CHECK:STDOUT: fn @Main() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %.loc10_15.1: (type,) = tuple_literal (i32)
// CHECK:STDOUT: %.loc10_15.2: type = converted %.loc10_15.1, constants.%.loc10_15.2
// CHECK:STDOUT: %.loc10_15.2: type = converted %.loc10_15.1, constants.%.loc10_15.2, const = constants.%.loc10_15.2
// CHECK:STDOUT: %x.var: ref (i32,) = var x
// CHECK:STDOUT: %x: ref (i32,) = bind_name x, %x.var
// CHECK:STDOUT: %.loc10_20: i32 = int_literal 1, const = constants.%.loc10_20
@@ -31,7 +31,7 @@ fn Main() {
// CHECK:STDOUT: fn @Main() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %.loc11_11.1: () = tuple_literal ()
// CHECK:STDOUT: %.loc11_11.2: type = converted %.loc11_11.1, constants.%.loc11
// CHECK:STDOUT: %.loc11_11.2: type = converted %.loc11_11.1, constants.%.loc11, const = constants.%.loc11
// CHECK:STDOUT: %b.var: ref () = var b
// CHECK:STDOUT: %b: ref () = bind_name b, %b.var
// CHECK:STDOUT: %MakeImplicitEmptyTuple.ref: <function> = name_ref MakeImplicitEmptyTuple, file.%MakeImplicitEmptyTuple, const = file.%MakeImplicitEmptyTuple