Fit Representation and HType in one word to make HValue smaller.
Review URL: http://codereview.chromium.org/6813091 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
df453b1203
commit
34d50b3d5c
@ -274,7 +274,7 @@ class Representation {
|
||||
return kind_ == other.kind_;
|
||||
}
|
||||
|
||||
Kind kind() const { return kind_; }
|
||||
Kind kind() const { return static_cast<Kind>(kind_); }
|
||||
bool IsNone() const { return kind_ == kNone; }
|
||||
bool IsTagged() const { return kind_ == kTagged; }
|
||||
bool IsInteger32() const { return kind_ == kInteger32; }
|
||||
@ -288,7 +288,10 @@ class Representation {
|
||||
private:
|
||||
explicit Representation(Kind k) : kind_(k) { }
|
||||
|
||||
Kind kind_;
|
||||
// Make sure kind fits in int8.
|
||||
STATIC_ASSERT(kNumRepresentations <= (1 << kBitsPerByte));
|
||||
|
||||
int8_t kind_;
|
||||
};
|
||||
|
||||
|
||||
@ -395,9 +398,12 @@ class HType {
|
||||
kUninitialized = 0x1fff // 0001 1111 1111 1111
|
||||
};
|
||||
|
||||
// Make sure type fits in int16.
|
||||
STATIC_ASSERT(kUninitialized < (1 << (2 * kBitsPerByte)));
|
||||
|
||||
explicit HType(Type t) : type_(t) { }
|
||||
|
||||
Type type_;
|
||||
int16_t type_;
|
||||
};
|
||||
|
||||
|
||||
@ -611,8 +617,8 @@ class HValue: public ZoneObject {
|
||||
int id_;
|
||||
|
||||
Representation representation_;
|
||||
SmallPointerList<HValue> uses_;
|
||||
HType type_;
|
||||
SmallPointerList<HValue> uses_;
|
||||
Range* range_;
|
||||
int flags_;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user