| 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 |