diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-02-14 16:10:25 +0200 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-02-20 02:50:26 +0200 |
| commit | d773d95880b0866ce2bee4ab68ee6fa363235f84 (patch) | |
| tree | 6146b8ad19841f59ee3691bf0b3e92a26b4e1c20 | |
| parent | 6195ad8654d713678460aca29b6f986655b988f1 (diff) | |
| download | rust-d773d95880b0866ce2bee4ab68ee6fa363235f84.tar.gz rust-d773d95880b0866ce2bee4ab68ee6fa363235f84.zip | |
rustc_mir: don't run the deaggregator on arrays for now.
| -rw-r--r-- | src/librustc_mir/transform/deaggregator.rs | 6 | ||||
| -rw-r--r-- | src/test/mir-opt/deaggregator_test_multiple.rs | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/librustc_mir/transform/deaggregator.rs b/src/librustc_mir/transform/deaggregator.rs index 44c35960aba..8ffcc4025f1 100644 --- a/src/librustc_mir/transform/deaggregator.rs +++ b/src/librustc_mir/transform/deaggregator.rs @@ -41,7 +41,11 @@ impl MirPass for Deaggregator { let can_deaggregate = |statement: &Statement| { if let StatementKind::Assign(_, ref rhs) = statement.kind { - if let Rvalue::Aggregate(..) = *rhs { + if let Rvalue::Aggregate(ref kind, _) = *rhs { + // FIXME(#48193) Deaggregate arrays when it's cheaper to do so. + if let AggregateKind::Array(_) = **kind { + return false; + } return true; } } diff --git a/src/test/mir-opt/deaggregator_test_multiple.rs b/src/test/mir-opt/deaggregator_test_multiple.rs index 5127ed58853..3a9a458fd46 100644 --- a/src/test/mir-opt/deaggregator_test_multiple.rs +++ b/src/test/mir-opt/deaggregator_test_multiple.rs @@ -52,8 +52,7 @@ fn main() { // ((_4 as A).0: i32) = move _5; // discriminant(_4) = 0; // ... -// _0[0 of 1] = move _2; -// _0[1 of 2] = move _4; +// _0 = [move _2, move _4]; // ... // return; // } |
