Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(702)

Unified Diff: runtime/vm/flow_graph_range_analysis.cc

Issue 683433003: Integrate the Irregexp Regular Expression Engine. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: byte-order assert & context-var Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/flow_graph_range_analysis.cc
diff --git a/runtime/vm/flow_graph_range_analysis.cc b/runtime/vm/flow_graph_range_analysis.cc
index 18487cc1281ab6d58b98657ca775564cef059c68..cf7c104fbc10257a022ca583b2b14cf63a8af15e 100644
--- a/runtime/vm/flow_graph_range_analysis.cc
+++ b/runtime/vm/flow_graph_range_analysis.cc
@@ -2825,6 +2825,22 @@ void LoadIndexedInstr::InferRange(RangeAnalysis* analysis, Range* range) {
}
+void LoadCodeUnitsInstr::InferRange(RangeAnalysis* analysis, Range* range) {
+ ASSERT(class_id() == kOneByteStringCid ||
+ class_id() == kTwoByteStringCid);
+ switch (class_id()) {
+ case kOneByteStringCid:
+ case kTwoByteStringCid:
+ *range = Range(RangeBoundary::FromConstant(0),
+ RangeBoundary::FromConstant(kMaxUint32));
Ivan Posva 2014/11/10 08:16:23 Would we ever be loading 8 bytes at a time on 64-b
zerny-google 2014/11/10 09:10:42 No. The current LoadCodeUnitsInstr will pack at mo
+ break;
+ default:
+ UNREACHABLE();
+ break;
+ }
+}
+
+
void IfThenElseInstr::InferRange(RangeAnalysis* analysis, Range* range) {
const intptr_t min = Utils::Minimum(if_true_, if_false_);
const intptr_t max = Utils::Maximum(if_true_, if_false_);

Powered by Google App Engine
This is Rietveld 408576698