Chromium Code Reviews| 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 #if !defined(DART_PRECOMPILED_RUNTIME) | 5 #if !defined(DART_PRECOMPILED_RUNTIME) |
| 6 | 6 |
| 7 #include "vm/redundancy_elimination.h" | 7 #include "vm/redundancy_elimination.h" |
| 8 | 8 |
| 9 #include "vm/bit_vector.h" | 9 #include "vm/bit_vector.h" |
| 10 #include "vm/flow_graph.h" | 10 #include "vm/flow_graph.h" |
| 11 #include "vm/hash_map.h" | 11 #include "vm/hash_map.h" |
| 12 #include "vm/il_printer.h" | 12 #include "vm/il_printer.h" |
| 13 #include "vm/intermediate_language.h" | 13 #include "vm/intermediate_language.h" |
| 14 #include "vm/stack_frame.h" | 14 #include "vm/stack_frame.h" |
| 15 | 15 |
| 16 namespace dart { | 16 namespace dart { |
| 17 | 17 |
| 18 DEFINE_FLAG(bool, dead_store_elimination, true, "Eliminate dead stores"); | 18 DEFINE_FLAG(bool, dead_store_elimination, true, "Eliminate dead stores"); |
| 19 DEFINE_FLAG(bool, load_cse, true, "Use redundant load elimination."); | 19 DEFINE_FLAG(bool, load_cse, true, "Use redundant load elimination."); |
| 20 DEFINE_FLAG(bool, | 20 DEFINE_FLAG(bool, |
| 21 trace_load_optimization, | 21 trace_load_optimization, |
| 22 false, | 22 false, |
| 23 "Print live sets for load optimization pass."); | 23 "Print live sets for load optimization pass."); |
| 24 | 24 |
| 25 // Quick access to the current zone. | 25 // Quick access to the current zone. |
| 26 #define Z (zone()) | 26 #define Z (zone()) |
| 27 | 27 |
| 28 class CSEInstructionMap : public ValueObject { | 28 class CSEInstructionMap : public ValueObject { |
| 29 public: | 29 public: |
| 30 // Right now CSE and LICM track a single effect: possible externalization of | 30 // Right now CSE and LICM track a single effect which is no longer used. |
| 31 // strings. | 31 // TODO(alexmarkov): cleanup. |
|
Vyacheslav Egorov (Google)
2017/08/18 05:50:46
I suggest using
TODO(dartbug.com/30474)
instea
alexmarkov
2017/08/21 21:17:07
Done (in the next CL).
| |
| 32 // Other effects like modifications of fields are tracked in a separate load | 32 // Other effects like modifications of fields are tracked in a separate load |
| 33 // forwarding pass via Alias structure. | 33 // forwarding pass via Alias structure. |
| 34 COMPILE_ASSERT(EffectSet::kLastEffect == 1); | 34 COMPILE_ASSERT(EffectSet::kLastEffect == 1); |
| 35 | 35 |
| 36 CSEInstructionMap() : independent_(), dependent_() {} | 36 CSEInstructionMap() : independent_(), dependent_() {} |
| 37 explicit CSEInstructionMap(const CSEInstructionMap& other) | 37 explicit CSEInstructionMap(const CSEInstructionMap& other) |
| 38 : ValueObject(), | 38 : ValueObject(), |
| 39 independent_(other.independent_), | 39 independent_(other.independent_), |
| 40 dependent_(other.dependent_) {} | 40 dependent_(other.dependent_) {} |
| 41 | 41 |
| (...skipping 3289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3331 } else { | 3331 } else { |
| 3332 join->phis_->TruncateTo(to_index); | 3332 join->phis_->TruncateTo(to_index); |
| 3333 } | 3333 } |
| 3334 } | 3334 } |
| 3335 } | 3335 } |
| 3336 } | 3336 } |
| 3337 | 3337 |
| 3338 } // namespace dart | 3338 } // namespace dart |
| 3339 | 3339 |
| 3340 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 3340 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
| OLD | NEW |