| 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 #ifndef VM_FLOW_GRAPH_RANGE_ANALYSIS_H_ | 5 #ifndef VM_FLOW_GRAPH_RANGE_ANALYSIS_H_ |
| 6 #define VM_FLOW_GRAPH_RANGE_ANALYSIS_H_ | 6 #define VM_FLOW_GRAPH_RANGE_ANALYSIS_H_ |
| 7 | 7 |
| 8 #include "vm/flow_graph.h" | 8 #include "vm/flow_graph.h" |
| 9 #include "vm/intermediate_language.h" | 9 #include "vm/intermediate_language.h" |
| 10 | 10 |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 static void Shl(const Range* left_range, | 452 static void Shl(const Range* left_range, |
| 453 const Range* right_range, | 453 const Range* right_range, |
| 454 RangeBoundary* min, | 454 RangeBoundary* min, |
| 455 RangeBoundary* max); | 455 RangeBoundary* max); |
| 456 | 456 |
| 457 static bool And(const Range* left_range, | 457 static bool And(const Range* left_range, |
| 458 const Range* right_range, | 458 const Range* right_range, |
| 459 RangeBoundary* min, | 459 RangeBoundary* min, |
| 460 RangeBoundary* max); | 460 RangeBoundary* max); |
| 461 | 461 |
| 462 static void Xor(const Range* left_range, |
| 463 const Range* right_range, |
| 464 RangeBoundary* min, |
| 465 RangeBoundary* max); |
| 462 | 466 |
| 463 // Both the a and b ranges are >= 0. | 467 // Both the a and b ranges are >= 0. |
| 464 static bool OnlyPositiveOrZero(const Range& a, const Range& b); | 468 static bool OnlyPositiveOrZero(const Range& a, const Range& b); |
| 465 | 469 |
| 466 // Both the a and b ranges are <= 0. | 470 // Both the a and b ranges are <= 0. |
| 467 static bool OnlyNegativeOrZero(const Range& a, const Range& b); | 471 static bool OnlyNegativeOrZero(const Range& a, const Range& b); |
| 468 | 472 |
| 469 // Return the maximum absolute value included in range. | 473 // Return the maximum absolute value included in range. |
| 470 static int64_t ConstantAbsMax(const Range* range); | 474 static int64_t ConstantAbsMax(const Range* range); |
| 471 | 475 |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 650 BitVector* selected_uint32_defs_; | 654 BitVector* selected_uint32_defs_; |
| 651 | 655 |
| 652 FlowGraph* flow_graph_; | 656 FlowGraph* flow_graph_; |
| 653 Isolate* isolate_; | 657 Isolate* isolate_; |
| 654 }; | 658 }; |
| 655 | 659 |
| 656 | 660 |
| 657 } // namespace dart | 661 } // namespace dart |
| 658 | 662 |
| 659 #endif // VM_FLOW_GRAPH_RANGE_ANALYSIS_H_ | 663 #endif // VM_FLOW_GRAPH_RANGE_ANALYSIS_H_ |
| OLD | NEW |