summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-10-15 11:23:09 +0800
committerJohn Hodge <tpg@mutabah.net>2016-10-15 11:23:09 +0800
commitd17242a9d79c4f27aa557c93b2a77447862d6b92 (patch)
tree0d3d76c3fb391b9cdd1e13d7d8a9664c4a918dce
parentbe952e5ea5f60edf6d39ebb6f6ec692799c60850 (diff)
downloadmrust-d17242a9d79c4f27aa557c93b2a77447862d6b92.tar.gz
Notes/MIR - Add ideas for extension
-rw-r--r--Notes/MIR.md12
1 files changed, 11 insertions, 1 deletions
diff --git a/Notes/MIR.md b/Notes/MIR.md
index 88b5e888..279c0e58 100644
--- a/Notes/MIR.md
+++ b/Notes/MIR.md
@@ -1,6 +1,7 @@
% Mid-level intermediate representation
-See https://github.com/rust-lang/rfcs/blob/master/text/1211-mir.md
+Based of the rustc MIR RFC, not the actual rustc implementation -
+See [RFC #1211](https://github.com/rust-lang/rfcs/blob/master/text/1211-mir.md)
Overview
@@ -45,6 +46,9 @@ RValues (usable values)
- `fatptr(LVALUE, LVALUE)` - Construct a fat pointer from a pair of lvalues
- `CONSTANT` - Subset of RValues that are known at compile-time
+Terminators
+-----------
+- TODO
Generation Notes
================
@@ -82,3 +86,9 @@ Optimisiation
- Useless assignments
- Basic-block chaining
- De-duplication
+
+
+TODO
+====
+- Create a variant of the `CALL` terminator that takes a path instead of a LValue
+- Create a `CallPath` RValue for calling functions that never diverge (e.g. some intrinsics)