5#ifndef V8_COMPILER_STATE_VALUES_UTILS_H_
6#define V8_COMPILER_STATE_VALUES_UTILS_H_
22class BytecodeLivenessState;
32 static const size_t kMaxInputCount = 8;
51 static bool AreKeysEqual(
void* key1,
void* key2);
52 static bool IsKeysEqualToNode(StateValuesKey*
key,
Node* node);
53 static bool AreValueKeysEqual(StateValuesKey* key1, StateValuesKey* key2);
60 WorkingBuffer* node_buffer,
size_t* node_count,
size_t* values_idx,
63 Node* BuildTree(
size_t* values_idx,
Node** values,
size_t count,
66 WorkingBuffer* GetWorkingSpace(
size_t level);
67 Node* GetEmptyStateValues();
97 bool done()
const {
return current_depth_ < 0; }
100 size_t AdvanceTillNotEmpty();
113 void Push(
Node* node);
116 static const int kMaxInlineDepth = 8;
129 iterator it = begin_without_receiver();
130 while (n_skips > 0 && !it.done()) {
iterator begin_without_receiver_and_skip(int n_skips)
iterator begin_without_receiver() const
StateValuesAccess(Node *node)
CommonOperatorBuilder * common()
ZoneVector< WorkingBuffer > working_space_
CustomMatcherZoneHashMap hash_map_
Node * empty_state_values_
std::array< Node *, kMaxInputCount > WorkingBuffer
Node::Uses::const_iterator begin(const Node::Uses &uses)
bool operator!=(ExternalReference lhs, ExternalReference rhs)
V8_INLINE Builtin operator++(Builtin &builtin)
#define V8_EXPORT_PRIVATE
TypedNode(Node *node, MachineType type)
StateValuesKey(size_t count, SparseInputMask mask, Node **values)
std::unique_ptr< ValueMirror > key