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

Side by Side Diff: src/objects.h

Issue 581993002: Introduce TypeFeedbackVector, as FixedArray grew constrictive. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Initial patch. Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/liveedit.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assert-scope.h" 9 #include "src/assert-scope.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 // - HashTable 72 // - HashTable
73 // - Dictionary 73 // - Dictionary
74 // - StringTable 74 // - StringTable
75 // - CompilationCacheTable 75 // - CompilationCacheTable
76 // - CodeCacheHashTable 76 // - CodeCacheHashTable
77 // - MapCache 77 // - MapCache
78 // - OrderedHashTable 78 // - OrderedHashTable
79 // - OrderedHashSet 79 // - OrderedHashSet
80 // - OrderedHashMap 80 // - OrderedHashMap
81 // - Context 81 // - Context
82 // - TypeFeedbackVector
82 // - JSFunctionResultCache 83 // - JSFunctionResultCache
83 // - ScopeInfo 84 // - ScopeInfo
84 // - TransitionArray 85 // - TransitionArray
85 // - FixedDoubleArray 86 // - FixedDoubleArray
86 // - ExternalArray 87 // - ExternalArray
87 // - ExternalUint8ClampedArray 88 // - ExternalUint8ClampedArray
88 // - ExternalInt8Array 89 // - ExternalInt8Array
89 // - ExternalUint8Array 90 // - ExternalUint8Array
90 // - ExternalInt16Array 91 // - ExternalInt16Array
91 // - ExternalUint16Array 92 // - ExternalUint16Array
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 class AllocationSite; 844 class AllocationSite;
844 class AllocationSiteCreationContext; 845 class AllocationSiteCreationContext;
845 class AllocationSiteUsageContext; 846 class AllocationSiteUsageContext;
846 class DictionaryElementsAccessor; 847 class DictionaryElementsAccessor;
847 class ElementsAccessor; 848 class ElementsAccessor;
848 class FixedArrayBase; 849 class FixedArrayBase;
849 class GlobalObject; 850 class GlobalObject;
850 class ObjectVisitor; 851 class ObjectVisitor;
851 class LookupIterator; 852 class LookupIterator;
852 class StringStream; 853 class StringStream;
854 class TypeFeedbackVector;
853 // We cannot just say "class HeapType;" if it is created from a template... =8-? 855 // We cannot just say "class HeapType;" if it is created from a template... =8-?
854 template<class> class TypeImpl; 856 template<class> class TypeImpl;
855 struct HeapTypeConfig; 857 struct HeapTypeConfig;
856 typedef TypeImpl<HeapTypeConfig> HeapType; 858 typedef TypeImpl<HeapTypeConfig> HeapType;
857 859
858 860
859 // A template-ized version of the IsXXX functions. 861 // A template-ized version of the IsXXX functions.
860 template <class C> inline bool Is(Object* obj); 862 template <class C> inline bool Is(Object* obj);
861 863
862 #ifdef VERIFY_HEAP 864 #ifdef VERIFY_HEAP
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 V(ByteArray) \ 919 V(ByteArray) \
918 V(FreeSpace) \ 920 V(FreeSpace) \
919 V(JSReceiver) \ 921 V(JSReceiver) \
920 V(JSObject) \ 922 V(JSObject) \
921 V(JSContextExtensionObject) \ 923 V(JSContextExtensionObject) \
922 V(JSGeneratorObject) \ 924 V(JSGeneratorObject) \
923 V(JSModule) \ 925 V(JSModule) \
924 V(Map) \ 926 V(Map) \
925 V(DescriptorArray) \ 927 V(DescriptorArray) \
926 V(TransitionArray) \ 928 V(TransitionArray) \
929 V(TypeFeedbackVector) \
927 V(DeoptimizationInputData) \ 930 V(DeoptimizationInputData) \
928 V(DeoptimizationOutputData) \ 931 V(DeoptimizationOutputData) \
929 V(DependentCode) \ 932 V(DependentCode) \
930 V(FixedArray) \ 933 V(FixedArray) \
931 V(FixedDoubleArray) \ 934 V(FixedDoubleArray) \
932 V(ConstantPoolArray) \ 935 V(ConstantPoolArray) \
933 V(Context) \ 936 V(Context) \
934 V(NativeContext) \ 937 V(NativeContext) \
935 V(ScopeInfo) \ 938 V(ScopeInfo) \
936 V(JSFunction) \ 939 V(JSFunction) \
(...skipping 6031 matching lines...) Expand 10 before | Expand all | Expand 10 after
6968 // Set the formal parameter count so the function code will be 6971 // Set the formal parameter count so the function code will be
6969 // called without using argument adaptor frames. 6972 // called without using argument adaptor frames.
6970 inline void DontAdaptArguments(); 6973 inline void DontAdaptArguments();
6971 6974
6972 // [expected_nof_properties]: Expected number of properties for the function. 6975 // [expected_nof_properties]: Expected number of properties for the function.
6973 inline int expected_nof_properties() const; 6976 inline int expected_nof_properties() const;
6974 inline void set_expected_nof_properties(int value); 6977 inline void set_expected_nof_properties(int value);
6975 6978
6976 // [feedback_vector] - accumulates ast node feedback from full-codegen and 6979 // [feedback_vector] - accumulates ast node feedback from full-codegen and
6977 // (increasingly) from crankshafted code where sufficient feedback isn't 6980 // (increasingly) from crankshafted code where sufficient feedback isn't
6978 // available. Currently the field is duplicated in 6981 // available.
6979 // TypeFeedbackInfo::feedback_vector, but the allocation is done here. 6982 DECL_ACCESSORS(feedback_vector, TypeFeedbackVector)
6980 DECL_ACCESSORS(feedback_vector, FixedArray)
6981 6983
6982 // [instance class name]: class name for instances. 6984 // [instance class name]: class name for instances.
6983 DECL_ACCESSORS(instance_class_name, Object) 6985 DECL_ACCESSORS(instance_class_name, Object)
6984 6986
6985 // [function data]: This field holds some additional data for function. 6987 // [function data]: This field holds some additional data for function.
6986 // Currently it either has FunctionTemplateInfo to make benefit the API 6988 // Currently it either has FunctionTemplateInfo to make benefit the API
6987 // or Smi identifying a builtin function. 6989 // or Smi identifying a builtin function.
6988 // In the long run we don't want all functions to have this field but 6990 // In the long run we don't want all functions to have this field but
6989 // we can fix that when we have a better model for storing hidden data 6991 // we can fix that when we have a better model for storing hidden data
6990 // on objects. 6992 // on objects.
(...skipping 4145 matching lines...) Expand 10 before | Expand all | Expand 10 after
11136 } else { 11138 } else {
11137 value &= ~(1 << bit_position); 11139 value &= ~(1 << bit_position);
11138 } 11140 }
11139 return value; 11141 return value;
11140 } 11142 }
11141 }; 11143 };
11142 11144
11143 } } // namespace v8::internal 11145 } } // namespace v8::internal
11144 11146
11145 #endif // V8_OBJECTS_H_ 11147 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/liveedit.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698