< prev index next >

src/hotspot/share/opto/lcm.cpp

Print this page




 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


< prev index next >