#ifndef V8_OBJECTS_FEEDBACK_VECTOR_H_
#define V8_OBJECTS_FEEDBACK_VECTOR_H_
#include <optional>
#include <vector>
#include "src/base/bit-field.h"
#include "src/base/logging.h"
#include "src/base/macros.h"
#include "src/common/globals.h"
#include "src/objects/elements-kind.h"
#include "src/objects/feedback-cell.h"
#include "src/objects/map.h"
#include "src/objects/maybe-object.h"
#include "src/objects/name.h"
#include "src/objects/type-hints.h"
#include "src/zone/zone-containers.h"
#include "src/objects/object-macros.h"
namespace v8::internal {
class IsCompiledScope;
class FeedbackVectorSpec;
enum class UpdateFeedbackMode { … };
enum class ClearBehavior { … };
enum class FeedbackSlotKind : uint8_t { … };
static constexpr int kFeedbackSlotKindCount = …;
MapAndHandler;
MapAndFeedback;
inline bool IsCallICKind(FeedbackSlotKind kind) { … }
inline bool IsLoadICKind(FeedbackSlotKind kind) { … }
inline bool IsLoadGlobalICKind(FeedbackSlotKind kind) { … }
inline bool IsKeyedLoadICKind(FeedbackSlotKind kind) { … }
inline bool IsKeyedHasICKind(FeedbackSlotKind kind) { … }
inline bool IsStoreGlobalICKind(FeedbackSlotKind kind) { … }
inline bool IsSetNamedICKind(FeedbackSlotKind kind) { … }
inline bool IsDefineNamedOwnICKind(FeedbackSlotKind kind) { … }
inline bool IsDefineKeyedOwnICKind(FeedbackSlotKind kind) { … }
inline bool IsDefineKeyedOwnPropertyInLiteralKind(FeedbackSlotKind kind) { … }
inline bool IsKeyedStoreICKind(FeedbackSlotKind kind) { … }
inline bool IsStoreInArrayLiteralICKind(FeedbackSlotKind kind) { … }
inline bool IsGlobalICKind(FeedbackSlotKind kind) { … }
inline bool IsCloneObjectKind(FeedbackSlotKind kind) { … }
inline TypeofMode GetTypeofModeFromSlotKind(FeedbackSlotKind kind) { … }
inline LanguageMode GetLanguageModeFromSlotKind(FeedbackSlotKind kind) { … }
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
FeedbackSlotKind kind);
using MaybeObjectHandles = std::vector<MaybeObjectHandle>;
class FeedbackMetadata;
#include "torque-generated/src/objects/feedback-vector-tq.inc"
class ClosureFeedbackCellArrayShape final : public AllStatic { … };
class ClosureFeedbackCellArray
: public TaggedArrayBase<ClosureFeedbackCellArray,
ClosureFeedbackCellArrayShape> { … };
class NexusConfig;
class FeedbackVector
: public TorqueGeneratedFeedbackVector<FeedbackVector, HeapObject> { … };
class V8_EXPORT_PRIVATE FeedbackVectorSpec { … };
class SharedFeedbackSlot { … };
class FeedbackMetadata : public HeapObject { … };
static_assert …;
static_assert …;
static_assert …;
class FeedbackMetadataIterator { … };
class V8_EXPORT_PRIVATE NexusConfig { … };
class V8_EXPORT_PRIVATE FeedbackNexus final { … };
class V8_EXPORT_PRIVATE FeedbackIterator final { … };
inline BinaryOperationHint BinaryOperationHintFromFeedback(int type_feedback);
inline CompareOperationHint CompareOperationHintFromFeedback(int type_feedback);
inline ForInHint ForInHintFromFeedback(ForInFeedback type_feedback);
}
#include "src/objects/object-macros-undef.h"
#endif