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 |