@@ -18,7 +18,7 @@ func testNoDerivativeStructProjection(_ s: HasNoDerivativeProperty) -> Float {
1818
1919// CHECK-LABEL: [AD] Activity info for ${{.*}}testNoDerivativeStructProjection{{.*}} at parameter indices (0) and result indices (0):
2020// 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"
2222// CHECK: [ACTIVE] %4 = begin_access [read] [static] %2 : $*HasNoDerivativeProperty
2323// CHECK: [ACTIVE] %5 = struct_element_addr %4 : $*HasNoDerivativeProperty, #HasNoDerivativeProperty.x
2424// CHECK: [VARIED] %6 = load [trivial] %5 : $*Float
@@ -42,7 +42,7 @@ func testNondifferentiableTupleElementAddr<T>(_ x: T) -> T {
4242// CHECK-LABEL: [AD] Activity info for ${{.*}}testNondifferentiableTupleElementAddr{{.*}} at parameter indices (0) and result indices (0):
4343// CHECK: [ACTIVE] %0 = argument of bb0 : $*T
4444// 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"
4646// CHECK: [USEFUL] %4 = tuple_element_addr %3 : $*(Int, Int, (T, Int), Int), 0
4747// CHECK: [USEFUL] %5 = tuple_element_addr %3 : $*(Int, Int, (T, Int), Int), 1
4848// 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 {
7676// CHECK-LABEL: [AD] Activity info for ${{.*}}TF_781{{.*}} at parameter indices (0) and result indices (0)
7777// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
7878// 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"
8080// CHECK: [ACTIVE] %19 = begin_access [read] [static] %4 : $*Float
8181// CHECK: [ACTIVE] %20 = load [trivial] %19 : $*Float
8282// 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 {
103103// CHECK-LABEL: [AD] Activity info for ${{.*}}TF_954{{.*}} at parameter indices (0) and result indices (0)
104104// CHECK: bb0:
105105// 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"
107107// CHECK: bb1:
108- // CHECK: [ACTIVE] %10 = alloc_stack $Float, var, name "inner"
108+ // CHECK: [ACTIVE] %10 = alloc_stack [lexical] $Float, var, name "inner"
109109// CHECK: [ACTIVE] %11 = begin_access [read] [static] %2 : $*Float
110110// CHECK: [USEFUL] %14 = metatype $@thin Float.Type
111111// CHECK: [ACTIVE] %15 = begin_access [read] [static] %10 : $*Float
@@ -286,7 +286,7 @@ func testArrayUninitializedIntrinsicAddress(_ x: Float, _ y: Float) -> [Float] {
286286// CHECK-LABEL: [AD] Activity info for ${{.*}}testArrayUninitializedIntrinsicAddress{{.*}} at parameter indices (0, 1) and result indices (0)
287287// CHECK: [ACTIVE] %0 = argument of bb0 : $Float
288288// 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"
290290// CHECK: [ACTIVE] %7 = begin_access [read] [static] %4 : $*Float
291291// CHECK: [ACTIVE] %8 = load [trivial] %7 : $*Float
292292// CHECK: [NONE] // function_ref static Float.* infix(_:_:)
@@ -348,28 +348,28 @@ func testArrayUninitializedIntrinsicNested(_ x: Float, _ y: Float) -> [Float] {
348348// CHECK: [ACTIVE] %12 = index_addr %9 : $*Float, %11 : $Builtin.Word
349349// CHECK: [NONE] // function_ref _finalizeUninitializedArray<A>(_:)
350350// 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
352352// 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
359359// 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
361361// 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
367367// 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
369369// 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
371371// 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>
373373
374374// TF-978: Test array literal initialized with `apply` indirect results.
375375struct Wrapper < T: Differentiable > : Differentiable {
@@ -440,7 +440,7 @@ func activeInoutArgMutatingMethod(_ x: Mut) -> Mut {
440440
441441// CHECK-LABEL: [AD] Activity info for ${{.*}}28activeInoutArgMutatingMethodyAA3MutVADF at parameter indices (0) and result indices (0)
442442// 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"
444444// CHECK: [ACTIVE] %4 = begin_access [read] [static] %2 : $*Mut
445445// CHECK: [ACTIVE] %5 = load [trivial] %4 : $*Mut
446446// CHECK: [ACTIVE] %7 = begin_access [modify] [static] %2 : $*Mut
@@ -459,7 +459,7 @@ func activeInoutArgMutatingMethodVar(_ nonactive: inout Mut, _ x: Mut) {
459459// CHECK_LABEL: [AD] Activity info for ${{.*}}31activeInoutArgMutatingMethodVaryyAA3MutVz_ADtF at (parameters=(1) results=(0))
460460// CHECK: [ACTIVE] %0 = argument of bb0 : $*Mut
461461// 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"
463463// CHECK: [ACTIVE] %5 = begin_access [read] [static] %0 : $*Mut
464464// CHECK: [ACTIVE] %8 = begin_access [modify] [static] %4 : $*Mut
465465// CHECK: [NONE] // function_ref Mut.mutatingMethod(_:)
@@ -480,7 +480,7 @@ func activeInoutArgMutatingMethodTuple(_ nonactive: inout Mut, _ x: Mut) {
480480// CHECK-LABEL: [AD] Activity info for ${{.*}}33activeInoutArgMutatingMethodTupleyyAA3MutVz_ADtF at parameter indices (1) and result indices (0)
481481// CHECK: [ACTIVE] %0 = argument of bb0 : $*Mut
482482// 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"
484484// CHECK: [ACTIVE] %5 = tuple_element_addr %4 : $*(Mut, Mut), 0
485485// CHECK: [ACTIVE] %6 = tuple_element_addr %4 : $*(Mut, Mut), 1
486486// CHECK: [ACTIVE] %7 = begin_access [read] [static] %0 : $*Mut
@@ -507,7 +507,7 @@ func activeInoutArg(_ x: Float) -> Float {
507507
508508// CHECK-LABEL: [AD] Activity info for ${{.*}}activeInoutArg{{.*}} at parameter indices (0) and result indices (0)
509509// 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"
511511// CHECK: [ACTIVE] %5 = begin_access [modify] [static] %2 : $*Float
512512// CHECK: [NONE] // function_ref static Float.+= infix(_:_:)
513513// 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 {
523523
524524// CHECK-LABEL: [AD] Activity info for ${{.*}}activeInoutArgNonactiveInitialResult{{.*}} at parameter indices (0) and result indices (0)
525525// 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"
527527// CHECK: [NONE] // function_ref Float.init(_builtinIntegerLiteral:)
528528// CHECK: [USEFUL] %6 = apply %5(%3, %4) : $@convention(method) (Builtin.IntLiteral, @thin Float.Type) -> Float
529529// CHECK: [USEFUL] %8 = metatype $@thin Float.Type
@@ -586,7 +586,7 @@ func testAccessorCoroutines(_ x: HasCoroutineAccessors) -> HasCoroutineAccessors
586586
587587// CHECK-LABEL: [AD] Activity info for ${{.*}}testAccessorCoroutines{{.*}} at parameter indices (0) and result indices (0)
588588// 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"
590590// CHECK: [ACTIVE] %4 = begin_access [read] [static] %2 : $*HasCoroutineAccessors
591591// CHECK: [ACTIVE] %5 = load [trivial] %4 : $*HasCoroutineAccessors
592592// CHECK: [NONE] // function_ref HasCoroutineAccessors.computed.read
@@ -619,7 +619,7 @@ func testBeginApplyActiveInoutArgument(array: [Float], x: Float) -> Float {
619619// CHECK-LABEL: [AD] Activity info for ${{.*}}testBeginApplyActiveInoutArgument{{.*}} at parameter indices (0, 1) and result indices (0)
620620// CHECK: [ACTIVE] %0 = argument of bb0 : $Array<Float>
621621// 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"
623623// CHECK: [ACTIVE] %5 = copy_value %0 : $Array<Float>
624624// CHECK: [USEFUL] %7 = integer_literal $Builtin.IntLiteral, 0
625625// CHECK: [USEFUL] %8 = metatype $@thin Int.Type
@@ -656,7 +656,7 @@ func testBeginApplyActiveButInitiallyNonactiveInoutArgument(x: Float) -> Float {
656656
657657// CHECK-LABEL: [AD] Activity info for ${{.*}}testBeginApplyActiveButInitiallyNonactiveInoutArgument{{.*}} at parameter indices (0) and result indices (0)
658658// 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"
660660// CHECK: [USEFUL] %3 = integer_literal $Builtin.Word, 1
661661// CHECK: [NONE] // function_ref _allocateUninitializedArray<A>(_:)
662662// 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 {
756756// CHECK-LABEL: [AD] Activity info for ${{.*}}testActiveOptional{{.*}} at parameter indices (0) and result indices (0)
757757// CHECK: bb0:
758758// 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"
760760// CHECK: [USEFUL] %3 = integer_literal $Builtin.IntLiteral, 10
761761// CHECK: [USEFUL] %4 = metatype $@thin Float.Type
762762// CHECK: [NONE] // function_ref Float.init(_builtinIntegerLiteral:)
0 commit comments