about summary refs log tree commit diff
path: root/src/test/mir-opt
AgeCommit message (Collapse)AuthorLines
2017-03-03make operands live to the end of their containing expressionAriel 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-02schedule drops on bindings only after initializing themAriel 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-25rustc_const_eval: always demand typeck_tables for evaluating constants.Eduard-Mihai Burtescu-1/+1
2017-02-10Rebase fixupsSimonas Kazlauskas-1/+1
2016-12-14Auto merge of #38332 - bluss:copy-prop-arguments, r=eddybbors-0/+34
Allow copy-propagation of function arguments Allow propagating function argument locals in copy propagation.
2016-12-11mir: Allow copy-propagation of function argumentsUlrik Sverdrup-0/+34
2016-12-09mir: Reinstate while loop in deaggregator passUlrik 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-04update testsAriel Ben-Yehuda-8/+4
2016-09-29Remove MIR dump comments from mir-opt testsJonas Schievink-41/+41
They're ignored by the test runner, so let's not suggest that they matter
2016-09-29Change 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-26Fix off-by-one when emitting StorageDead for varsJonas Schievink-2/+1
2016-09-26[WIP] Move MIR towards a single kind of localJonas Schievink-35/+36
2016-09-24librustc_mir: Propagate constants during copy propagation.Patrick Walton-8/+8
This optimization kicks in a lot when bootstrapping the compiler.
2016-09-19librustc: 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-17rustc: 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-11add SetDiscriminant StatementKind to enable deaggregation of enumsScott A Carr-0/+45
2016-08-02fix field type, add testScott A Carr-0/+41
2016-07-20add mir optimization tests, dump-mir-dir optionScott A Carr-0/+89