blob: a90d4d363c0c8f39ca9d15e98a1b77f73fd23633 [file] [log] [blame]
// 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 OptimizationMarker extends uint16 constexpr 'OptimizationMarker';
type OptimizationTier extends uint16 constexpr 'OptimizationTier';
bitfield struct FeedbackVectorFlags extends uint32 {
optimization_marker: OptimizationMarker: 3 bit;
optimization_tier: OptimizationTier: 2 bit;
}
@generateBodyDescriptor
@generateCppClass
extern class FeedbackVector extends HeapObject {
const length: int32;
invocation_count: int32;
profiler_ticks: int32;
// TODO(turboprop, v8:11010): This field could be removed by changing the
// tier up checks for Turboprop. If removing this field also check v8:9287.
// Padding was necessary for GCMole.
flags: FeedbackVectorFlags;
shared_function_info: SharedFunctionInfo;
maybe_optimized_code: Weak<Code>;
closure_feedback_cell_array: ClosureFeedbackCellArray;
raw_feedback_slots[length]: MaybeObject;
}
extern class FeedbackMetadata extends HeapObject;