Index: runtime/vm/object.h |
diff --git a/runtime/vm/object.h b/runtime/vm/object.h |
index 4dcade6c39e0b0a554092e1c31455df1c2041889..798ae2bf50f4bc9a7cfb67ff6b09d7fd84624d14 100644 |
--- a/runtime/vm/object.h |
+++ b/runtime/vm/object.h |
@@ -1861,7 +1861,6 @@ class ICData : public Object { |
V(CheckClass) \ |
V(CheckArrayBound) \ |
V(AtCall) \ |
- V(Uint32Load) \ |
V(GuardField) \ |
V(TestCids) \ |
V(NumReasons) \ |
@@ -2055,78 +2054,6 @@ class ICData : public Object { |
void GetUsedCidsForTwoArgs(GrowableArray<intptr_t>* first, |
GrowableArray<intptr_t>* second) const; |
- // Range feedback tracking functionality. |
- |
- // For arithmetic operations we store range information for inputs and the |
- // result. The goal is to discover: |
- // |
- // - on 32-bit platforms: |
- // - when Mint operation is actually a int32/uint32 operation; |
- // - when Smi operation produces non-smi results; |
- // |
- // - on 64-bit platforms: |
- // - when Smi operation is actually int32/uint32 operation; |
- // - when Mint operation produces non-smi results; |
- // |
- enum RangeFeedback { |
- kSmiRange, |
- kInt32Range, |
- kUint32Range, |
- kInt64Range |
- }; |
- |
- // We use 4 bits per operand/result feedback. Our lattice allows us to |
- // express the following states: |
- // |
- // - usmi 0000 [used only on 32bit platforms] |
- // - smi 0001 |
- // - uint31 0010 |
- // - int32 0011 |
- // - uint32 0100 |
- // - int33 x1x1 |
- // - int64 1xxx |
- // |
- // DecodeRangeFeedbackAt() helper maps these states into the RangeFeedback |
- // enumeration. |
- enum RangeFeedbackLatticeBits { |
- kSignedRangeBit = 1 << 0, |
- kInt32RangeBit = 1 << 1, |
- kUint32RangeBit = 1 << 2, |
- kInt64RangeBit = 1 << 3, |
- kBitsPerRangeFeedback = 4, |
- kRangeFeedbackMask = (1 << kBitsPerRangeFeedback) - 1, |
- kRangeFeedbackSlots = 3 |
- }; |
- |
- static bool IsValidRangeFeedbackIndex(intptr_t index) { |
- return (0 <= index) && (index < kRangeFeedbackSlots); |
- } |
- |
- static intptr_t RangeFeedbackShift(intptr_t index) { |
- return (index * kBitsPerRangeFeedback) + kRangeFeedbackPos; |
- } |
- |
- static const char* RangeFeedbackToString(RangeFeedback feedback) { |
- switch (feedback) { |
- case kSmiRange: |
- return "smi"; |
- case kInt32Range: |
- return "int32"; |
- case kUint32Range: |
- return "uint32"; |
- case kInt64Range: |
- return "int64"; |
- default: |
- UNREACHABLE(); |
- return "?"; |
- } |
- } |
- |
- // It is only meaningful to interpret range feedback stored in the ICData |
- // when all checks are Mint or Smi. |
- bool HasRangeFeedback() const; |
- RangeFeedback DecodeRangeFeedbackAt(intptr_t idx) const; |
- |
void PrintToJSONArray(const JSONArray& jsarray, |
TokenPosition token_pos, |
bool is_static_call) const; |
@@ -2169,9 +2096,7 @@ class ICData : public Object { |
kNumArgsTestedSize = 2, |
kDeoptReasonPos = kNumArgsTestedPos + kNumArgsTestedSize, |
kDeoptReasonSize = kLastRecordedDeoptReason + 1, |
- kRangeFeedbackPos = kDeoptReasonPos + kDeoptReasonSize, |
- kRangeFeedbackSize = kBitsPerRangeFeedback * kRangeFeedbackSlots, |
- kStaticCallPos = kRangeFeedbackPos + kRangeFeedbackSize, |
+ kStaticCallPos = kDeoptReasonPos + kDeoptReasonSize, |
kStaticCallSize = 1, |
}; |
@@ -2183,11 +2108,6 @@ class ICData : public Object { |
uint32_t, |
ICData::kDeoptReasonPos, |
ICData::kDeoptReasonSize> {}; |
- class RangeFeedbackBits : public BitField<uint32_t, |
- uint32_t, |
- ICData::kRangeFeedbackPos, |
- ICData::kRangeFeedbackSize> {}; |
- |
class StaticCallBit : public BitField<uint32_t, |
bool, |
ICData::kStaticCallPos, |