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: [SplitPositions] -
The number of regions in the caller scope.
Declaration
Swift
var regionsCount: Int { get } -
Returns the split instruction at the end of region
r.Declaration
Swift
internal func splitInstruction(endingRegion r: Int) -> InstructionID -
Returns the instructions in the “prefix” of region
r, i.e. instructions without the epilogue.Declaration
Swift
internal func prefixInstructions(region r: Int) -> Array<InstructionID>.SubSequence -
Returns the “epilogue” instructions of region
r.Declaration
Swift
internal func epilogueInstructions(region r: Int) -> Array<InstructionID>.SubSequence -
Returns all the instructions in region
r.Declaration
Swift
internal func instructions(region r: Int) -> Array<InstructionID>.SubSequence
View on GitHub