summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-17 13:46:47 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-17 13:46:47 +0800
commit2d3e89a56b91ba2a21f887da7e4eb1ba7e750626 (patch)
treeda51727b20344bb92caae713d1592a7acd47727d
parent8107e295ac63a84f6445400ca6c5d785090968e3 (diff)
downloadmrust-2d3e89a56b91ba2a21f887da7e4eb1ba7e750626.tar.gz
Note/MIR - Planning for drop support
-rw-r--r--Notes/MIR.md14
1 files changed, 12 insertions, 2 deletions
diff --git a/Notes/MIR.md b/Notes/MIR.md
index dbeb131c..9e7a780f 100644
--- a/Notes/MIR.md
+++ b/Notes/MIR.md
@@ -1,6 +1,5 @@
% Mid-level intermediate representation
-
See https://github.com/rust-lang/rfcs/blob/master/text/1211-mir.md
@@ -13,7 +12,7 @@ Graph of "Basic Blocks"
- Varaibles are single-assigment, but mutable via &mut or field accesses
-Types
+Operations and value types
=====
LValues (assignable locations)
@@ -47,3 +46,14 @@ RValues (usable values)
- `CONSTANT` - Subset of RValues that are known at compile-time
+Generation Notes
+================
+
+Drop Scopes
+-----------
+
+- Requirements:
+ - Standard scoped definitions (e.g. blocks) - Where the runtime scope and the generator's stack frame correspond
+ - Deferred scope completion (e.g. within match codegen)
+ - Generated drops for panic cleanup.
+