/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/v8/src/objects/feedback-vector.tq
47 строк
2 KB
Michaël Zasso
deps: update V8 to 14.3.127.12
13 ноя 2025, 17:08
Не верифицирован
13 ноя 2025, 17:08
53379f3
Код
Авторство
О чём код?
// Copyright 2019 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. type TieringState extends uint16 constexpr 'TieringState'; bitfield struct FeedbackVectorFlags extends uint16 { tiering_in_progress: bool: 1 bit; osr_tiering_in_progress: bool: 1 bit; interrupt_budget_reset_by_ic_change: bool: 1 bit; all_your_bits_are_belong_to_jgruber: uint32: 13 bit; } bitfield struct OsrState extends uint8 { // The layout is chosen s.t. osr_urgency and // maybe_has_(maglev|turbofan)_osr_code can be loaded with a single load // (i.e. no masking required). osr_urgency: uint32: 3 bit; maybe_has_maglev_osr_code: bool: 1 bit; maybe_has_turbofan_osr_code: bool: 1 bit; // In order to have fast OSR checks in Ignition and Sparkplug, these bits // should remain 0. That way, the OSR check can be implemented as a single // comparison. dont_use_these_bits_unless_beneficial: uint32: 3 bit; } @cppObjectLayoutDefinition extern class ClosureFeedbackCellArray extends HeapObject { const length: Smi; objects[length]: FeedbackCell; } @generateBodyDescriptor extern class FeedbackVector extends HeapObject { const length: int32; invocation_count: int32; @if(TAGGED_SIZE_8_BYTES) optional_padding: uint32; invocation_count_before_stable: uint8; osr_state: OsrState; flags: FeedbackVectorFlags; shared_function_info: SharedFunctionInfo; closure_feedback_cell_array: ClosureFeedbackCellArray; parent_feedback_cell: FeedbackCell; @cppRelaxedLoad @cppRelaxedStore raw_feedback_slots[length]: MaybeObject; } extern class FeedbackMetadata extends HeapObject;