@@ -100,7 +100,7 @@ Apple term for "the person assigned to watch CI this week".
100
100
101
101
## canonical SIL
102
102
103
- SIL after the
103
+ [ SIL] ( #sil ) after the
104
104
[ mandatory passes] ( #mandatory-passes--mandatory-optimizations ) have run.
105
105
This can be used as input to IRGen to generate LLVM IR or object files.
106
106
@@ -179,7 +179,7 @@ The other half is provided by corresponding
179
179
## DI (definite initialization / definitive initialization)
180
180
181
181
The feature that no uninitialized variables, constants, or properties will
182
- be read by a program, or the analysis pass that operates on SIL to
182
+ be read by a program, or the analysis pass that operates on [ SIL] ( #sil ) to
183
183
guarantee this. This was
184
184
[ discussed on Apple's Swift blog] ( https://developer.apple.com/swift/blog/?id=28 ) .
185
185
@@ -284,6 +284,8 @@ perform structural modification, e.x.:
284
284
2 . ` case let x: ` .
285
285
3 . ` case (_, _): ` .
286
286
287
+ Contrast with [ refutable pattern] ( #refutable-pattern )
288
+
287
289
## IR
288
290
289
291
1 . "intermediate representation": a generic term for a format representing
@@ -327,7 +329,7 @@ The module for the file or files currently being compiled.
327
329
328
330
## mandatory passes / mandatory optimizations
329
331
330
- Transformations over SIL that run immediately after SIL generation. Once
332
+ Transformations over [ SIL] ( #sil ) that run immediately after SIL generation. Once
331
333
all mandatory passes have run (and if no errors are found), the SIL is
332
334
considered [ canonical] ( #canonical-SIL ) .
333
335
@@ -359,7 +361,7 @@ Has *many* uses in the Swift world. We may want to rename some of them.
359
361
2 . A compilation unit; that is, source files that are compiled together.
360
362
These files may contain cross-references. Represented as "the main
361
363
module" (a specific ModuleDecl).
362
- 3 . (as "SIL module") A container for SIL to be compiled together, along
364
+ 3 . (as "[ SIL] ( #sil ) module") A container for SIL to be compiled together, along
363
365
with various context for the compilation.
364
366
4 . (as "LLVM module") A collection of LLVM IR to be compiled together.
365
367
Always created in an LLVMContext.
@@ -491,7 +493,7 @@ on that system.
491
493
492
494
## raw SIL
493
495
494
- SIL just after being generated, not yet in a form that can be used for
496
+ [ SIL] ( #sil ) just after being generated, not yet in a form that can be used for
495
497
IR generation.
496
498
See [ mandatory passes] ( #mandatory-passes--mandatory-optimizations ) .
497
499
@@ -540,6 +542,8 @@ A pattern that may not always match. These include patterns such as:
540
542
2 . Enum case check: e.g. ` case .none: ` .
541
543
3 . Expr pattern: e.g. ` case foo(): ` .
542
544
545
+ Contrast with [ irrefutable pattern] ( #irrefutable-pattern )
546
+
543
547
## resilient
544
548
545
549
Describes a type or function where making certain changes will not break
@@ -656,7 +660,7 @@ The value or type that satisfies a protocol requirement.
656
660
657
661
## witness table
658
662
659
- The SIL (and runtime) representation of a [ conformance] ( #conformance ) ; essentially a
663
+ The [ SIL] ( #sil ) (and runtime) representation of a [ conformance] ( #conformance ) ; essentially a
660
664
[ vtable] ( #vtable-virtual-dispatch-table ) but for a protocol instead of
661
665
a class.
662
666
0 commit comments