| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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/intermediate_language.h" | 5 #include "vm/intermediate_language.h" |
| 6 | 6 |
| 7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
| 8 #include "vm/dart_entry.h" | 8 #include "vm/dart_entry.h" |
| 9 #include "vm/flow_graph_allocator.h" | 9 #include "vm/flow_graph_allocator.h" |
| 10 #include "vm/flow_graph_builder.h" | 10 #include "vm/flow_graph_builder.h" |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 intptr_t PhiInstr::GetPropagatedCid() { | 642 intptr_t PhiInstr::GetPropagatedCid() { |
| 643 return propagated_cid(); | 643 return propagated_cid(); |
| 644 } | 644 } |
| 645 | 645 |
| 646 | 646 |
| 647 intptr_t ParameterInstr::GetPropagatedCid() { | 647 intptr_t ParameterInstr::GetPropagatedCid() { |
| 648 return propagated_cid(); | 648 return propagated_cid(); |
| 649 } | 649 } |
| 650 | 650 |
| 651 | 651 |
| 652 intptr_t AssertAssignableInstr::GetPropagatedCid() { |
| 653 return propagated_cid(); |
| 654 } |
| 655 |
| 656 |
| 652 // ==== Postorder graph traversal. | 657 // ==== Postorder graph traversal. |
| 653 static bool IsMarked(BlockEntryInstr* block, | 658 static bool IsMarked(BlockEntryInstr* block, |
| 654 GrowableArray<BlockEntryInstr*>* preorder) { | 659 GrowableArray<BlockEntryInstr*>* preorder) { |
| 655 // Detect that a block has been visited as part of the current | 660 // Detect that a block has been visited as part of the current |
| 656 // DiscoverBlocks (we can call DiscoverBlocks multiple times). The block | 661 // DiscoverBlocks (we can call DiscoverBlocks multiple times). The block |
| 657 // will be 'marked' by (1) having a preorder number in the range of the | 662 // will be 'marked' by (1) having a preorder number in the range of the |
| 658 // preorder array and (2) being in the preorder array at that index. | 663 // preorder array and (2) being in the preorder array at that index. |
| 659 intptr_t i = block->preorder_number(); | 664 intptr_t i = block->preorder_number(); |
| 660 return (i >= 0) && (i < preorder->length()) && ((*preorder)[i] == block); | 665 return (i >= 0) && (i < preorder->length()) && ((*preorder)[i] == block); |
| 661 } | 666 } |
| (...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2215 new_max = new_max.Clamp(); | 2220 new_max = new_max.Clamp(); |
| 2216 } | 2221 } |
| 2217 | 2222 |
| 2218 return Range::Update(&range_, new_min, new_max); | 2223 return Range::Update(&range_, new_min, new_max); |
| 2219 } | 2224 } |
| 2220 | 2225 |
| 2221 | 2226 |
| 2222 #undef __ | 2227 #undef __ |
| 2223 | 2228 |
| 2224 } // namespace dart | 2229 } // namespace dart |
| OLD | NEW |