comparison src/share/vm/adlc/formssel.cpp @ 14439:50fdb38839eb

8028515: PPPC64 (part 113.2): opto: Introduce LoadFence/StoreFence. Summary: Use new nodes for loadFence/storeFence intrinsics in C2. Reviewed-by: kvn, dholmes
author goetz
date Tue, 26 Nov 2013 18:38:19 -0800
parents 318d0622a6d7
children abec000618bf
comparison
equal deleted inserted replaced
14438:4cdf4f71177d 14439:50fdb38839eb
646 if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true; 646 if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true;
647 if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true; 647 if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true;
648 if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true; 648 if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true;
649 if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true; 649 if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true;
650 if( strcmp(_matrule->_opType,"MemBarStoreStore") == 0 ) return true; 650 if( strcmp(_matrule->_opType,"MemBarStoreStore") == 0 ) return true;
651 if( strcmp(_matrule->_opType,"StoreFence") == 0 ) return true;
652 if( strcmp(_matrule->_opType,"LoadFence") == 0 ) return true;
651 653
652 return false; 654 return false;
653 } 655 }
654 656
655 int InstructForm::memory_operand(FormDict &globals) const { 657 int InstructForm::memory_operand(FormDict &globals) const {
4052 } 4054 }
4053 4055
4054 bool MatchRule::is_ideal_membar() const { 4056 bool MatchRule::is_ideal_membar() const {
4055 if( !_opType ) return false; 4057 if( !_opType ) return false;
4056 return 4058 return
4057 !strcmp(_opType,"MemBarAcquire" ) || 4059 !strcmp(_opType,"MemBarAcquire") ||
4058 !strcmp(_opType,"MemBarRelease" ) || 4060 !strcmp(_opType,"MemBarRelease") ||
4059 !strcmp(_opType,"MemBarAcquireLock") || 4061 !strcmp(_opType,"MemBarAcquireLock") ||
4060 !strcmp(_opType,"MemBarReleaseLock") || 4062 !strcmp(_opType,"MemBarReleaseLock") ||
4061 !strcmp(_opType,"MemBarVolatile" ) || 4063 !strcmp(_opType,"LoadFence" ) ||
4062 !strcmp(_opType,"MemBarCPUOrder" ) || 4064 !strcmp(_opType,"StoreFence") ||
4063 !strcmp(_opType,"MemBarStoreStore" ); 4065 !strcmp(_opType,"MemBarVolatile") ||
4066 !strcmp(_opType,"MemBarCPUOrder") ||
4067 !strcmp(_opType,"MemBarStoreStore");
4064 } 4068 }
4065 4069
4066 bool MatchRule::is_ideal_loadPC() const { 4070 bool MatchRule::is_ideal_loadPC() const {
4067 if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) { 4071 if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) {
4068 return (strcmp(_rChild->_opType,"LoadPC") == 0); 4072 return (strcmp(_rChild->_opType,"LoadPC") == 0);