@@ -188,8 +188,8 @@ class LocalVariableAccessInfo: CustomStringConvertible {
188188 }
189189
190190 var description : String {
191- return " \( access ) " +
192- " \n fully-assigned: \( _isFullyAssigned == nil ? " unknown " : String ( describing : _isFullyAssigned! ) ) "
191+ return " full-assign: \( _isFullyAssigned == nil ? " unknown " : String ( describing : _isFullyAssigned! ) ) "
192+ + " \( access ) "
193193 }
194194}
195195
@@ -200,7 +200,7 @@ class LocalVariableAccessInfo: CustomStringConvertible {
200200/// map.
201201///
202202/// TODO: In addition to isFullyAssigned, consider adding a lazily computed access path if any need arises.
203- struct LocalVariableAccessMap : Collection , FormattedLikeArray {
203+ struct LocalVariableAccessMap : Collection , CustomStringConvertible {
204204 let context : Context
205205 let allocation : Value
206206
@@ -279,6 +279,10 @@ struct LocalVariableAccessMap: Collection, FormattedLikeArray {
279279 subscript( _ accessIndex: Int ) -> LocalVariableAccessInfo { accessList [ accessIndex] }
280280
281281 subscript( instruction: Instruction ) -> LocalVariableAccessInfo ? { accessMap [ instruction] }
282+
283+ public var description : String {
284+ " Access map: \n " + map( { String ( describing: $0) } ) . joined ( separator: " \n " )
285+ }
282286}
283287
284288/// Gather the accesses of a local allocation: alloc_box, alloc_stack, @in, @inout.
@@ -733,7 +737,8 @@ extension LocalVariableReachableAccess {
733737 forwardPropagateEffect ( in: block, blockInfo: blockInfo, effect: currentEffect, blockList: & blockList,
734738 accessStack: & accessStack)
735739 }
736- log ( " Local variable reachable uses: \( accessMap) \n \( accessStack) " )
740+ log ( " \( accessMap) " )
741+ log ( " Reachable access: \n \( accessStack. map ( { String ( describing: $0) } ) . joined ( separator: " \n " ) ) " )
737742 return true
738743 }
739744
0 commit comments