152 153 // Search the successor block for a load or store who's base value is also 154 // the tested value. There may be several. 155 Node_List *out = new Node_List(Thread::current()->resource_area()); 156 MachNode *best = NULL; // Best found so far 157 for (DUIterator i = val->outs(); val->has_out(i); i++) { 158 Node *m = val->out(i); 159 if( !m->is_Mach() ) continue; 160 MachNode *mach = m->as_Mach(); 161 was_store = false; 162 int iop = mach->ideal_Opcode(); 163 switch( iop ) { 164 case Op_LoadB: 165 case Op_LoadUB: 166 case Op_LoadUS: 167 case Op_LoadD: 168 case Op_LoadF: 169 case Op_LoadI: 170 case Op_LoadL: 171 case Op_LoadP: 172 case Op_LoadN: 173 case Op_LoadS: 174 case Op_LoadKlass: 175 case Op_LoadNKlass: 176 case Op_LoadRange: 177 case Op_LoadD_unaligned: 178 case Op_LoadL_unaligned: 179 assert(mach->in(2) == val, "should be address"); 180 break; 181 case Op_StoreB: 182 case Op_StoreC: 183 case Op_StoreCM: 184 case Op_StoreD: 185 case Op_StoreF: 186 case Op_StoreI: 187 case Op_StoreL: 188 case Op_StoreP: 189 case Op_StoreN: 190 case Op_StoreNKlass: 191 was_store = true; // Memory op is a store op | 152 153 // Search the successor block for a load or store who's base value is also 154 // the tested value. There may be several. 155 Node_List *out = new Node_List(Thread::current()->resource_area()); 156 MachNode *best = NULL; // Best found so far 157 for (DUIterator i = val->outs(); val->has_out(i); i++) { 158 Node *m = val->out(i); 159 if( !m->is_Mach() ) continue; 160 MachNode *mach = m->as_Mach(); 161 was_store = false; 162 int iop = mach->ideal_Opcode(); 163 switch( iop ) { 164 case Op_LoadB: 165 case Op_LoadUB: 166 case Op_LoadUS: 167 case Op_LoadD: 168 case Op_LoadF: 169 case Op_LoadI: 170 case Op_LoadL: 171 case Op_LoadP: 172 case Op_LoadBarrierSlowReg: 173 case Op_LoadBarrierWeakSlowReg: 174 case Op_LoadN: 175 case Op_LoadS: 176 case Op_LoadKlass: 177 case Op_LoadNKlass: 178 case Op_LoadRange: 179 case Op_LoadD_unaligned: 180 case Op_LoadL_unaligned: 181 assert(mach->in(2) == val, "should be address"); 182 break; 183 case Op_StoreB: 184 case Op_StoreC: 185 case Op_StoreCM: 186 case Op_StoreD: 187 case Op_StoreF: 188 case Op_StoreI: 189 case Op_StoreL: 190 case Op_StoreP: 191 case Op_StoreN: 192 case Op_StoreNKlass: 193 was_store = true; // Memory op is a store op |