#ifndef V8_COMPILER_PROCESSED_FEEDBACK_H_
#define V8_COMPILER_PROCESSED_FEEDBACK_H_
#include "src/compiler/heap-refs.h"
namespace v8 {
namespace internal {
namespace compiler {
class BinaryOperationFeedback;
class TypeOfOpFeedback;
class CallFeedback;
class CompareOperationFeedback;
class ElementAccessFeedback;
class ForInFeedback;
class GlobalAccessFeedback;
class InstanceOfFeedback;
class LiteralFeedback;
class MegaDOMPropertyAccessFeedback;
class NamedAccessFeedback;
class RegExpLiteralFeedback;
class TemplateObjectFeedback;
class ProcessedFeedback : public ZoneObject { … };
class InsufficientFeedback final : public ProcessedFeedback { … };
class GlobalAccessFeedback : public ProcessedFeedback { … };
class KeyedAccessMode { … };
class ElementAccessFeedback : public ProcessedFeedback { … };
class NamedAccessFeedback : public ProcessedFeedback { … };
class MegaDOMPropertyAccessFeedback : public ProcessedFeedback { … };
class CallFeedback : public ProcessedFeedback { … };
template <class T, ProcessedFeedback::Kind K>
class SingleValueFeedback : public ProcessedFeedback { … };
class InstanceOfFeedback
: public SingleValueFeedback<OptionalJSObjectRef,
ProcessedFeedback::kInstanceOf> { … };
class TypeOfOpFeedback
: public SingleValueFeedback<TypeOfFeedback::Result,
ProcessedFeedback::kTypeOf> { … };
class LiteralFeedback
: public SingleValueFeedback<AllocationSiteRef,
ProcessedFeedback::kLiteral> { … };
class RegExpLiteralFeedback
: public SingleValueFeedback<RegExpBoilerplateDescriptionRef,
ProcessedFeedback::kRegExpLiteral> { … };
class TemplateObjectFeedback
: public SingleValueFeedback<JSArrayRef,
ProcessedFeedback::kTemplateObject> { … };
class BinaryOperationFeedback
: public SingleValueFeedback<BinaryOperationHint,
ProcessedFeedback::kBinaryOperation> { … };
class CompareOperationFeedback
: public SingleValueFeedback<CompareOperationHint,
ProcessedFeedback::kCompareOperation> { … };
class ForInFeedback
: public SingleValueFeedback<ForInHint, ProcessedFeedback::kForIn> { … };
}
}
}
#endif