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

Side by Side Diff: src/objects.h

Issue 2172583002: [interpreter] Add OSR nesting level to bytecode header. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 5 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
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 9
10 #include "src/assert-scope.h" 10 #include "src/assert-scope.h"
(...skipping 4497 matching lines...) Expand 10 before | Expand all | Expand 10 after
4508 inline int register_count() const; 4508 inline int register_count() const;
4509 4509
4510 // Accessors for parameter count (including implicit 'this' receiver). 4510 // Accessors for parameter count (including implicit 'this' receiver).
4511 inline int parameter_count() const; 4511 inline int parameter_count() const;
4512 inline void set_parameter_count(int number_of_parameters); 4512 inline void set_parameter_count(int number_of_parameters);
4513 4513
4514 // Accessors for profiling count. 4514 // Accessors for profiling count.
4515 inline int interrupt_budget() const; 4515 inline int interrupt_budget() const;
4516 inline void set_interrupt_budget(int interrupt_budget); 4516 inline void set_interrupt_budget(int interrupt_budget);
4517 4517
4518 // Accessors for OSR loop nesting level.
4519 inline int osr_loop_nesting_level() const;
4520 inline void set_osr_loop_nesting_level(int depth);
4521
4518 // Accessors for the constant pool. 4522 // Accessors for the constant pool.
4519 DECL_ACCESSORS(constant_pool, FixedArray) 4523 DECL_ACCESSORS(constant_pool, FixedArray)
4520 4524
4521 // Accessors for handler table containing offsets of exception handlers. 4525 // Accessors for handler table containing offsets of exception handlers.
4522 DECL_ACCESSORS(handler_table, FixedArray) 4526 DECL_ACCESSORS(handler_table, FixedArray)
4523 4527
4524 // Accessors for source position table containing mappings between byte code 4528 // Accessors for source position table containing mappings between byte code
4525 // offset and source position. 4529 // offset and source position.
4526 DECL_ACCESSORS(source_position_table, ByteArray) 4530 DECL_ACCESSORS(source_position_table, ByteArray)
4527 4531
(...skipping 19 matching lines...) Expand all
4547 void CopyBytecodesTo(BytecodeArray* to); 4551 void CopyBytecodesTo(BytecodeArray* to);
4548 4552
4549 // Layout description. 4553 // Layout description.
4550 static const int kConstantPoolOffset = FixedArrayBase::kHeaderSize; 4554 static const int kConstantPoolOffset = FixedArrayBase::kHeaderSize;
4551 static const int kHandlerTableOffset = kConstantPoolOffset + kPointerSize; 4555 static const int kHandlerTableOffset = kConstantPoolOffset + kPointerSize;
4552 static const int kSourcePositionTableOffset = 4556 static const int kSourcePositionTableOffset =
4553 kHandlerTableOffset + kPointerSize; 4557 kHandlerTableOffset + kPointerSize;
4554 static const int kFrameSizeOffset = kSourcePositionTableOffset + kPointerSize; 4558 static const int kFrameSizeOffset = kSourcePositionTableOffset + kPointerSize;
4555 static const int kParameterSizeOffset = kFrameSizeOffset + kIntSize; 4559 static const int kParameterSizeOffset = kFrameSizeOffset + kIntSize;
4556 static const int kInterruptBudgetOffset = kParameterSizeOffset + kIntSize; 4560 static const int kInterruptBudgetOffset = kParameterSizeOffset + kIntSize;
4557 static const int kHeaderSize = kInterruptBudgetOffset + kIntSize; 4561 static const int kOSRNestingLevelOffset = kInterruptBudgetOffset + kIntSize;
4562 static const int kHeaderSize = kOSRNestingLevelOffset + kIntSize;
rmcilroy 2016/07/22 09:46:01 The OSR nesting level is always less than a byte (
Michael Starzinger 2016/07/25 10:24:42 As discussed offline: Yes, the OSR nesting level i
rmcilroy 2016/07/25 11:14:47 Yeah this is an issue I hadn't thought of. We cou
Michael Starzinger 2016/07/25 11:21:28 Done.
4558 4563
4559 // Maximal memory consumption for a single BytecodeArray. 4564 // Maximal memory consumption for a single BytecodeArray.
4560 static const int kMaxSize = 512 * MB; 4565 static const int kMaxSize = 512 * MB;
4561 // Maximal length of a single BytecodeArray. 4566 // Maximal length of a single BytecodeArray.
4562 static const int kMaxLength = kMaxSize - kHeaderSize; 4567 static const int kMaxLength = kMaxSize - kHeaderSize;
4563 4568
4564 class BodyDescriptor; 4569 class BodyDescriptor;
4565 4570
4566 private: 4571 private:
4567 DISALLOW_IMPLICIT_CONSTRUCTORS(BytecodeArray); 4572 DISALLOW_IMPLICIT_CONSTRUCTORS(BytecodeArray);
(...skipping 6427 matching lines...) Expand 10 before | Expand all | Expand 10 after
10995 } 11000 }
10996 return value; 11001 return value;
10997 } 11002 }
10998 }; 11003 };
10999 11004
11000 11005
11001 } // NOLINT, false-positive due to second-order macros. 11006 } // NOLINT, false-positive due to second-order macros.
11002 } // NOLINT, false-positive due to second-order macros. 11007 } // NOLINT, false-positive due to second-order macros.
11003 11008
11004 #endif // V8_OBJECTS_H_ 11009 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/heap/heap.cc ('k') | src/objects-inl.h » ('j') | src/objects-inl.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698