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

Unified Diff: src/objects.h

Issue 1636013002: Replace HeapType with a non-templated FieldType class. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix tracing of generalizations Created 4 years, 11 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
« src/ic/ic.cc ('K') | « src/lookup.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index 4fe899fe5f825e9cd97e0fa5e8f050a0eb58b2b8..7dc440862ba102b4bd75282cb3b7bb1bdea5c030 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -840,6 +840,7 @@ class KeyAccumulator;
class LayoutDescriptor;
class LiteralsArray;
class LookupIterator;
+class FieldType;
class ObjectHashTable;
class ObjectVisitor;
class PropertyCell;
@@ -852,11 +853,6 @@ class TypeFeedbackVector;
class WeakCell;
class TransitionArray;
-// We cannot just say "class HeapType;" if it is created from a template... =8-?
-template<class> class TypeImpl;
-struct HeapTypeConfig;
-typedef TypeImpl<HeapTypeConfig> HeapType;
-
// A template-ized version of the IsXXX functions.
template <class C> inline bool Is(Object* obj);
@@ -1098,7 +1094,8 @@ class Object {
inline bool FilterKey(PropertyFilter filter);
- Handle<HeapType> OptimalType(Isolate* isolate, Representation representation);
+ Handle<FieldType> OptimalType(Isolate* isolate,
+ Representation representation);
inline static Handle<Object> NewStorageFor(Isolate* isolate,
Handle<Object> object,
@@ -2917,7 +2914,7 @@ class DescriptorArray: public FixedArray {
inline PropertyDetails GetDetails(int descriptor_number);
inline PropertyType GetType(int descriptor_number);
inline int GetFieldIndex(int descriptor_number);
- inline HeapType* GetFieldType(int descriptor_number);
+ inline FieldType* GetFieldType(int descriptor_number);
inline Object* GetConstant(int descriptor_number);
inline Object* GetCallbacksObject(int descriptor_number);
inline AccessorDescriptor* GetCallbacks(int descriptor_number);
@@ -5708,17 +5705,17 @@ class Map: public HeapObject {
int* old_number_of_fields);
// TODO(ishell): moveit!
static Handle<Map> GeneralizeAllFieldRepresentations(Handle<Map> map);
- MUST_USE_RESULT static Handle<HeapType> GeneralizeFieldType(
- Representation rep1, Handle<HeapType> type1, Representation rep2,
- Handle<HeapType> type2, Isolate* isolate);
+ MUST_USE_RESULT static Handle<FieldType> GeneralizeFieldType(
+ Representation rep1, Handle<FieldType> type1, Representation rep2,
+ Handle<FieldType> type2, Isolate* isolate);
static void GeneralizeFieldType(Handle<Map> map, int modify_index,
Representation new_representation,
- Handle<HeapType> new_field_type);
+ Handle<FieldType> new_field_type);
static Handle<Map> ReconfigureProperty(Handle<Map> map, int modify_index,
PropertyKind new_kind,
PropertyAttributes new_attributes,
Representation new_representation,
- Handle<HeapType> new_field_type,
+ Handle<FieldType> new_field_type,
StoreMode store_mode);
static Handle<Map> CopyGeneralizeAllRepresentations(
Handle<Map> map, int modify_index, StoreMode store_mode,
@@ -5840,11 +5837,8 @@ class Map: public HeapObject {
TransitionFlag flag);
MUST_USE_RESULT static MaybeHandle<Map> CopyWithField(
- Handle<Map> map,
- Handle<Name> name,
- Handle<HeapType> type,
- PropertyAttributes attributes,
- Representation representation,
+ Handle<Map> map, Handle<Name> name, Handle<FieldType> type,
+ PropertyAttributes attributes, Representation representation,
TransitionFlag flag);
MUST_USE_RESULT static MaybeHandle<Map> CopyWithConstant(
@@ -6178,16 +6172,14 @@ class Map: public HeapObject {
void PrintReconfiguration(FILE* file, int modify_index, PropertyKind kind,
PropertyAttributes attributes);
- void PrintGeneralization(FILE* file,
- const char* reason,
- int modify_index,
- int split,
- int descriptors,
- bool constant_to_field,
+ void PrintGeneralization(FILE* file, const char* reason, int modify_index,
+ int split, int descriptors, bool constant_to_field,
Representation old_representation,
Representation new_representation,
- HeapType* old_field_type,
- HeapType* new_field_type);
+ MaybeHandle<FieldType> old_field_type,
+ MaybeHandle<Object> old_value,
+ MaybeHandle<FieldType> new_field_type,
+ MaybeHandle<Object> new_value);
static const int kFastPropertiesSoftLimit = 12;
static const int kMaxFastProperties = 128;
« src/ic/ic.cc ('K') | « src/lookup.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698