Lines Matching defs:state
201 VisitNode(token.node, token.state);
207 void MemoryOptimizer::VisitNode(Node* node, AllocationState const* state) {
217 return VisitAllocateRaw(node, state);
219 return VisitCall(node, state);
222 return VisitLoadFromObject(node, state);
224 return VisitLoadElement(node, state);
226 return VisitLoadField(node, state);
229 return VisitStoreToObject(node, state);
231 return VisitStoreElement(node, state);
233 return VisitStoreField(node, state);
235 return VisitStore(node, state);
239 return VisitOtherEffect(node, state);
269 AllocationState const* state) {
302 node, allocation_type, allocation.allow_large_objects(), &state);
307 EnqueueUses(state->effect(), state);
311 AllocationState const* state) {
315 EnqueueUses(node, state);
322 AllocationState const* state) {
325 memory_lowering()->ReduceStoreToObject(node, state);
326 EnqueueUses(node, state);
330 AllocationState const* state) {
333 EnqueueUses(node, state);
336 void MemoryOptimizer::VisitLoadField(Node* node, AllocationState const* state) {
342 EnqueueUses(node, state);
357 AllocationState const* state) {
359 memory_lowering()->ReduceStoreElement(node, state);
360 EnqueueUses(node, state);
364 AllocationState const* state) {
366 memory_lowering()->ReduceStoreField(node, state);
367 EnqueueUses(node, state);
369 void MemoryOptimizer::VisitStore(Node* node, AllocationState const* state) {
371 memory_lowering()->ReduceStore(node, state);
372 EnqueueUses(node, state);
375 void MemoryOptimizer::VisitCall(Node* node, AllocationState const* state) {
377 // If the call can allocate, we start with a fresh state.
379 state = empty_state();
381 EnqueueUses(node, state);
385 AllocationState const* state) {
386 EnqueueUses(node, state);
393 AllocationState const* state = states.front();
394 MemoryLowering::AllocationGroup* group = state->group();
396 if (states[i] != state) state = nullptr;
399 if (state == nullptr) {
406 state = AllocationState::Closed(group, nullptr, zone());
409 state = empty_state();
412 return state;
416 AllocationState const* state) {
424 // If the loop can allocate, we start with an empty state at the
428 // If the loop cannot allocate, we can just propagate the state from
430 EnqueueUses(node, state);
444 // Add the next input state.
445 it->second.push_back(state);
451 state = MergeStates(it->second);
452 EnqueueUses(node, state);
458 void MemoryOptimizer::EnqueueUses(Node* node, AllocationState const* state) {
461 EnqueueUse(edge.from(), edge.index(), state);
467 AllocationState const* state) {
472 EnqueueMerge(node, index, state);
474 Token token = {node, state};