Revision: 10479
Author: [email protected]
Date: Mon Jan 23 10:11:36 2012
Log: Add range information to external array loads.
Review URL: http://codereview.chromium.org/9226014
http://code.google.com/p/v8/source/detail?r=10479
Modified:
/branches/bleeding_edge/src/hydrogen-instructions.cc
/branches/bleeding_edge/src/hydrogen-instructions.h
=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.cc Mon Jan 23
04:01:47 2012
+++ /branches/bleeding_edge/src/hydrogen-instructions.cc Mon Jan 23
10:11:36 2012
@@ -1339,6 +1339,23 @@
}
+Range* HLoadKeyedSpecializedArrayElement::InferRange() {
+ switch (elements_kind()) {
+ case EXTERNAL_PIXEL_ELEMENTS:
+ return new Range(0, 255);
+ case EXTERNAL_BYTE_ELEMENTS:
+ return new Range(-128, 127);
+ case EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
+ return new Range(0, 255);
+ case EXTERNAL_SHORT_ELEMENTS:
+ return new Range(-32768, 32767);
+ case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
+ return new Range(0, 65535);
+ default:
+ return HValue::InferRange();
+ }
+}
+
void HCompareGeneric::PrintDataTo(StringStream* stream) {
stream->Add(Token::Name(token()));
=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.h Fri Jan 20 07:55:06
2012
+++ /branches/bleeding_edge/src/hydrogen-instructions.h Mon Jan 23 10:11:36
2012
@@ -3843,6 +3843,8 @@
HValue* external_pointer() { return OperandAt(0); }
HValue* key() { return OperandAt(1); }
ElementsKind elements_kind() const { return elements_kind_; }
+
+ virtual Range* InferRange();
DECLARE_CONCRETE_INSTRUCTION(LoadKeyedSpecializedArrayElement)
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev