fix Usage Flags
open override fun fixUsageFlags( localData: MutableList<AvailVariableAccessNote?>, outerData: MutableList<AvailVariableAccessNote?>, codeGenerator: AvailCodeGenerator)
Content copied to clipboard
The instructions of a block are being iterated over. Coordinate optimizations between instructions using localData and outerData, two lists manipulated by overrides of this method. Treat each instruction as though it is the last one in the block, and save enough information in the lists to be able to undo consequences of this assumption when a later instruction shows it to be unwarranted.
The data lists are keyed by local or outer index. Each entry is either null or a AvailVariableAccessNote, which keeps track of the previous time a get or push happened.
I get the value of an outer, so it can't be an outer reference to an argument (they aren't wrapped in a variable).