| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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/flow_graph_range_analysis.h" | 5 #include "vm/flow_graph_range_analysis.h" |
| 6 | 6 |
| 7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
| 8 #include "vm/il_printer.h" | 8 #include "vm/il_printer.h" |
| 9 | 9 |
| 10 namespace dart { | 10 namespace dart { |
| (...skipping 2578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2589 } | 2589 } |
| 2590 } | 2590 } |
| 2591 | 2591 |
| 2592 | 2592 |
| 2593 static bool DependsOnSymbol(const RangeBoundary& a, Definition* symbol) { | 2593 static bool DependsOnSymbol(const RangeBoundary& a, Definition* symbol) { |
| 2594 return a.IsSymbol() && (UnwrapConstraint(a.symbol()) == symbol); | 2594 return a.IsSymbol() && (UnwrapConstraint(a.symbol()) == symbol); |
| 2595 } | 2595 } |
| 2596 | 2596 |
| 2597 | 2597 |
| 2598 // Given the range and definition update the range so that | 2598 // Given the range and definition update the range so that |
| 2599 // it covers both original range and defintions range. | 2599 // it covers both original range and definitions range. |
| 2600 // | 2600 // |
| 2601 // The following should also hold: | 2601 // The following should also hold: |
| 2602 // | 2602 // |
| 2603 // [_|_, _|_] U a = a U [_|_, _|_] = a | 2603 // [_|_, _|_] U a = a U [_|_, _|_] = a |
| 2604 // | 2604 // |
| 2605 static void Join(Range* range, | 2605 static void Join(Range* range, |
| 2606 Definition* defn, | 2606 Definition* defn, |
| 2607 const Range* defn_range, | 2607 const Range* defn_range, |
| 2608 RangeBoundary::RangeSize size) { | 2608 RangeBoundary::RangeSize size) { |
| 2609 if (Range::IsUnknown(defn_range)) { | 2609 if (Range::IsUnknown(defn_range)) { |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3046 } | 3046 } |
| 3047 } while (CanonicalizeMaxBoundary(&max) || | 3047 } while (CanonicalizeMaxBoundary(&max) || |
| 3048 CanonicalizeMinBoundary(&canonical_length)); | 3048 CanonicalizeMinBoundary(&canonical_length)); |
| 3049 | 3049 |
| 3050 // Failed to prove that maximum is bounded with array length. | 3050 // Failed to prove that maximum is bounded with array length. |
| 3051 return false; | 3051 return false; |
| 3052 } | 3052 } |
| 3053 | 3053 |
| 3054 | 3054 |
| 3055 } // namespace dart | 3055 } // namespace dart |
| OLD | NEW |