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

Unified Diff: src/objects.h

Issue 2437043002: [compiler] Mark shared functions for optimization (Closed)
Patch Set: Unmark after compiling Created 4 years, 2 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
« no previous file with comments | « src/compiler.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 a125f5b91d11a2c8febc7e0b5b3deb194059d5f2..f1bc09bc14e9fabfc5e5e3c7c0046aed5fb304bf 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -7655,6 +7655,9 @@ class SharedFunctionInfo: public HeapObject {
// Whether this function was created from a FunctionDeclaration.
DECL_BOOLEAN_ACCESSORS(is_declaration)
+ // Whether this function was marked to be optimized.
+ DECL_BOOLEAN_ACCESSORS(was_marked_for_optimization)
+
// Indicates that asm->wasm conversion failed and should not be re-attempted.
DECL_BOOLEAN_ACCESSORS(is_asm_wasm_broken)
@@ -7904,7 +7907,7 @@ class SharedFunctionInfo: public HeapObject {
enum CompilerHints {
// byte 0
kAllowLazyCompilation,
- kIsDeclaration,
+ kWasMarkedForOptimization,
kOptimizationDisabled,
kNeverCompiled,
kNative,
@@ -7925,6 +7928,7 @@ class SharedFunctionInfo: public HeapObject {
// rest of byte 2 and first two bits of byte 3 are used by FunctionKind
// byte 3
kDeserialized = kFunctionKind + 10,
+ kIsDeclaration,
kIsAsmWasmBroken,
kRequiresClassFieldInit,
kIsClassFieldInitializer,
@@ -7953,7 +7957,8 @@ class SharedFunctionInfo: public HeapObject {
static const int kCompilerHintsSize = kIntSize;
#endif
- STATIC_ASSERT(SharedFunctionInfo::kCompilerHintsCount <=
+ STATIC_ASSERT(SharedFunctionInfo::kCompilerHintsCount +
+ SharedFunctionInfo::kCompilerHintsSmiTagSize <=
SharedFunctionInfo::kCompilerHintsSize * kBitsPerByte);
public:
@@ -7970,6 +7975,9 @@ class SharedFunctionInfo: public HeapObject {
static const int kAllFunctionKindBitsMask = FunctionKindBits::kMask
<< kCompilerHintsSmiTagSize;
+ static const int kWasMarkedForOptimizationBit =
+ kWasMarkedForOptimization + kCompilerHintsSmiTagSize;
+
// Constants for optimizing codegen for strict mode function and
// native tests.
// Allows to use byte-width instructions.
@@ -7982,6 +7990,9 @@ class SharedFunctionInfo: public HeapObject {
FunctionKind::kClassConstructor << kCompilerHintsSmiTagSize;
STATIC_ASSERT(kClassConstructorBitsWithinByte < (1 << kBitsPerByte));
+ static const int kWasMarkedForOptimizationBitWithinByte =
+ kWasMarkedForOptimizationBit % kBitsPerByte;
+
#if defined(V8_TARGET_LITTLE_ENDIAN)
#define BYTE_OFFSET(compiler_hint) \
kCompilerHintsOffset + \
@@ -7998,6 +8009,8 @@ class SharedFunctionInfo: public HeapObject {
static const int kFunctionKindByteOffset = BYTE_OFFSET(kFunctionKind);
static const int kHasDuplicateParametersByteOffset =
BYTE_OFFSET(kHasDuplicateParameters);
+ static const int kWasMarkedForOptimizationByteOffset =
+ BYTE_OFFSET(kWasMarkedForOptimization);
#undef BYTE_OFFSET
private:
« no previous file with comments | « src/compiler.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698