mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 08:54:47 +01:00
Separate inst kind for out params (#4442)
This commit is contained in:
+6
-6
@@ -51,11 +51,11 @@ var arr: [i32; Add(1, 2)];
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [template = constants.%Add] {
|
||||
// CHECK:STDOUT: %a.patt: i32 = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %b.patt: i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = value_param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc11_11: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_11.1: type = value_of_initializer %int.make_type_32.loc11_11 [template = i32]
|
||||
@@ -66,11 +66,11 @@ var arr: [i32; Add(1, 2)];
|
||||
// CHECK:STDOUT: %int.make_type_32.loc11_27: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_27.1: type = value_of_initializer %int.make_type_32.loc11_27 [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_27.2: type = converted %int.make_type_32.loc11_27, %.loc11_27.1 [template = i32]
|
||||
// CHECK:STDOUT: %a.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a.param: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b.param: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %int.make_type_32: init type = call constants.%Int32() [template = i32]
|
||||
|
||||
@@ -43,11 +43,11 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Add.decl: %Add.type = fn_decl @Add [template = constants.%Add] {
|
||||
// CHECK:STDOUT: %a.patt: i32 = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %b.patt: i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = value_param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc11_11: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_11.1: type = value_of_initializer %int.make_type_32.loc11_11 [template = i32]
|
||||
@@ -58,11 +58,11 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %int.make_type_32.loc11_27: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_27.1: type = value_of_initializer %int.make_type_32.loc11_27 [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_27.2: type = converted %int.make_type_32.loc11_27, %.loc11_27.1 [template = i32]
|
||||
// CHECK:STDOUT: %a.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a.param: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b.param: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+36
-36
@@ -76,11 +76,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %A.decl.loc11: %A.type = fn_decl @A [template = constants.%A] {
|
||||
// CHECK:STDOUT: %n.patt: i32 = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = value_param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %m.patt: i32 = binding_pattern m
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = value_param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc11_9: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_9.1: type = value_of_initializer %int.make_type_32.loc11_9 [template = i32]
|
||||
@@ -91,20 +91,20 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %int.make_type_32.loc11_25: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_25.1: type = value_of_initializer %int.make_type_32.loc11_25 [template = i32]
|
||||
// CHECK:STDOUT: %.loc11_25.2: type = converted %int.make_type_32.loc11_25, %.loc11_25.1 [template = i32]
|
||||
// CHECK:STDOUT: %n.param.loc11: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %n.param.loc11: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %n.loc11: i32 = bind_name n, %n.param.loc11
|
||||
// CHECK:STDOUT: %m.param.loc11: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %m.param.loc11: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %m.loc11: i32 = bind_name m, %m.param.loc11
|
||||
// CHECK:STDOUT: %return.param.loc11: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param.loc11: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %.loc11_22: ref i32 = return_slot %return.param.loc11
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %A.decl.loc19: %A.type = fn_decl @A [template = constants.%A] {
|
||||
// CHECK:STDOUT: %n.patt: i32 = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = value_param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %m.patt: i32 = binding_pattern m
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = value_param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc19_9: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc19_9.1: type = value_of_initializer %int.make_type_32.loc19_9 [template = i32]
|
||||
@@ -115,20 +115,20 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %int.make_type_32.loc19_25: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc19_25.1: type = value_of_initializer %int.make_type_32.loc19_25 [template = i32]
|
||||
// CHECK:STDOUT: %.loc19_25.2: type = converted %int.make_type_32.loc19_25, %.loc19_25.1 [template = i32]
|
||||
// CHECK:STDOUT: %n.param.loc19: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %n.param.loc19: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %n.loc19: i32 = bind_name n, %n.param.loc19
|
||||
// CHECK:STDOUT: %m.param.loc19: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %m.param.loc19: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %m.loc19: i32 = bind_name m, %m.param.loc19
|
||||
// CHECK:STDOUT: %return.param.loc19: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param.loc19: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param.loc19
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %B.decl.loc21: %B.type = fn_decl @B [template = constants.%B] {
|
||||
// CHECK:STDOUT: %n.patt: i32 = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = value_param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %m.patt: i32 = binding_pattern m
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = value_param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc21_9: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc21_9.1: type = value_of_initializer %int.make_type_32.loc21_9 [template = i32]
|
||||
@@ -139,20 +139,20 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %int.make_type_32.loc21_25: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc21_25.1: type = value_of_initializer %int.make_type_32.loc21_25 [template = i32]
|
||||
// CHECK:STDOUT: %.loc21_25.2: type = converted %int.make_type_32.loc21_25, %.loc21_25.1 [template = i32]
|
||||
// CHECK:STDOUT: %n.param.loc21: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %n.param.loc21: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %n.loc21: i32 = bind_name n, %n.param.loc21
|
||||
// CHECK:STDOUT: %m.param.loc21: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %m.param.loc21: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %m.loc21: i32 = bind_name m, %m.param.loc21
|
||||
// CHECK:STDOUT: %return.param.loc21: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param.loc21: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %.loc21_22: ref i32 = return_slot %return.param.loc21
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %B.decl.loc29: %B.type = fn_decl @B [template = constants.%B] {
|
||||
// CHECK:STDOUT: %n.patt: i32 = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = value_param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %m.patt: i32 = binding_pattern m
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = value_param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc29_9: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc29_9.1: type = value_of_initializer %int.make_type_32.loc29_9 [template = i32]
|
||||
@@ -163,20 +163,20 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %int.make_type_32.loc29_25: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc29_25.1: type = value_of_initializer %int.make_type_32.loc29_25 [template = i32]
|
||||
// CHECK:STDOUT: %.loc29_25.2: type = converted %int.make_type_32.loc29_25, %.loc29_25.1 [template = i32]
|
||||
// CHECK:STDOUT: %n.param.loc29: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %n.param.loc29: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %n.loc29: i32 = bind_name n, %n.param.loc29
|
||||
// CHECK:STDOUT: %m.param.loc29: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %m.param.loc29: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %m.loc29: i32 = bind_name m, %m.param.loc29
|
||||
// CHECK:STDOUT: %return.param.loc29: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param.loc29: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param.loc29
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C.decl.loc31: %C.type = fn_decl @C [template = constants.%C] {
|
||||
// CHECK:STDOUT: %n.patt: i32 = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = value_param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %m.patt: i32 = binding_pattern m
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = value_param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc31_9: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc31_9.1: type = value_of_initializer %int.make_type_32.loc31_9 [template = i32]
|
||||
@@ -187,20 +187,20 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %int.make_type_32.loc31_25: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc31_25.1: type = value_of_initializer %int.make_type_32.loc31_25 [template = i32]
|
||||
// CHECK:STDOUT: %.loc31_25.2: type = converted %int.make_type_32.loc31_25, %.loc31_25.1 [template = i32]
|
||||
// CHECK:STDOUT: %n.param.loc31: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %n.param.loc31: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %n.loc31: i32 = bind_name n, %n.param.loc31
|
||||
// CHECK:STDOUT: %m.param.loc31: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %m.param.loc31: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %m.loc31: i32 = bind_name m, %m.param.loc31
|
||||
// CHECK:STDOUT: %return.param.loc31: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param.loc31: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %.loc31_22: ref i32 = return_slot %return.param.loc31
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C.decl.loc38: %C.type = fn_decl @C [template = constants.%C] {
|
||||
// CHECK:STDOUT: %n.patt: i32 = binding_pattern n
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %n.param_patt: i32 = value_param_pattern %n.patt, runtime_param0
|
||||
// CHECK:STDOUT: %m.patt: i32 = binding_pattern m
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %m.param_patt: i32 = value_param_pattern %m.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc38_9: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_9.1: type = value_of_initializer %int.make_type_32.loc38_9 [template = i32]
|
||||
@@ -211,11 +211,11 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
|
||||
// CHECK:STDOUT: %int.make_type_32.loc38_25: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_25.1: type = value_of_initializer %int.make_type_32.loc38_25 [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_25.2: type = converted %int.make_type_32.loc38_25, %.loc38_25.1 [template = i32]
|
||||
// CHECK:STDOUT: %n.param.loc38: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %n.param.loc38: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %n.loc38: i32 = bind_name n, %n.param.loc38
|
||||
// CHECK:STDOUT: %m.param.loc38: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %m.param.loc38: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %m.loc38: i32 = bind_name m, %m.param.loc38
|
||||
// CHECK:STDOUT: %return.param.loc38: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param.loc38: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param.loc38
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+12
-12
@@ -89,11 +89,11 @@ var arr: [i32; 1.(I.F)(2)];
|
||||
// CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %F.decl: %F.type.1 = fn_decl @F.1 [template = constants.%F.1] {
|
||||
// CHECK:STDOUT: %self.patt: @F.1.%Self (%Self) = binding_pattern self
|
||||
// CHECK:STDOUT: %self.param_patt: @F.1.%Self (%Self) = param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %self.param_patt: @F.1.%Self (%Self) = value_param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %other.patt: @F.1.%Self (%Self) = binding_pattern other
|
||||
// CHECK:STDOUT: %other.param_patt: @F.1.%Self (%Self) = param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %other.param_patt: @F.1.%Self (%Self) = value_param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: @F.1.%Self (%Self) = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: @F.1.%Self (%Self) = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: @F.1.%Self (%Self) = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.ref.loc12_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc12_14.1: type = facet_type_access %Self.ref.loc12_14 [symbolic = %Self (constants.%Self)]
|
||||
@@ -104,11 +104,11 @@ var arr: [i32; 1.(I.F)(2)];
|
||||
// CHECK:STDOUT: %Self.ref.loc12_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc12_36.1: type = facet_type_access %Self.ref.loc12_36 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc12_36.2: type = converted %Self.ref.loc12_36, %.loc12_36.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %self.param: @F.1.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self.param: @F.1.%Self (%Self) = value_param runtime_param0
|
||||
// CHECK:STDOUT: %self: @F.1.%Self (%Self) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %other.param: @F.1.%Self (%Self) = param runtime_param1
|
||||
// CHECK:STDOUT: %other.param: @F.1.%Self (%Self) = value_param runtime_param1
|
||||
// CHECK:STDOUT: %other: @F.1.%Self (%Self) = bind_name other, %other.param
|
||||
// CHECK:STDOUT: %return.param: @F.1.%Self (%Self) = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param: ref @F.1.%Self (%Self) = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref @F.1.%Self (%Self) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc12: %.2 = assoc_entity element0, %F.decl [template = constants.%.3]
|
||||
@@ -122,11 +122,11 @@ var arr: [i32; 1.(I.F)(2)];
|
||||
// CHECK:STDOUT: impl @impl: %.loc15_6.2 as %I.ref {
|
||||
// CHECK:STDOUT: %F.decl: %F.type.2 = fn_decl @F.2 [template = constants.%F.2] {
|
||||
// CHECK:STDOUT: %self.patt: i32 = binding_pattern self
|
||||
// CHECK:STDOUT: %self.param_patt: i32 = param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %self.param_patt: i32 = value_param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %other.patt: i32 = binding_pattern other
|
||||
// CHECK:STDOUT: %other.param_patt: i32 = param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %other.param_patt: i32 = value_param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc16_14: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc16_14.1: type = value_of_initializer %int.make_type_32.loc16_14 [template = i32]
|
||||
@@ -137,11 +137,11 @@ var arr: [i32; 1.(I.F)(2)];
|
||||
// CHECK:STDOUT: %int.make_type_32.loc16_34: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc16_34.1: type = value_of_initializer %int.make_type_32.loc16_34 [template = i32]
|
||||
// CHECK:STDOUT: %.loc16_34.2: type = converted %int.make_type_32.loc16_34, %.loc16_34.1 [template = i32]
|
||||
// CHECK:STDOUT: %self.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %self.param: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %self: i32 = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %other.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %other.param: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %other: i32 = bind_name other, %other.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc15_15: <witness> = interface_witness (%F.decl) [template = constants.%.4]
|
||||
|
||||
+14
-14
@@ -51,9 +51,9 @@ var arr: [i32; 1 + 2] = (3, 4, 3 + 4);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Int32.decl: %Int32.type = fn_decl @Int32 [template = constants.%Int32] {
|
||||
// CHECK:STDOUT: %return.patt: type = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: type = param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: %return.param_patt: type = out_param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %return.param: type = param runtime_param0
|
||||
// CHECK:STDOUT: %return.param: ref type = out_param runtime_param0
|
||||
// CHECK:STDOUT: %return: ref type = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Add.decl: type = interface_decl @Add [template = constants.%Add.type] {} {}
|
||||
@@ -63,11 +63,11 @@ var arr: [i32; 1 + 2] = (3, 4, 3 + 4);
|
||||
// CHECK:STDOUT: %Self: %Add.type = bind_symbolic_name Self, 0 [symbolic = constants.%Self]
|
||||
// CHECK:STDOUT: %Op.decl: %Op.type = fn_decl @Op [template = constants.%Op] {
|
||||
// CHECK:STDOUT: %self.patt: @Op.%Self (%Self) = binding_pattern self
|
||||
// CHECK:STDOUT: %self.param_patt: @Op.%Self (%Self) = param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %self.param_patt: @Op.%Self (%Self) = value_param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %other.patt: @Op.%Self (%Self) = binding_pattern other
|
||||
// CHECK:STDOUT: %other.param_patt: @Op.%Self (%Self) = param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %other.param_patt: @Op.%Self (%Self) = value_param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: @Op.%Self (%Self) = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: @Op.%Self (%Self) = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: @Op.%Self (%Self) = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.ref.loc7_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc7_15.1: type = facet_type_access %Self.ref.loc7_15 [symbolic = %Self (constants.%Self)]
|
||||
@@ -78,11 +78,11 @@ var arr: [i32; 1 + 2] = (3, 4, 3 + 4);
|
||||
// CHECK:STDOUT: %Self.ref.loc7_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc7_37.1: type = facet_type_access %Self.ref.loc7_37 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %.loc7_37.2: type = converted %Self.ref.loc7_37, %.loc7_37.1 [symbolic = %Self (constants.%Self)]
|
||||
// CHECK:STDOUT: %self.param: @Op.%Self (%Self) = param runtime_param0
|
||||
// CHECK:STDOUT: %self.param: @Op.%Self (%Self) = value_param runtime_param0
|
||||
// CHECK:STDOUT: %self: @Op.%Self (%Self) = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %other.param: @Op.%Self (%Self) = param runtime_param1
|
||||
// CHECK:STDOUT: %other.param: @Op.%Self (%Self) = value_param runtime_param1
|
||||
// CHECK:STDOUT: %other: @Op.%Self (%Self) = bind_name other, %other.param
|
||||
// CHECK:STDOUT: %return.param: @Op.%Self (%Self) = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param: ref @Op.%Self (%Self) = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref @Op.%Self (%Self) = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc7: %.2 = assoc_entity element0, %Op.decl [template = constants.%.3]
|
||||
@@ -185,20 +185,20 @@ var arr: [i32; 1 + 2] = (3, 4, 3 + 4);
|
||||
// CHECK:STDOUT: impl @impl: %.loc6_6.2 as %Add.ref {
|
||||
// CHECK:STDOUT: %Op.decl: %Op.type.1 = fn_decl @Op.1 [template = constants.%Op.1] {
|
||||
// CHECK:STDOUT: %self.patt: i32 = binding_pattern self
|
||||
// CHECK:STDOUT: %self.param_patt: i32 = param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %self.param_patt: i32 = value_param_pattern %self.patt, runtime_param0
|
||||
// CHECK:STDOUT: %other.patt: i32 = binding_pattern other
|
||||
// CHECK:STDOUT: %other.param_patt: i32 = param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %other.param_patt: i32 = value_param_pattern %other.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %Self.ref.loc7_15: type = name_ref Self, @impl.%.loc6_6.2 [template = i32]
|
||||
// CHECK:STDOUT: %Self.ref.loc7_28: type = name_ref Self, @impl.%.loc6_6.2 [template = i32]
|
||||
// CHECK:STDOUT: %Self.ref.loc7_37: type = name_ref Self, @impl.%.loc6_6.2 [template = i32]
|
||||
// CHECK:STDOUT: %self.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %self.param: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %self: i32 = bind_name self, %self.param
|
||||
// CHECK:STDOUT: %other.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %other.param: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %other: i32 = bind_name other, %other.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc6_22: <witness> = interface_witness (%Op.decl) [template = constants.%.2]
|
||||
|
||||
@@ -38,18 +38,18 @@ var arr: [i32; Core.TestAdd(1, 2)] = (1, 2, 3);
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Int32.decl: %Int32.type = fn_decl @Int32 [template = constants.%Int32] {
|
||||
// CHECK:STDOUT: %return.patt: type = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: type = param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: %return.param_patt: type = out_param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %return.param: type = param runtime_param0
|
||||
// CHECK:STDOUT: %return.param: ref type = out_param runtime_param0
|
||||
// CHECK:STDOUT: %return: ref type = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %TestAdd.decl: %TestAdd.type = fn_decl @TestAdd [template = constants.%TestAdd] {
|
||||
// CHECK:STDOUT: %a.patt: i32 = binding_pattern a
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %a.param_patt: i32 = value_param_pattern %a.patt, runtime_param0
|
||||
// CHECK:STDOUT: %b.patt: i32 = binding_pattern b
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %b.param_patt: i32 = value_param_pattern %b.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: %return.param_patt: i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc5_15: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc5_15.1: type = value_of_initializer %int.make_type_32.loc5_15 [template = i32]
|
||||
@@ -60,11 +60,11 @@ var arr: [i32; Core.TestAdd(1, 2)] = (1, 2, 3);
|
||||
// CHECK:STDOUT: %int.make_type_32.loc5_31: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc5_31.1: type = value_of_initializer %int.make_type_32.loc5_31 [template = i32]
|
||||
// CHECK:STDOUT: %.loc5_31.2: type = converted %int.make_type_32.loc5_31, %.loc5_31.1 [template = i32]
|
||||
// CHECK:STDOUT: %a.param: i32 = param runtime_param0
|
||||
// CHECK:STDOUT: %a.param: i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %a: i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: i32 = param runtime_param1
|
||||
// CHECK:STDOUT: %b.param: i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %b: i32 = bind_name b, %b.param
|
||||
// CHECK:STDOUT: %return.param: i32 = param runtime_param2
|
||||
// CHECK:STDOUT: %return.param: ref i32 = out_param runtime_param2
|
||||
// CHECK:STDOUT: %return: ref i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
Reference in New Issue
Block a user