< prev index next >

src/hotspot/share/opto/lcm.cpp

Print this page




 154   // Search the successor block for a load or store who's base value is also
 155   // the tested value.  There may be several.
 156   Node_List *out = new Node_List(Thread::current()->resource_area());
 157   MachNode *best = NULL;        // Best found so far
 158   for (DUIterator i = val->outs(); val->has_out(i); i++) {
 159     Node *m = val->out(i);
 160     if( !m->is_Mach() ) continue;
 161     MachNode *mach = m->as_Mach();
 162     was_store = false;
 163     int iop = mach->ideal_Opcode();
 164     switch( iop ) {
 165     case Op_LoadB:
 166     case Op_LoadUB:
 167     case Op_LoadUS:
 168     case Op_LoadD:
 169     case Op_LoadF:
 170     case Op_LoadI:
 171     case Op_LoadL:
 172     case Op_LoadP:
 173     case Op_LoadBarrierSlowReg:

 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




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


< prev index next >