Lines Matching refs:store

390   Node* store = load->in(MemNode::Memory);
400 if (store != NULL) mem_inputs[mem_inputs_length++] = store;
433 // For each nearby store, either insert an "anti-dependence" edge
434 // from the load to the store, or else move LCA upward to force the
435 // load to (eventually) be scheduled in a block above the store.
441 // store between the load's "early block" and the updated LCA.
490 // to look for anti-deps between this load and any store.
502 Node_List worklist_mem(area); // prior memory state to store
523 // to occur before each such store. When the store is in
525 // edge load->store.
530 // initial_mem -> (MergeMem ->)* store
538 // Examine a nearby store to see if it might interfere with our load.
540 Node* store = worklist_store.pop();
541 uint op = store->Opcode();
546 if (store == initial_mem // root (exclusive) of tree we are searching
549 mem = store; // It's not a possibly interfering store.
550 if (store == initial_mem)
554 store = mem->fast_out(i);
555 if (store->is_MergeMem()) {
560 if (worklist_visited.at(j-1) == store) break;
563 worklist_visited.push(store);
566 worklist_store.push(store);
572 if (store->needs_anti_dependence_check()) continue; // not really a store
577 const TypePtr* adr_type = store->adr_type();
582 if (store->is_Mach()) {
583 MachNode* mstore = store->as_Mach();
619 // or else observe that 'store' is all the way up in the
622 Block* store_block = _bbs[store->_idx];
625 if (store->is_Phi()) {
637 for (uint j = PhiNode::Input, jmax = store->req(); j < jmax; j++) {
638 if (store->in(j) == mem) { // Found matching input?
660 int num_mem_inputs = phi_inputs.at_grow(store->_idx,0) + 1;
664 phi_inputs.at_put(store->_idx, num_mem_inputs);
665 assert(PhiNode::Input + num_mem_inputs < store->req(),
670 // 'store' is between the current LCA and earliest possible block.
672 // to include the effect on LCA of this store.
673 // If this store's block gets chosen as the raised LCA, we
680 non_early_stores.push(store);
683 // Found a possibly-interfering store in the load's 'early' block.
686 assert(store != load->in(0), "dependence cycle found");
688 assert(store->find_edge(load) != -1, "missing precedence edge");
690 store->add_prec(load);
712 // a store that may invalidate the memory state required by 'load'.
717 // Insert anti-dependence edges from 'load' to each store
722 Node* store = non_early_stores.pop();
723 Block* store_block = _bbs[store->_idx];
725 // add anti_dependence from store to load in its own block
726 assert(store != load->in(0), "dependence cycle found");
728 assert(store->find_edge(load) != -1, "missing precedence edge");
730 store->add_prec(load);