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

Side by Side Diff: src/objects.h

Issue 2481163002: Assign unique IDs to FunctionLiterals (Closed)
Patch Set: updates Created 4 years 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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 <iosfwd> 8 #include <iosfwd>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 7484 matching lines...) Expand 10 before | Expand all | Expand 10 after
7495 7495
7496 // [expected_nof_properties]: Expected number of properties for the function. 7496 // [expected_nof_properties]: Expected number of properties for the function.
7497 inline int expected_nof_properties() const; 7497 inline int expected_nof_properties() const;
7498 inline void set_expected_nof_properties(int value); 7498 inline void set_expected_nof_properties(int value);
7499 7499
7500 // [feedback_metadata] - describes ast node feedback from full-codegen and 7500 // [feedback_metadata] - describes ast node feedback from full-codegen and
7501 // (increasingly) from crankshafted code where sufficient feedback isn't 7501 // (increasingly) from crankshafted code where sufficient feedback isn't
7502 // available. 7502 // available.
7503 DECL_ACCESSORS(feedback_metadata, TypeFeedbackMetadata) 7503 DECL_ACCESSORS(feedback_metadata, TypeFeedbackMetadata)
7504 7504
7505 // [function_literal_id] - uniquely identifies the FunctionLiteral this
7506 // SharedFunctionInfo represents within its script, or -1 if this
7507 // SharedFunctionInfo object doesn't correspond to a parsed FunctionLiteral.
7508 inline int function_literal_id() const;
7509 inline void set_function_literal_id(int value);
7510
7505 #if TRACE_MAPS 7511 #if TRACE_MAPS
7506 // [unique_id] - For --trace-maps purposes, an identifier that's persistent 7512 // [unique_id] - For --trace-maps purposes, an identifier that's persistent
7507 // even if the GC moves this SharedFunctionInfo. 7513 // even if the GC moves this SharedFunctionInfo.
7508 inline int unique_id() const; 7514 inline int unique_id() const;
7509 inline void set_unique_id(int value); 7515 inline void set_unique_id(int value);
7510 #endif 7516 #endif
7511 7517
7512 // [instance class name]: class name for instances. 7518 // [instance class name]: class name for instances.
7513 DECL_ACCESSORS(instance_class_name, Object) 7519 DECL_ACCESSORS(instance_class_name, Object)
7514 7520
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
7803 static const int kConstructStubOffset = kOuterScopeInfoOffset + kPointerSize; 7809 static const int kConstructStubOffset = kOuterScopeInfoOffset + kPointerSize;
7804 static const int kInstanceClassNameOffset = 7810 static const int kInstanceClassNameOffset =
7805 kConstructStubOffset + kPointerSize; 7811 kConstructStubOffset + kPointerSize;
7806 static const int kFunctionDataOffset = 7812 static const int kFunctionDataOffset =
7807 kInstanceClassNameOffset + kPointerSize; 7813 kInstanceClassNameOffset + kPointerSize;
7808 static const int kScriptOffset = kFunctionDataOffset + kPointerSize; 7814 static const int kScriptOffset = kFunctionDataOffset + kPointerSize;
7809 static const int kDebugInfoOffset = kScriptOffset + kPointerSize; 7815 static const int kDebugInfoOffset = kScriptOffset + kPointerSize;
7810 static const int kFunctionIdentifierOffset = kDebugInfoOffset + kPointerSize; 7816 static const int kFunctionIdentifierOffset = kDebugInfoOffset + kPointerSize;
7811 static const int kFeedbackMetadataOffset = 7817 static const int kFeedbackMetadataOffset =
7812 kFunctionIdentifierOffset + kPointerSize; 7818 kFunctionIdentifierOffset + kPointerSize;
7819 static const int kFunctionLiteralIdOffset =
7820 kFeedbackMetadataOffset + kPointerSize;
7813 #if TRACE_MAPS 7821 #if TRACE_MAPS
7814 static const int kUniqueIdOffset = kFeedbackMetadataOffset + kPointerSize; 7822 static const int kUniqueIdOffset = kFunctionLiteralIdOffset + kPointerSize;
7815 static const int kLastPointerFieldOffset = kUniqueIdOffset; 7823 static const int kLastPointerFieldOffset = kUniqueIdOffset;
7816 #else 7824 #else
7817 // Just to not break the postmortrem support with conditional offsets 7825 // Just to not break the postmortrem support with conditional offsets
7818 static const int kUniqueIdOffset = kFeedbackMetadataOffset; 7826 static const int kUniqueIdOffset = kFunctionLiteralIdOffset;
7819 static const int kLastPointerFieldOffset = kFeedbackMetadataOffset; 7827 static const int kLastPointerFieldOffset = kFunctionLiteralIdOffset;
7820 #endif 7828 #endif
7821 7829
7822 #if V8_HOST_ARCH_32_BIT 7830 #if V8_HOST_ARCH_32_BIT
7823 // Smi fields. 7831 // Smi fields.
7824 static const int kLengthOffset = kLastPointerFieldOffset + kPointerSize; 7832 static const int kLengthOffset = kLastPointerFieldOffset + kPointerSize;
7825 static const int kFormalParameterCountOffset = kLengthOffset + kPointerSize; 7833 static const int kFormalParameterCountOffset = kLengthOffset + kPointerSize;
7826 static const int kExpectedNofPropertiesOffset = 7834 static const int kExpectedNofPropertiesOffset =
7827 kFormalParameterCountOffset + kPointerSize; 7835 kFormalParameterCountOffset + kPointerSize;
7828 static const int kNumLiteralsOffset = 7836 static const int kNumLiteralsOffset =
7829 kExpectedNofPropertiesOffset + kPointerSize; 7837 kExpectedNofPropertiesOffset + kPointerSize;
(...skipping 4063 matching lines...) Expand 10 before | Expand all | Expand 10 after
11893 } 11901 }
11894 return value; 11902 return value;
11895 } 11903 }
11896 }; 11904 };
11897 11905
11898 11906
11899 } // NOLINT, false-positive due to second-order macros. 11907 } // NOLINT, false-positive due to second-order macros.
11900 } // NOLINT, false-positive due to second-order macros. 11908 } // NOLINT, false-positive due to second-order macros.
11901 11909
11902 #endif // V8_OBJECTS_H_ 11910 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/factory.cc ('k') | src/objects.cc » ('j') | src/parsing/parser-base.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698