Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 1.41 KB

SILProgrammersManual.md

File metadata and controls

42 lines (28 loc) · 1.41 KB

SIL Programmers' Manual

This document provides information for developers working on the implementation of SIL. The formal specification of the Swift Intermediate Language is in SIL.rst. This is a guide to the internal implementation. Source comments normally provide this level of information as much as possible. However, some features of the implementation are spread out across the source base. This documentation is meant to offer a central point for approaching the source base with links to the code for more detailed comments.

SILType

TBD: Define the different levels of types. Explain type lowering with examples.

SILInstructionResults

TBD: Explain how the various types fit together with pointers to the source: SILValue, SILInstruction, SingleValueInstruction, MultipleValueInstructionResult. And why it was done this way.

SILGen

TBD: Possibly link to a separate document explaining the architecture of SILGen.

Some information from SIL.rst could be moved here.

IRGen

TBD: Possibly link to a separate document explaining the architecture of IRGen.

SILAnalysis and the PassManager

TBD: describe the mechanism by which passes invalidate and update the PassManager and its available analyses.

High Level SIL Optimizations

HighLevelSILOptimizations.rst discusses how the optimizer imbues certain special SIL types and SIL functions with higher level semantics.