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

Unified Diff: runtime/vm/object.h

Issue 2132933003: VM: Remove collection of unused range feedback. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: remove comment Created 4 years, 5 months 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
« no previous file with comments | « runtime/vm/il_printer.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « runtime/vm/il_printer.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698