< prev index next >
src/share/vm/adlc/formssel.cpp
Print this page
@@ -638,26 +638,10 @@
}
return (USE_of_memory && !DEF_of_memory);
}
-bool InstructForm::is_wide_memory_kill(FormDict &globals) const {
- if( _matrule == NULL ) return false;
- if( !_matrule->_opType ) return false;
-
- if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true;
- if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true;
- if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true;
- if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true;
- if( strcmp(_matrule->_opType,"MemBarStoreStore") == 0 ) return true;
- if( strcmp(_matrule->_opType,"MemBarVolatile") == 0 ) return true;
- if( strcmp(_matrule->_opType,"StoreFence") == 0 ) return true;
- if( strcmp(_matrule->_opType,"LoadFence") == 0 ) return true;
-
- return false;
-}
-
int InstructForm::memory_operand(FormDict &globals) const {
// Machine independent loads must be checked for anti-dependences
// Check if instruction has a USE of a memory operand class, or a def.
int USE_of_memory = 0;
int DEF_of_memory = 0;
@@ -1158,10 +1142,13 @@
return "MachFastLockNode";
}
else if (is_ideal_nop()) {
return "MachNopNode";
}
+ else if (is_ideal_membar()) {
+ return "MachMemBarNode";
+ }
else if (is_mach_constant()) {
return "MachConstantNode";
}
else if (captures_bottom_type(globals)) {
return "MachTypeNode";
@@ -3485,10 +3472,11 @@
"StoreVector", "LoadVector",
"LoadRange", "LoadKlass", "LoadNKlass", "LoadL_unaligned", "LoadD_unaligned",
"LoadPLocked",
"StorePConditional", "StoreIConditional", "StoreLConditional",
"CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN",
+ "ShenandoahCompareAndSwapN", "ShenandoahCompareAndSwapP",
"StoreCM",
"ClearArray",
"GetAndAddI", "GetAndSetI", "GetAndSetP",
"GetAndAddL", "GetAndSetL", "GetAndSetN",
};
< prev index next >