mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Split the SIL function convention and memory access documentation into separate documents. Reference them from SIL.rst.
43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
# 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](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](HighLevelSILOptimizations.rst) discusses how the optimizer imbues
|
|
certain special SIL types and SIL functions with higher level
|
|
semantics.
|