| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/redundancy_elimination.h" | 5 #include "vm/redundancy_elimination.h" |
| 6 | 6 |
| 7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
| 8 #include "vm/flow_graph.h" | 8 #include "vm/flow_graph.h" |
| 9 #include "vm/hash_map.h" | 9 #include "vm/hash_map.h" |
| 10 #include "vm/il_printer.h" | 10 #include "vm/il_printer.h" |
| (...skipping 1335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1346 BlockEntryInstr* pre_header, | 1346 BlockEntryInstr* pre_header, |
| 1347 Instruction* current) { | 1347 Instruction* current) { |
| 1348 if (current->IsCheckClass()) { | 1348 if (current->IsCheckClass()) { |
| 1349 current->AsCheckClass()->set_licm_hoisted(true); | 1349 current->AsCheckClass()->set_licm_hoisted(true); |
| 1350 } else if (current->IsCheckSmi()) { | 1350 } else if (current->IsCheckSmi()) { |
| 1351 current->AsCheckSmi()->set_licm_hoisted(true); | 1351 current->AsCheckSmi()->set_licm_hoisted(true); |
| 1352 } else if (current->IsCheckEitherNonSmi()) { | 1352 } else if (current->IsCheckEitherNonSmi()) { |
| 1353 current->AsCheckEitherNonSmi()->set_licm_hoisted(true); | 1353 current->AsCheckEitherNonSmi()->set_licm_hoisted(true); |
| 1354 } else if (current->IsCheckArrayBound()) { | 1354 } else if (current->IsCheckArrayBound()) { |
| 1355 current->AsCheckArrayBound()->set_licm_hoisted(true); | 1355 current->AsCheckArrayBound()->set_licm_hoisted(true); |
| 1356 } else if (current->IsTestCids()) { |
| 1357 current->AsTestCids()->set_licm_hoisted(true); |
| 1356 } | 1358 } |
| 1357 if (FLAG_trace_optimization) { | 1359 if (FLAG_trace_optimization) { |
| 1358 THR_Print("Hoisting instruction %s:%" Pd " from B%" Pd " to B%" Pd "\n", | 1360 THR_Print("Hoisting instruction %s:%" Pd " from B%" Pd " to B%" Pd "\n", |
| 1359 current->DebugName(), | 1361 current->DebugName(), |
| 1360 current->GetDeoptId(), | 1362 current->GetDeoptId(), |
| 1361 current->GetBlock()->block_id(), | 1363 current->GetBlock()->block_id(), |
| 1362 pre_header->block_id()); | 1364 pre_header->block_id()); |
| 1363 } | 1365 } |
| 1364 // Move the instruction out of the loop. | 1366 // Move the instruction out of the loop. |
| 1365 current->RemoveEnvironment(); | 1367 current->RemoveEnvironment(); |
| (...skipping 2095 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3461 join->phis_ = NULL; | 3463 join->phis_ = NULL; |
| 3462 } else { | 3464 } else { |
| 3463 join->phis_->TruncateTo(to_index); | 3465 join->phis_->TruncateTo(to_index); |
| 3464 } | 3466 } |
| 3465 } | 3467 } |
| 3466 } | 3468 } |
| 3467 } | 3469 } |
| 3468 | 3470 |
| 3469 | 3471 |
| 3470 } // namespace dart | 3472 } // namespace dart |
| OLD | NEW |