rust/src/librustdoc
bors a216e84727 Auto merge of #29217 - nikomatsakis:mir-trans, r=dotdash
This branch implements a variant of trans that is based on MIR. It is very incomplete (intentionally), and had only the goal of laying out enough work to enable more incremental follow-on patches. Currently, only fns tagged with `#[rustc_mir]` use the new trans code. I plan to build up a meta-issue as well that tracks the various "not-yet-implemented" points. The only fn that has been tested so far is this amazingly complex "spike" fn:

```rust
#[rustc_mir]
fn sum(x: i32, y: i32) -> i32 {
    x + y
}
```

In general, the most interesting commit is the last one. There are some points on which I would like feedback from @rust-lang/compiler:

- I did not use `Datum`. Originally, I thought that maybe just a `ValueRef` would be enough but I wound up with two very simple structures, `LvalueRef` and `OperandRef`, that just package up a `ValueRef` and a type. Because of MIR's structure, you don't wind up mixing by-ref and by-value so much, and I tend to think that a thinner abstraction layer is better here, but I'm not sure.
- Related to the above, I expect that sooner or later we will analyze temps (and maybe variables too) to find those whose address is never taken and which are word-sized and which perhaps meet a few other criteria. For those, we'll probably want to avoid the alloca, just because it means prettier code.
- I generally tried to re-use data structures from elsewhere in trans, though I'm sure we can trim these down.
- I didn't do any debuginfo primarily because it seems to want node-ids and we have only spans. I haven't really read into that code so I don't know what's going on there.

r? @nrc
2015-11-04 02:13:05 +00:00
..
clean Remove PatWildMulti 2015-10-31 03:44:43 +03:00
html Add colors for rustdoc primitives, type, and macros links 2015-10-23 21:59:48 -04:00
core.rs Auto merge of #29217 - nikomatsakis:mir-trans, r=dotdash 2015-11-04 02:13:05 +00:00
doctree.rs syntax/rustc_front: Simplify VariantData::fields 2015-10-25 18:33:51 +03:00
externalfiles.rs Add generic conversion traits 2015-03-23 15:01:45 -07:00
flock.rs Add netbsd amd64 support 2015-07-01 19:09:14 -07:00
fold.rs rustdoc: Run external traits through filters 2015-04-07 17:54:33 -07:00
lib.rs std: Stabilize library APIs for 1.5 2015-10-25 09:36:32 -07:00
markdown.rs fix rustdoc metadata parsing 2015-07-30 15:51:50 -07:00
passes.rs Accept tabs as indentation character 2015-11-02 09:17:17 +00:00
plugins.rs std: Stabilize library APIs for 1.5 2015-10-25 09:36:32 -07:00
test.rs std: Stabilize library APIs for 1.5 2015-10-25 09:36:32 -07:00
visit_ast.rs syntax/rustc_front: Simplify VariantData::fields 2015-10-25 18:33:51 +03:00