ScopeDetails
private struct ScopeDetails
The details needed to elaborate a scope using projections.
-
The identifier for the original caller function to be elaborated.
Declaration
Swift
let id: Function.ID -
All the blocks that need to be elaborated, which are in dominance order.
Declaration
Swift
let blocks: [Block.ID] -
All the instructions in
blocks.Declaration
Swift
let instructions: [InstructionID] -
The split positions in
instructions, corresponding toprojectandend_projectinstructions, separating our blocks into regions.Declaration
Swift
let regionSplitPositions: [Int] -
The number of regions in the caller scope.
Declaration
Swift
var regionsCount: Int { get } -
Returns the split instruction at the end of region
r.Requires
r < regionsCount - 1.Declaration
Swift
internal func splitInstruction(endingRegion r: Int) -> InstructionID -
Returns the split instruction at the start of region
r.Requires
0 < r < regionsCount.Declaration
Swift
internal func splitInstruction(startingRegion r: Int) -> InstructionID -
Returns all the instructions in region
r, excluding the split instructions.Declaration
Swift
internal func instructions(region r: Int) -> Array<InstructionID>.SubSequence
View on GitHub