< prev index next >

src/share/vm/adlc/formssel.cpp

Print this page

        

*** 637,662 **** } 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; --- 637,646 ----
*** 780,790 **** !strcmp(_matrule->_rChild->_opType,"LoadN") || !strcmp(_matrule->_rChild->_opType,"LoadNKlass") || !strcmp(_matrule->_rChild->_opType,"CreateEx") || // type of exception !strcmp(_matrule->_rChild->_opType,"CheckCastPP") || !strcmp(_matrule->_rChild->_opType,"GetAndSetP") || ! !strcmp(_matrule->_rChild->_opType,"GetAndSetN")) ) return true; else if ( is_ideal_load() == Form::idealP ) return true; else if ( is_ideal_store() != Form::none ) return true; if (needs_base_oop_edge(globals)) return true; --- 764,775 ---- !strcmp(_matrule->_rChild->_opType,"LoadN") || !strcmp(_matrule->_rChild->_opType,"LoadNKlass") || !strcmp(_matrule->_rChild->_opType,"CreateEx") || // type of exception !strcmp(_matrule->_rChild->_opType,"CheckCastPP") || !strcmp(_matrule->_rChild->_opType,"GetAndSetP") || ! !strcmp(_matrule->_rChild->_opType,"GetAndSetN") || ! !strcmp(_matrule->_rChild->_opType,"ShenandoahReadBarrier"))) return true; else if ( is_ideal_load() == Form::idealP ) return true; else if ( is_ideal_store() != Form::none ) return true; if (needs_base_oop_edge(globals)) return true;
*** 1157,1166 **** --- 1142,1154 ---- 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";
*** 1240,1250 **** if (_matrule != NULL && this != short_branch && // Don't match myself !is_short_branch() && // Don't match another short branch variant reduce_result() != NULL && strcmp(reduce_result(), short_branch->reduce_result()) == 0 && ! _matrule->equivalent(AD.globalNames(), short_branch->_matrule)) { // The instructions are equivalent. // Now verify that both instructions have the same parameters and // the same effects. Both branch forms should have the same inputs // and resulting projections to correctly replace a long branch node --- 1228,1239 ---- if (_matrule != NULL && this != short_branch && // Don't match myself !is_short_branch() && // Don't match another short branch variant reduce_result() != NULL && strcmp(reduce_result(), short_branch->reduce_result()) == 0 && ! _matrule->equivalent(AD.globalNames(), short_branch->_matrule) && ! equivalent_predicates(this, short_branch)) { // The instructions are equivalent. // Now verify that both instructions have the same parameters and // the same effects. Both branch forms should have the same inputs // and resulting projections to correctly replace a long branch node
*** 3487,3496 **** --- 3476,3486 ---- "CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN", "StoreCM", "ClearArray", "GetAndAddI", "GetAndSetI", "GetAndSetP", "GetAndAddL", "GetAndSetL", "GetAndSetN", + "ShenandoahReadBarrier", }; int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); if( strcmp(_opType,"PrefetchRead")==0 || strcmp(_opType,"PrefetchWrite")==0 || strcmp(_opType,"PrefetchAllocation")==0 )
< prev index next >