about summary refs log tree commit diff
path: root/src/test/compile-fail/coherence-impl-trait-for-trait-object-safe.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-12-11 00:59:48 +0000
committerbors <bors@rust-lang.org>2015-12-11 00:59:48 +0000
commit7ce713961cb7c36bb66db70a276973eb78cf9e6e (patch)
treeb7379aa50ccc114e34709bc1f6d041d4905f7be5 /src/test/compile-fail/coherence-impl-trait-for-trait-object-safe.rs
parent0d3684063bab26117a8a5c26684470396446fe88 (diff)
parent5addc31adb558da1613c8f9748ee05688f6eaf91 (diff)
downloadrust-7ce713961cb7c36bb66db70a276973eb78cf9e6e.tar.gz
rust-7ce713961cb7c36bb66db70a276973eb78cf9e6e.zip
Auto merge of #30301 - michaelwoerister:mir-to-metadata2, r=nikomatsakis
This PR makes `Mir` `RustcEncodable` and `RustcDecodable` and stores it in crate metadata for inlinable items.

Some other things in here:
- `mir::visit::Visitor` is extended to also visit `Literals`, `Spans` and `DefIds`.
- It also adds `mir::visit::MutVisitor` which allows to mutate the visited `Mir` structure in place.
- Some numbers on how big MIR is in metadata (total metadata size in bytes):

|                | w/ MIR     | w/o MIR     | Rel. Size |
|----------------|-----------:|------------:|:---------:|
| libcore        | 17,695,473 |  14,263,377 |  124%     |
| liblibc        | 411,440   |  404,382    | 102%      |
| libcollections |  4,537,975 |   3,526,933 |   129%    |
| libserialize   |  2,574,769 |   2,060,798 |   125%    |
| libsyntax      | 15,262,894 |  12,075,574 |  126%     |
| librustc       | 16,984,537 |  13,692,168 |  124%     |

So, adding MIR to metadata makes it about 25% bigger. It could be worse, considering that it still uses the inefficient RBML encoding. Still, the question is whether we should put MIR emission behind a `-Z` flag.
Diffstat (limited to 'src/test/compile-fail/coherence-impl-trait-for-trait-object-safe.rs')
0 files changed, 0 insertions, 0 deletions