| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2017-03-03 | make operands live to the end of their containing expression | Ariel Ben-Yehuda | -3/+139 | |
| In MIR construction, operands need to live exactly until they are used, which is during the (sub)expression that made the call to `as_operand`. Before this PR, operands lived until the end of the temporary scope, which was sometimes unnecessarily longer and sometimes too short. Fixes #38669. | ||||
| 2017-03-02 | schedule drops on bindings only after initializing them | Ariel Ben-Yehuda | -1/+1 | |
| This reduces the number of dynamic drops in libstd from 1141 to 899. However, without this change, the next patch would have created much more dynamic drops. A basic merge unswitching hack reduced the number of dynamic drops to 644, with no effect on stack usage. I should be writing a more dedicated drop unswitching pass. No performance measurements. | ||||
| 2017-02-25 | rustc_const_eval: always demand typeck_tables for evaluating constants. | Eduard-Mihai Burtescu | -1/+1 | |
| 2017-02-10 | Rebase fixups | Simonas Kazlauskas | -1/+1 | |
| 2016-12-14 | Auto merge of #38332 - bluss:copy-prop-arguments, r=eddyb | bors | -0/+34 | |
| Allow copy-propagation of function arguments Allow propagating function argument locals in copy propagation. | ||||
| 2016-12-11 | mir: Allow copy-propagation of function arguments | Ulrik Sverdrup | -0/+34 | |
| 2016-12-09 | mir: Reinstate while loop in deaggregator pass | Ulrik Sverdrup | -0/+105 | |
| A previous commit must have removed the `while let` loop here by mistake; for each basic block, it should find and deaggregate multiple statements in their index order, and the `curr` index tracks the progress through the block. This fixes both the case of deaggregating statements in separate basic blocks (preserving `curr` could prevent that) as well as multiple times in the same block (missing loop prevented that). | ||||
| 2016-10-04 | update tests | Ariel Ben-Yehuda | -8/+4 | |
| 2016-09-29 | Remove MIR dump comments from mir-opt tests | Jonas Schievink | -41/+41 | |
| They're ignored by the test runner, so let's not suggest that they matter | ||||
| 2016-09-29 | Change the `local` prefix to `_` | Jonas Schievink | -32/+32 | |
| There's no need for a long prefix, since there's nothing to distinguish anymore. | ||||
| 2016-09-26 | Fix off-by-one when emitting StorageDead for vars | Jonas Schievink | -2/+1 | |
| 2016-09-26 | [WIP] Move MIR towards a single kind of local | Jonas Schievink | -35/+36 | |
| 2016-09-24 | librustc_mir: Propagate constants during copy propagation. | Patrick Walton | -8/+8 | |
| This optimization kicks in a lot when bootstrapping the compiler. | ||||
| 2016-09-19 | librustc: Implement def-use chains and trivial copy propagation on MIR. | Patrick Walton | -19/+19 | |
| This only supports trivial cases in which there is exactly one def and one use. | ||||
| 2016-08-17 | rustc: remove ParamSpace from Substs. | Eduard Burtescu | -1/+3 | |
| 2016-08-14 | [MIR] Add Storage{Live,Dead} statements to emit llvm.lifetime.{start,end}. | Eduard Burtescu | -0/+45 | |
| 2016-08-11 | add SetDiscriminant StatementKind to enable deaggregation of enums | Scott A Carr | -0/+45 | |
| 2016-08-02 | fix field type, add test | Scott A Carr | -0/+41 | |
| 2016-07-20 | add mir optimization tests, dump-mir-dir option | Scott A Carr | -0/+89 | |
