| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2017-06-01 | ergonomic improvements to the methods in infcx | Niko Matsakis | -5/+7 | |
| 2017-06-01 | strip param-env from infcx | Niko Matsakis | -10/+18 | |
| 2017-06-01 | rewrite layout to take a (param-env, ty) pair instead of infcx | Niko Matsakis | -4/+2 | |
| 2017-06-01 | move projection mode into parameter environment | Niko Matsakis | -6/+6 | |
| 2017-05-28 | fix RUST_LOG ICE caused by printing a default impl's DefId | Ariel Ben-Yehuda | -2/+2 | |
| 2017-05-28 | add NullOp::SizeOf and BinOp::Offset | Ariel Ben-Yehuda | -4/+7 | |
| 2017-05-22 | rename `parameter_environment` to `param_env` | Niko Matsakis | -4/+4 | |
| 2017-05-22 | rename `ParameterEnvironment` to `ParamEnv` | Niko Matsakis | -4/+4 | |
| 2017-05-22 | centralize the caching for is-copy, is-sized, and is-freeze | Niko Matsakis | -4/+4 | |
| Use the trait-environment+type as the key. Note that these are only invoked on types that live for the entire compilation (no inference artifacts). We no longer need the various special-case bits and caches that were in place before. | ||||
| 2017-05-13 | rustc: uniformly compute ParameterEnvironment's "free outlive scope". | Eduard-Mihai Burtescu | -5/+5 | |
| 2017-05-12 | box large variants in MIR | Ariel Ben-Yehuda | -12/+11 | |
| Operand: 72 -> 24 B Statement: 192 -> 96 B Terminator: 256 -> 112 B librustc translation memory usage: 1795 -> 1669 MB next step would be interning lvalues, I suppose? | ||||
| 2017-05-08 | Remove need for &format!(...) or &&"" dances in `span_label` calls | Oliver Schneider | -8/+8 | |
| 2017-05-02 | update comment about heuristics | Niko Matsakis | -1/+3 | |
| 2017-05-02 | move queries code into transform | Niko Matsakis | -6/+99 | |
| 2017-05-02 | rename from `item_mir` to `optimized_mir` | Niko Matsakis | -1/+1 | |
| 2017-05-02 | delete dead code | Niko Matsakis | -89/+0 | |
| 2017-05-02 | support inlining by asking for optimizer mir for callees | Niko Matsakis | -139/+62 | |
| I tested this with it enabled 100% of the time, and we were able to run mir-opt tests successfully. | ||||
| 2017-05-02 | simplify down to one query per pass suite | Niko Matsakis | -71/+30 | |
| 2017-05-02 | rip out everything but `MirPass`, move the logic into suites | Niko Matsakis | -166/+80 | |
| 2017-05-02 | remove `Pass` and (temporarily) drop `Inline` | Niko Matsakis | -7/+8 | |
| 2017-05-02 | use `force` to ensure const-qualif has been done, not read | Niko Matsakis | -2/+3 | |
| 2017-05-02 | convert the `inline` pass to use the new multi result | Niko Matsakis | -60/+185 | |
| This involves changing various details about that system, though the basic shape remains the same. | ||||
| 2017-05-02 | introduce idea of "stealable" MIR | Niko Matsakis | -26/+25 | |
| This is a more principled version of the `RefCell` we were using before. We now allocate a `Steal<Mir<'tcx>>` for each intermediate MIR pass; when the next pass steals the entry, any later attempts to use it will panic (there is no way to *test* if MIR is stolen, you're just supposed to *know*). | ||||
| 2017-05-02 | rename `MirPassSet` to `MirSuite` | Niko Matsakis | -19/+19 | |
| This seems like a better noun. | ||||
| 2017-05-02 | retool MIR passes completely | Niko Matsakis | -50/+169 | |
| The new setup is as follows. There is a pipeline of MIR passes that each run **per def-id** to optimize a particular function. You are intended to request MIR at whatever stage you need it. At the moment, there is only one stage you can request: - `optimized_mir(def_id)` This yields the final product. Internally, it pulls the MIR for the given def-id through a series of steps. Right now, these are still using an "interned ref-cell" but they are intended to "steal" from one another: - `mir_build` -- performs the initial construction for local MIR - `mir_pass_set` -- performs a suite of optimizations and transformations - `mir_pass` -- an individual optimization within a suite So, to construct the optimized MIR, we invoke: mir_pass_set((MIR_OPTIMIZED, def_id)) which will build up the final MIR. | ||||
| 2017-05-02 | move to only def-id passes | Niko Matsakis | -2/+2 | |
| this temporary disables `inline` | ||||
| 2017-05-02 | introduce `DefIdPass` and remove all impls of `Pass` but `Inline` | Niko Matsakis | -21/+20 | |
| 2017-05-02 | simplify the MirPass traits and passes dramatically | Niko Matsakis | -159/+134 | |
| Overall goal: reduce the amount of context a mir pass needs so that it resembles a query. - The hooks are no longer "threaded down" to the pass, but rather run automatically from the top-level (we also thread down the current pass number, so that the files are sorted better). - The hook now receives a *single* callback, rather than a callback per-MIR. - The traits are no longer lifetime parameters, which moved to the methods -- given that we required `for<'tcx>` objecs, there wasn't much point to that. - Several passes now store a `String` instead of a `&'l str` (again, no point). | ||||
| 2017-05-02 | rework `MirPass` API to be stateless and extract helper fns | Niko Matsakis | -54/+28 | |
| 2017-05-02 | introduce `mir_keys()` | Niko Matsakis | -38/+13 | |
| Each MIR key is a DefId that has MIR associated with it | ||||
| 2017-04-24 | rustc: use tcx.at(span) to set the location of a query. | Eduard-Mihai Burtescu | -3/+1 | |
| 2017-04-24 | rustc: expose the common DUMMY_SP query case as tcx methods. | Eduard-Mihai Burtescu | -1/+1 | |
| 2017-04-24 | rustc: rename some of the queries to match tcx methods. | Eduard-Mihai Burtescu | -2/+2 | |
| 2017-04-22 | avoid calling `mk_region` unnecessarily | Ariel Ben-Yehuda | -4/+4 | |
| this improves typeck & trans performance by 1%. This looked hotter on callgrind than it is on a CPU. | ||||
| 2017-04-22 | remove cleanup branches to the resume block | Ariel Ben-Yehuda | -0/+34 | |
| This improves LLVM performance by 10% lost during the shimmir transition. | ||||
| 2017-04-20 | rustc: combine type_needs_drop_given_env and may_drop into needs_drop. | Eduard-Mihai Burtescu | -2/+2 | |
| 2017-04-20 | rustc: replace interior_unsafe with a Freeze trait. | Eduard-Mihai Burtescu | -1/+1 | |
| 2017-04-12 | address review comments | Ariel Ben-Yehuda | -0/+4 | |
| 2017-04-11 | Move rvalue checking to MIR | Ariel Ben-Yehuda | -4/+44 | |
| Fixes #41139. | ||||
| 2017-04-11 | store Spans for all MIR locals | Ariel Ben-Yehuda | -12/+11 | |
| 2017-04-07 | Changes based on PR feedback | Ryan Scott | -7/+2 | |
| 2017-04-04 | Fixed ICEs with pattern matching in const fn. Fixes #38199, fixes #31577, ↵ | Ryan Scott | -4/+2 | |
| fixes #29093, and fixes #40012. | ||||
| 2017-03-29 | Merge `ExpnId` and `SyntaxContext`. | Jeffrey Seyfried | -2/+2 | |
| 2017-03-24 | Represent function pointers in mir-constants as a Value instead of Item | Oliver Schneider | -6/+4 | |
| 2017-03-22 | Rollup merge of #40678 - michaelwoerister:dmi-prep, r=nikomatsakis | Corey Farwell | -1/+27 | |
| Some preparations for directly computing the ICH of crate-metadata. This PR contains some small fixes in preparation for direct metadata hashing. It mostly just moves stuff into places where it will be needed (making the module structure slightly cleaner along the way) and it fixes some omissions in the MIR region eraser. r? @nikomatsakis | ||||
| 2017-03-22 | Address review comments. | Michael Woerister | -2/+11 | |
| 2017-03-22 | Add some missing method impls to MIR region eraser. | Michael Woerister | -1/+18 | |
| 2017-03-21 | Teach rustc --emit=mir | Jake Goulding | -0/+14 | |
| 2017-03-18 | apply pre-trans passes to Shim MIR | Ariel Ben-Yehuda | -40/+52 | |
| 2017-03-18 | move the drop expansion code to rustc_mir | Ariel Ben-Yehuda | -3/+3 | |
