Commit Graph

490 Commits

Author SHA1 Message Date
Joe Groff
91f8bc5b2a SIL.rst: Briefly discuss the cdecl and objc conventions.
C types are always trivial and C function signatures don't get mangled by the platform ABI at the SIL level. ObjC methods uncurry left-to-right, "_cmd" is magicked away, and they follow ARC's ownership rules for reference counting.

Swift SVN r6619
2013-07-25 22:28:31 +00:00
Joe Groff
f3d943f111 SIL.rst: Elaborate on how exactly function types get transformed.
Swift SVN r6618
2013-07-25 22:08:53 +00:00
Joe Groff
ac50a32428 SIL.rst: Remove absurd grammar example.
None of the instructions I used to demonstrate the operand syntax actually use it. That's dumb.

Also refactor the grammar to fix an inaccurate use of 'sil-value'. We allow the '#n' value index even in places we don't require a type, but not for instruction or bb argument defs.

Swift SVN r6615
2013-07-25 21:46:02 +00:00
Joe Groff
cbd8fc1665 SIL.rst: Make more explicit that 'coerce' has no runtime effect.
Swift SVN r6611
2013-07-25 21:00:12 +00:00
Joe Groff
e673b0cf55 SIL.rst: Update in response to DaveA comments.
Avoid overspecifying optimization/diagnostic passes because those aren't nailed down yet. Don't use "shared" to refer to boxed variables; it's meaningless in this context.

Swift SVN r6610
2013-07-25 21:00:10 +00:00
Joe Groff
258d4fd3c2 SIL.rst: Rename values in an example to avoid confusion.
Swift SVN r6606
2013-07-25 18:38:17 +00:00
Joe Groff
9fc4047d6c SIL.rst: Terminators never produce values.
Swift SVN r6604
2013-07-25 17:39:35 +00:00
Joe Groff
16d68f6115 SIL.rst: Update with feedback from ChrisL and Fariborz.
Swift SVN r6603
2013-07-25 17:37:05 +00:00
Chris Lattner
9d093f32af updates: increase some of the description of compiler flow, change some minor wording
and fix some syntactic issues.


Swift SVN r6590
2013-07-25 07:06:56 +00:00
Joe Groff
b85ba363a8 SIL.rst: Update SIL comment syntax.
Swift SVN r6575
2013-07-25 00:29:35 +00:00
Joe Groff
a6ff8a4479 SIL.rst: Update the calling convention section.
Swift SVN r6574
2013-07-25 00:25:54 +00:00
Joe Groff
213f2e8592 SIL.rst: Cleanups.
Swift SVN r6572
2013-07-24 23:32:37 +00:00
Joe Groff
e98dfb5ff4 SIL.rst: Call things out as UB instead of being vague.
Swift SVN r6571
2013-07-24 23:32:35 +00:00
Joe Groff
b1500945c2 SIL.rst: More words about addresses and generic function types.
Swift SVN r6570
2013-07-24 23:32:32 +00:00
Joe Groff
af2ffca8a2 SIL.rst: Elaborate on the restrictions on SIL address types.
Swift SVN r6565
2013-07-24 22:27:57 +00:00
Joe Groff
6850f6698e SIL.rst: Missing grammar rule.
Swift SVN r6564
2013-07-24 22:12:54 +00:00
Joe Groff
668f38732d SIL.rst: Cleanups.
Swift SVN r6562
2013-07-24 22:10:50 +00:00
Joe Groff
872e781093 SIL.rst: Document sil function linkage specifiers.
Swift SVN r6561
2013-07-24 22:10:48 +00:00
Joe Groff
777c1fd4e9 SIL.rst: Fix section reference.
Swift SVN r6560
2013-07-24 21:21:34 +00:00
Joe Groff
d8b9ddc5f3 SIL.rst: Discuss undefined behavior.
SIL has it, though a perfect Swift program written against a perfect Swift standard library run through perfect optimization passes should never emit it.

Swift SVN r6556
2013-07-24 21:03:00 +00:00
Joe Groff
77ee3c7819 SIL.rst: Reference type values need to be used with an owning strong refcount.
Obvious, but worth spelling out.

Swift SVN r6555
2013-07-24 21:02:59 +00:00
Joe Groff
30c0d47033 SIL.rst: Define "runtime failure".
Swift SVN r6554
2013-07-24 21:02:57 +00:00
Joe Groff
320106c7bd SIL.rst: Provide some high-level discussion of dataflow errors.
Swift SVN r6552
2013-07-24 19:06:56 +00:00
Joe Groff
e4a6c93b4b SIL.rst: Discuss some additional categories of type.
Swift SVN r6551
2013-07-24 19:06:54 +00:00
Joe Groff
936a1f08d2 SIL.rst: Touch-ups.
Swift SVN r6548
2013-07-24 18:07:23 +00:00
Joe Groff
676de04f61 SIL.rst: ReST syntax.
Swift SVN r6544
2013-07-24 03:52:50 +00:00
Joe Groff
82d1091bc6 SIL.rst: Update docs for terminators.
Swift SVN r6539
2013-07-24 01:01:55 +00:00
Joe Groff
b2115265d3 SIL.rst: Update docs for index_addr/index_raw_pointer.
And lump them in with memory access instructions.

Swift SVN r6537
2013-07-24 00:24:10 +00:00
Joe Groff
a919bc1073 SIL.rst: Remove out-of-date "examples" section.
Swift SVN r6536
2013-07-24 00:24:08 +00:00
Joe Groff
08723dd3a9 SIL.rst: Update docs for checked cast instructions.
Swift SVN r6535
2013-07-24 00:03:35 +00:00
Joe Groff
ac5cefddb8 SIL.rst: Update docs for unchecked conversion instructions.
Swift SVN r6530
2013-07-23 23:15:52 +00:00
Joe Groff
51d7e56d4e SIL.rst: Update docs for protocol type instructions.
Swift SVN r6500
2013-07-23 16:41:25 +00:00
Joe Groff
8fa2419136 SIL.rst: Wording.
Swift SVN r6499
2013-07-23 16:41:23 +00:00
Joe Groff
a9c8ad3c07 SIL.rst: Update docs for reference counting instructions.
The retain_autoreleased docs might need some help from someone more versed in the arcana of the autoreleased-return-value hack.

Swift SVN r6491
2013-07-23 03:09:10 +00:00
Joe Groff
a245dfae3a SIL.rst: Update docs for load/store-ish instructions.
Swift SVN r6490
2013-07-23 03:09:02 +00:00
Chris Lattner
e903fae800 update this to reflect the current direction in SIL optzn passes.
Swift SVN r6487
2013-07-23 02:29:13 +00:00
Joe Groff
b9ab10d67a SIL.rst: Update docs for aggregate construct/extract insts.
Swift SVN r6486
2013-07-23 01:45:11 +00:00
Joe Groff
ff4b9ce1f3 SIL.rst: Put the 'module' instruction in with the literal insts.
Swift SVN r6485
2013-07-23 01:45:05 +00:00
Joe Groff
2bec3871d8 SIL.rst: Update docs for metatype instructions.
Swift SVN r6484
2013-07-23 01:45:00 +00:00
Joe Groff
dffe597ee0 SIL.rst: Update docs for function application instructions.
Swift SVN r6483
2013-07-23 01:44:53 +00:00
Joe Groff
b55d0c7ae9 SIL.rst: Update documentation for dynamic method instructions.
Swift SVN r6482
2013-07-22 21:42:40 +00:00
Joe Groff
37b3911cef SIL.rst: Update documentation for literal instructions.
Swift SVN r6480
2013-07-22 21:42:10 +00:00
Joe Groff
6e418585b3 SIL.rst: Update syntax and description of alloc/dealloc instructions.
Swift SVN r6479
2013-07-22 21:41:29 +00:00
Joe Groff
c0b03b42ac SIL.rst: Reorder instructions consistent with SILNodes.def.
Neither order is particularly great yet, but getting them in sync will help us keep SIL.rst coverage up as we add/remove instructions in the future.

Swift SVN r6457
2013-07-22 17:31:26 +00:00
Joe Groff
f00345496c SIL.rst: ReST syntax.
Swift SVN r6452
2013-07-22 15:48:35 +00:00
Chris Lattner
dbd820c6e5 teach memorypromotion about ProjectExistentialInst. Mention ARC optimization in SIL.rst.
Swift SVN r6435
2013-07-22 00:46:00 +00:00
Joe Groff
99874c0df4 SIL.rst: Wording.
Swift SVN r6420
2013-07-21 00:05:18 +00:00
Joe Groff
2b05858cd5 SIL.rst: Rework the "Syntax" section.
Describe the syntax entities as implemented by Chris and Manman in the parser.

Swift SVN r6419
2013-07-21 00:03:21 +00:00
Joe Groff
bb65bcd6d4 SIL.rst: Add a section about the SIL pipeline in the compiler.
Give an overview of the entire compiler pipeline followed by some description of where we're at and where we want to be with SILGen and the following SIL passes.

Swift SVN r6418
2013-07-20 21:44:32 +00:00
Joe Groff
e84798351b SIL.rst: Fill out the abstract.
Swift SVN r6417
2013-07-20 21:44:27 +00:00