diff options
author | John Hodge <tpg@mutabah.net> | 2016-10-15 11:23:09 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-10-15 11:23:09 +0800 |
commit | d17242a9d79c4f27aa557c93b2a77447862d6b92 (patch) | |
tree | 0d3d76c3fb391b9cdd1e13d7d8a9664c4a918dce | |
parent | be952e5ea5f60edf6d39ebb6f6ec692799c60850 (diff) | |
download | mrust-d17242a9d79c4f27aa557c93b2a77447862d6b92.tar.gz |
Notes/MIR - Add ideas for extension
-rw-r--r-- | Notes/MIR.md | 12 |
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) |