@@ -18,7 +18,7 @@ func testNoDerivativeStructProjection(_ s: HasNoDerivativeProperty) -> Float {
18
18
19
19
// CHECK-LABEL: [AD] Activity info for ${{.*}}testNoDerivativeStructProjection{{.*}} at parameter indices (0) and result indices (0):
20
20
// CHECK: [ACTIVE] %0 = argument of bb0 : $HasNoDerivativeProperty
21
- // CHECK: [ACTIVE] %2 = alloc_stack $HasNoDerivativeProperty, var, name "tmp"
21
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $HasNoDerivativeProperty, var, name "tmp"
22
22
// CHECK: [ACTIVE] %4 = begin_access [read] [static] %2 : $*HasNoDerivativeProperty
23
23
// CHECK: [ACTIVE] %5 = struct_element_addr %4 : $*HasNoDerivativeProperty, #HasNoDerivativeProperty.x
24
24
// CHECK: [VARIED] %6 = load [trivial] %5 : $*Float
@@ -42,7 +42,7 @@ func testNondifferentiableTupleElementAddr<T>(_ x: T) -> T {
42
42
// CHECK-LABEL: [AD] Activity info for ${{.*}}testNondifferentiableTupleElementAddr{{.*}} at parameter indices (0) and result indices (0):
43
43
// CHECK: [ACTIVE] %0 = argument of bb0 : $*T
44
44
// CHECK: [ACTIVE] %1 = argument of bb0 : $*T
45
- // CHECK: [ACTIVE] %3 = alloc_stack $(Int, Int, (T, Int), Int), var, name "tuple"
45
+ // CHECK: [ACTIVE] %3 = alloc_stack [lexical] $(Int, Int, (T, Int), Int), var, name "tuple"
46
46
// CHECK: [USEFUL] %4 = tuple_element_addr %3 : $*(Int, Int, (T, Int), Int), 0
47
47
// CHECK: [USEFUL] %5 = tuple_element_addr %3 : $*(Int, Int, (T, Int), Int), 1
48
48
// CHECK: [ACTIVE] %6 = tuple_element_addr %3 : $*(Int, Int, (T, Int), Int), 2
@@ -76,7 +76,7 @@ func TF_781(_ x: Float, _ y: Float) -> Float {
76
76
// CHECK-LABEL: [AD] Activity info for ${{.*}}TF_781{{.*}} at parameter indices (0) and result indices (0)
77
77
// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
78
78
// CHECK: [USEFUL] %1 = argument of bb0 : $Float
79
- // CHECK: [ACTIVE] %4 = alloc_stack $Float, var, name "result"
79
+ // CHECK: [ACTIVE] %4 = alloc_stack [lexical] $Float, var, name "result"
80
80
// CHECK: [ACTIVE] %19 = begin_access [read] [static] %4 : $*Float
81
81
// CHECK: [ACTIVE] %20 = load [trivial] %19 : $*Float
82
82
// CHECK: [ACTIVE] %23 = apply %22(%20, %0, %18) : $@convention(method) (Float, Float, @thin Float.Type) -> Float
@@ -103,9 +103,9 @@ func TF_954(_ x: Float) -> Float {
103
103
// CHECK-LABEL: [AD] Activity info for ${{.*}}TF_954{{.*}} at parameter indices (0) and result indices (0)
104
104
// CHECK: bb0:
105
105
// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
106
- // CHECK: [ACTIVE] %2 = alloc_stack $Float, var, name "outer"
106
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $Float, var, name "outer"
107
107
// CHECK: bb1:
108
- // CHECK: [ACTIVE] %10 = alloc_stack $Float, var, name "inner"
108
+ // CHECK: [ACTIVE] %10 = alloc_stack [lexical] $Float, var, name "inner"
109
109
// CHECK: [ACTIVE] %11 = begin_access [read] [static] %2 : $*Float
110
110
// CHECK: [USEFUL] %14 = metatype $@thin Float.Type
111
111
// CHECK: [ACTIVE] %15 = begin_access [read] [static] %10 : $*Float
@@ -286,7 +286,7 @@ func testArrayUninitializedIntrinsicAddress(_ x: Float, _ y: Float) -> [Float] {
286
286
// CHECK-LABEL: [AD] Activity info for ${{.*}}testArrayUninitializedIntrinsicAddress{{.*}} at parameter indices (0, 1) and result indices (0)
287
287
// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
288
288
// CHECK: [ACTIVE] %1 = argument of bb0 : $Float
289
- // CHECK: [ACTIVE] %4 = alloc_stack $Float, var, name "result"
289
+ // CHECK: [ACTIVE] %4 = alloc_stack [lexical] $Float, var, name "result"
290
290
// CHECK: [ACTIVE] %7 = begin_access [read] [static] %4 : $*Float
291
291
// CHECK: [ACTIVE] %8 = load [trivial] %7 : $*Float
292
292
// CHECK: [NONE] // function_ref static Float.* infix(_:_:)
@@ -348,28 +348,28 @@ func testArrayUninitializedIntrinsicNested(_ x: Float, _ y: Float) -> [Float] {
348
348
// CHECK: [ACTIVE] %12 = index_addr %9 : $*Float, %11 : $Builtin.Word
349
349
// CHECK: [NONE] // function_ref _finalizeUninitializedArray<A>(_:)
350
350
// CHECK: [ACTIVE] [[ARRAY:%.*]] = apply %14<Float>(%7) : $@convention(thin) <τ_0_0> (@owned Array<τ_0_0>) -> @owned Array<τ_0_0>
351
- // CHECK: [USEFUL] %17 = integer_literal $Builtin.Word, 2
351
+ // CHECK: [USEFUL] [[INT_LIT:%.*]] = integer_literal $Builtin.Word, 2
352
352
// CHECK: [NONE] // function_ref _allocateUninitializedArray<A>(_:)
353
- // CHECK: [ACTIVE] %19 = apply %18 <Float>(%17 ) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer)
354
- // CHECK: [ACTIVE] (**%20**, %21 ) = destructure_tuple %19 : $(Array<Float>, Builtin.RawPointer)
355
- // CHECK: [VARIED] (%20 , **%21 **) = destructure_tuple %19 : $(Array<Float>, Builtin.RawPointer)
356
- // CHECK: [ACTIVE] %22 = pointer_to_address %21 : $Builtin.RawPointer to [strict] $*Float
357
- // CHECK: [USEFUL] %23 = integer_literal $Builtin.IntLiteral, 0
358
- // CHECK: [USEFUL] %24 = metatype $@thin Int.Type
353
+ // CHECK: [ACTIVE] [[TUP:%.*]] = apply %19 <Float>([[INT_LIT]] ) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer)
354
+ // CHECK: [ACTIVE] (**[[LHS:%.*]]**, [[RHS:%.*]] ) = destructure_tuple [[TUP]] : $(Array<Float>, Builtin.RawPointer)
355
+ // CHECK: [VARIED] ([[LHS]] , **[[RHS]] **) = destructure_tuple [[TUP]] : $(Array<Float>, Builtin.RawPointer)
356
+ // CHECK: [ACTIVE] [[FLOAT_PTR:%.*]] = pointer_to_address [[RHS]] : $Builtin.RawPointer to [strict] $*Float
357
+ // CHECK: [USEFUL] [[ZERO_LITERAL:%.*]] = integer_literal $Builtin.IntLiteral, 0
358
+ // CHECK: [USEFUL] [[META:%.*]] = metatype $@thin Int.Type
359
359
// CHECK: [NONE] // function_ref Int.init(_builtinIntegerLiteral:)
360
- // CHECK: [USEFUL] %26 = apply %25(%23, %24 ) : $@convention(method) (Builtin.IntLiteral, @thin Int.Type) -> Int
360
+ // CHECK: [USEFUL] [[RESULT_2:%.*]] = apply %26([[ZERO_LITERAL]], [[META]] ) : $@convention(method) (Builtin.IntLiteral, @thin Int.Type) -> Int
361
361
// CHECK: [NONE] // function_ref Array.subscript.getter
362
- // CHECK: [NONE] %28 = apply %27 <Float>(%22, %26 , %15 ) : $@convention(method) <τ_0_0> (Int, @guaranteed Array<τ_0_0>) -> @out τ_0_0
363
- // CHECK: [VARIED] %29 = integer_literal $Builtin.Word, 1
364
- // CHECK: [ACTIVE] %30 = index_addr %22 : $*Float, %29 : $Builtin.Word
365
- // CHECK: [USEFUL] %31 = integer_literal $Builtin.IntLiteral, 1
366
- // CHECK: [USEFUL] %32 = metatype $@thin Int.Type
362
+ // CHECK: [NONE] %29 = apply %28 <Float>([[FLOAT_PTR]], [[RESULT_2]] , %16 ) : $@convention(method) <τ_0_0> (Int, @guaranteed Array<τ_0_0>) -> @out τ_0_0
363
+ // CHECK: [VARIED] [[ONE_LITERAL:%.*]] = integer_literal $Builtin.Word, 1
364
+ // CHECK: [ACTIVE] [[INDEX_ADDR:%.*]] = index_addr [[FLOAT_PTR]] : $*Float, [[ONE_LITERAL]] : $Builtin.Word
365
+ // CHECK: [USEFUL] [[ONE_LITERAL_AGAIN:%.*]] = integer_literal $Builtin.IntLiteral, 1
366
+ // CHECK: [USEFUL] [[META_AGAIN:%.*]] = metatype $@thin Int.Type
367
367
// CHECK: [NONE] // function_ref Int.init(_builtinIntegerLiteral:)
368
- // CHECK: [USEFUL] %34 = apply %33(%31, %32 ) : $@convention(method) (Builtin.IntLiteral, @thin Int.Type) -> Int
368
+ // CHECK: [USEFUL] %35 = apply %34([[ONE_LITERAL_AGAIN]], [[META_AGAIN]] ) : $@convention(method) (Builtin.IntLiteral, @thin Int.Type) -> Int
369
369
// CHECK: [NONE] // function_ref Array.subscript.getter
370
- // CHECK: [NONE] %36 = apply %35 <Float>(%30 , %34 , %15 ) : $@convention(method) <τ_0_0> (Int, @guaranteed Array<τ_0_0>) -> @out τ_0_0
370
+ // CHECK: [NONE] %37 = apply %36 <Float>(%31 , %35 , %16 ) : $@convention(method) <τ_0_0> (Int, @guaranteed Array<τ_0_0>) -> @out τ_0_0
371
371
// CHECK: [NONE] // function_ref _finalizeUninitializedArray<A>(_:)
372
- // CHECK: [ACTIVE] %38 = apply %37 <Float>(%20 ) : $@convention(thin) <τ_0_0> (@owned Array<τ_0_0>) -> @owned Array<τ_0_0>
372
+ // CHECK: [ACTIVE] %39 = apply %38 <Float>(%21 ) : $@convention(thin) <τ_0_0> (@owned Array<τ_0_0>) -> @owned Array<τ_0_0>
373
373
374
374
// TF-978: Test array literal initialized with `apply` indirect results.
375
375
struct Wrapper < T: Differentiable > : Differentiable {
@@ -440,7 +440,7 @@ func activeInoutArgMutatingMethod(_ x: Mut) -> Mut {
440
440
441
441
// CHECK-LABEL: [AD] Activity info for ${{.*}}28activeInoutArgMutatingMethodyAA3MutVADF at parameter indices (0) and result indices (0)
442
442
// CHECK: [ACTIVE] %0 = argument of bb0 : $Mut
443
- // CHECK: [ACTIVE] %2 = alloc_stack $Mut, var, name "result"
443
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $Mut, var, name "result"
444
444
// CHECK: [ACTIVE] %4 = begin_access [read] [static] %2 : $*Mut
445
445
// CHECK: [ACTIVE] %5 = load [trivial] %4 : $*Mut
446
446
// CHECK: [ACTIVE] %7 = begin_access [modify] [static] %2 : $*Mut
@@ -459,7 +459,7 @@ func activeInoutArgMutatingMethodVar(_ nonactive: inout Mut, _ x: Mut) {
459
459
// CHECK_LABEL: [AD] Activity info for ${{.*}}31activeInoutArgMutatingMethodVaryyAA3MutVz_ADtF at (parameters=(1) results=(0))
460
460
// CHECK: [ACTIVE] %0 = argument of bb0 : $*Mut
461
461
// CHECK: [ACTIVE] %1 = argument of bb0 : $Mut
462
- // CHECK: [ACTIVE] %4 = alloc_stack $Mut, var, name "result"
462
+ // CHECK: [ACTIVE] %4 = alloc_stack [lexical] $Mut, var, name "result"
463
463
// CHECK: [ACTIVE] %5 = begin_access [read] [static] %0 : $*Mut
464
464
// CHECK: [ACTIVE] %8 = begin_access [modify] [static] %4 : $*Mut
465
465
// CHECK: [NONE] // function_ref Mut.mutatingMethod(_:)
@@ -480,7 +480,7 @@ func activeInoutArgMutatingMethodTuple(_ nonactive: inout Mut, _ x: Mut) {
480
480
// CHECK-LABEL: [AD] Activity info for ${{.*}}33activeInoutArgMutatingMethodTupleyyAA3MutVz_ADtF at parameter indices (1) and result indices (0)
481
481
// CHECK: [ACTIVE] %0 = argument of bb0 : $*Mut
482
482
// CHECK: [ACTIVE] %1 = argument of bb0 : $Mut
483
- // CHECK: [ACTIVE] %4 = alloc_stack $(Mut, Mut), var, name "result"
483
+ // CHECK: [ACTIVE] %4 = alloc_stack [lexical] $(Mut, Mut), var, name "result"
484
484
// CHECK: [ACTIVE] %5 = tuple_element_addr %4 : $*(Mut, Mut), 0
485
485
// CHECK: [ACTIVE] %6 = tuple_element_addr %4 : $*(Mut, Mut), 1
486
486
// CHECK: [ACTIVE] %7 = begin_access [read] [static] %0 : $*Mut
@@ -507,7 +507,7 @@ func activeInoutArg(_ x: Float) -> Float {
507
507
508
508
// CHECK-LABEL: [AD] Activity info for ${{.*}}activeInoutArg{{.*}} at parameter indices (0) and result indices (0)
509
509
// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
510
- // CHECK: [ACTIVE] %2 = alloc_stack $Float, var, name "result"
510
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $Float, var, name "result"
511
511
// CHECK: [ACTIVE] %5 = begin_access [modify] [static] %2 : $*Float
512
512
// CHECK: [NONE] // function_ref static Float.+= infix(_:_:)
513
513
// CHECK: [NONE] %7 = apply %6(%5, %0, %4) : $@convention(method) (@inout Float, Float, @thin Float.Type) -> ()
@@ -523,7 +523,7 @@ func activeInoutArgNonactiveInitialResult(_ x: Float) -> Float {
523
523
524
524
// CHECK-LABEL: [AD] Activity info for ${{.*}}activeInoutArgNonactiveInitialResult{{.*}} at parameter indices (0) and result indices (0)
525
525
// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
526
- // CHECK: [ACTIVE] %2 = alloc_stack $Float, var, name "result"
526
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $Float, var, name "result"
527
527
// CHECK: [NONE] // function_ref Float.init(_builtinIntegerLiteral:)
528
528
// CHECK: [USEFUL] %6 = apply %5(%3, %4) : $@convention(method) (Builtin.IntLiteral, @thin Float.Type) -> Float
529
529
// CHECK: [USEFUL] %8 = metatype $@thin Float.Type
@@ -586,7 +586,7 @@ func testAccessorCoroutines(_ x: HasCoroutineAccessors) -> HasCoroutineAccessors
586
586
587
587
// CHECK-LABEL: [AD] Activity info for ${{.*}}testAccessorCoroutines{{.*}} at parameter indices (0) and result indices (0)
588
588
// CHECK: [ACTIVE] %0 = argument of bb0 : $HasCoroutineAccessors
589
- // CHECK: [ACTIVE] %2 = alloc_stack $HasCoroutineAccessors, var, name "x"
589
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $HasCoroutineAccessors, var, name "x"
590
590
// CHECK: [ACTIVE] %4 = begin_access [read] [static] %2 : $*HasCoroutineAccessors
591
591
// CHECK: [ACTIVE] %5 = load [trivial] %4 : $*HasCoroutineAccessors
592
592
// CHECK: [NONE] // function_ref HasCoroutineAccessors.computed.read
@@ -619,7 +619,7 @@ func testBeginApplyActiveInoutArgument(array: [Float], x: Float) -> Float {
619
619
// CHECK-LABEL: [AD] Activity info for ${{.*}}testBeginApplyActiveInoutArgument{{.*}} at parameter indices (0, 1) and result indices (0)
620
620
// CHECK: [ACTIVE] %0 = argument of bb0 : $Array<Float>
621
621
// CHECK: [ACTIVE] %1 = argument of bb0 : $Float
622
- // CHECK: [ACTIVE] %4 = alloc_stack $Array<Float>, var, name "array"
622
+ // CHECK: [ACTIVE] %4 = alloc_stack [lexical] $Array<Float>, var, name "array"
623
623
// CHECK: [ACTIVE] %5 = copy_value %0 : $Array<Float>
624
624
// CHECK: [USEFUL] %7 = integer_literal $Builtin.IntLiteral, 0
625
625
// CHECK: [USEFUL] %8 = metatype $@thin Int.Type
@@ -656,7 +656,7 @@ func testBeginApplyActiveButInitiallyNonactiveInoutArgument(x: Float) -> Float {
656
656
657
657
// CHECK-LABEL: [AD] Activity info for ${{.*}}testBeginApplyActiveButInitiallyNonactiveInoutArgument{{.*}} at parameter indices (0) and result indices (0)
658
658
// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
659
- // CHECK: [ACTIVE] %2 = alloc_stack $Array<Float>, var, name "array"
659
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $Array<Float>, var, name "array"
660
660
// CHECK: [USEFUL] %3 = integer_literal $Builtin.Word, 1
661
661
// CHECK: [NONE] // function_ref _allocateUninitializedArray<A>(_:)
662
662
// CHECK: [USEFUL] %5 = apply %4<Float>(%3) : $@convention(thin) <τ_0_0> (Builtin.Word) -> (@owned Array<τ_0_0>, Builtin.RawPointer)
@@ -756,7 +756,7 @@ func testActiveOptional(_ x: Float) -> Float {
756
756
// CHECK-LABEL: [AD] Activity info for ${{.*}}testActiveOptional{{.*}} at parameter indices (0) and result indices (0)
757
757
// CHECK: bb0:
758
758
// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
759
- // CHECK: [ACTIVE] %2 = alloc_stack $Optional<Float>, var, name "maybe"
759
+ // CHECK: [ACTIVE] %2 = alloc_stack [lexical] $Optional<Float>, var, name "maybe"
760
760
// CHECK: [USEFUL] %3 = integer_literal $Builtin.IntLiteral, 10
761
761
// CHECK: [USEFUL] %4 = metatype $@thin Float.Type
762
762
// CHECK: [NONE] // function_ref Float.init(_builtinIntegerLiteral:)
0 commit comments