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

Side by Side Diff: src/objects-inl.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/objects.h ('k') | src/type-feedback-vector.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 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 13 matching lines...) Expand all
24 #include "src/heap/incremental-marking.h" 24 #include "src/heap/incremental-marking.h"
25 #include "src/heap/objects-visiting.h" 25 #include "src/heap/objects-visiting.h"
26 #include "src/heap/spaces.h" 26 #include "src/heap/spaces.h"
27 #include "src/heap/store-buffer.h" 27 #include "src/heap/store-buffer.h"
28 #include "src/isolate.h" 28 #include "src/isolate.h"
29 #include "src/lookup.h" 29 #include "src/lookup.h"
30 #include "src/objects.h" 30 #include "src/objects.h"
31 #include "src/property.h" 31 #include "src/property.h"
32 #include "src/prototype.h" 32 #include "src/prototype.h"
33 #include "src/transitions-inl.h" 33 #include "src/transitions-inl.h"
34 #include "src/type-feedback-vector.h"
34 #include "src/v8memory.h" 35 #include "src/v8memory.h"
35 36
36 namespace v8 { 37 namespace v8 {
37 namespace internal { 38 namespace internal {
38 39
39 PropertyDetails::PropertyDetails(Smi* smi) { 40 PropertyDetails::PropertyDetails(Smi* smi) {
40 value_ = smi->value(); 41 value_ = smi->value();
41 } 42 }
42 43
43 44
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 bool Object::IsDescriptorArray() const { 702 bool Object::IsDescriptorArray() const {
702 return IsFixedArray(); 703 return IsFixedArray();
703 } 704 }
704 705
705 706
706 bool Object::IsTransitionArray() const { 707 bool Object::IsTransitionArray() const {
707 return IsFixedArray(); 708 return IsFixedArray();
708 } 709 }
709 710
710 711
712 bool Object::IsTypeFeedbackVector() const { return IsFixedArray(); }
713
714
711 bool Object::IsDeoptimizationInputData() const { 715 bool Object::IsDeoptimizationInputData() const {
712 // Must be a fixed array. 716 // Must be a fixed array.
713 if (!IsFixedArray()) return false; 717 if (!IsFixedArray()) return false;
714 718
715 // There's no sure way to detect the difference between a fixed array and 719 // There's no sure way to detect the difference between a fixed array and
716 // a deoptimization data array. Since this is used for asserts we can 720 // a deoptimization data array. Since this is used for asserts we can
717 // check that the length is zero or else the fixed size plus a multiple of 721 // check that the length is zero or else the fixed size plus a multiple of
718 // the entry size. 722 // the entry size.
719 int length = FixedArray::cast(this)->length(); 723 int length = FixedArray::cast(this)->length();
720 if (length == 0) return true; 724 if (length == 0) return true;
(...skipping 4672 matching lines...) Expand 10 before | Expand all | Expand 10 after
5393 5397
5394 ACCESSORS_TO_SMI(BreakPointInfo, code_position, kCodePositionIndex) 5398 ACCESSORS_TO_SMI(BreakPointInfo, code_position, kCodePositionIndex)
5395 ACCESSORS_TO_SMI(BreakPointInfo, source_position, kSourcePositionIndex) 5399 ACCESSORS_TO_SMI(BreakPointInfo, source_position, kSourcePositionIndex)
5396 ACCESSORS_TO_SMI(BreakPointInfo, statement_position, kStatementPositionIndex) 5400 ACCESSORS_TO_SMI(BreakPointInfo, statement_position, kStatementPositionIndex)
5397 ACCESSORS(BreakPointInfo, break_point_objects, Object, kBreakPointObjectsIndex) 5401 ACCESSORS(BreakPointInfo, break_point_objects, Object, kBreakPointObjectsIndex)
5398 5402
5399 ACCESSORS(SharedFunctionInfo, name, Object, kNameOffset) 5403 ACCESSORS(SharedFunctionInfo, name, Object, kNameOffset)
5400 ACCESSORS(SharedFunctionInfo, optimized_code_map, Object, 5404 ACCESSORS(SharedFunctionInfo, optimized_code_map, Object,
5401 kOptimizedCodeMapOffset) 5405 kOptimizedCodeMapOffset)
5402 ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset) 5406 ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset)
5403 ACCESSORS(SharedFunctionInfo, feedback_vector, FixedArray, 5407 ACCESSORS(SharedFunctionInfo, feedback_vector, TypeFeedbackVector,
5404 kFeedbackVectorOffset) 5408 kFeedbackVectorOffset)
5405 ACCESSORS(SharedFunctionInfo, instance_class_name, Object, 5409 ACCESSORS(SharedFunctionInfo, instance_class_name, Object,
5406 kInstanceClassNameOffset) 5410 kInstanceClassNameOffset)
5407 ACCESSORS(SharedFunctionInfo, function_data, Object, kFunctionDataOffset) 5411 ACCESSORS(SharedFunctionInfo, function_data, Object, kFunctionDataOffset)
5408 ACCESSORS(SharedFunctionInfo, script, Object, kScriptOffset) 5412 ACCESSORS(SharedFunctionInfo, script, Object, kScriptOffset)
5409 ACCESSORS(SharedFunctionInfo, debug_info, Object, kDebugInfoOffset) 5413 ACCESSORS(SharedFunctionInfo, debug_info, Object, kDebugInfoOffset)
5410 ACCESSORS(SharedFunctionInfo, inferred_name, String, kInferredNameOffset) 5414 ACCESSORS(SharedFunctionInfo, inferred_name, String, kInferredNameOffset)
5411 5415
5412 5416
5413 SMI_ACCESSORS(FunctionTemplateInfo, length, kLengthOffset) 5417 SMI_ACCESSORS(FunctionTemplateInfo, length, kLengthOffset)
(...skipping 1847 matching lines...) Expand 10 before | Expand all | Expand 10 after
7261 #undef READ_SHORT_FIELD 7265 #undef READ_SHORT_FIELD
7262 #undef WRITE_SHORT_FIELD 7266 #undef WRITE_SHORT_FIELD
7263 #undef READ_BYTE_FIELD 7267 #undef READ_BYTE_FIELD
7264 #undef WRITE_BYTE_FIELD 7268 #undef WRITE_BYTE_FIELD
7265 #undef NOBARRIER_READ_BYTE_FIELD 7269 #undef NOBARRIER_READ_BYTE_FIELD
7266 #undef NOBARRIER_WRITE_BYTE_FIELD 7270 #undef NOBARRIER_WRITE_BYTE_FIELD
7267 7271
7268 } } // namespace v8::internal 7272 } } // namespace v8::internal
7269 7273
7270 #endif // V8_OBJECTS_INL_H_ 7274 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects.h ('k') | src/type-feedback-vector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698