3500 "StoreI","StoreL","StoreP","StoreN","StoreNKlass","StoreD","StoreF" , 3501 "StoreB","StoreC","Store" ,"StoreFP", 3502 "LoadI", "LoadL", "LoadP" ,"LoadN", "LoadD" ,"LoadF" , 3503 "LoadB" , "LoadUB", "LoadUS" ,"LoadS" ,"Load" , 3504 "StoreVector", "LoadVector", 3505 "LoadRange", "LoadKlass", "LoadNKlass", "LoadL_unaligned", "LoadD_unaligned", 3506 "LoadPLocked", 3507 "StorePConditional", "StoreIConditional", "StoreLConditional", 3508 "CompareAndSwapB", "CompareAndSwapS", "CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN", 3509 "WeakCompareAndSwapB", "WeakCompareAndSwapS", "WeakCompareAndSwapI", "WeakCompareAndSwapL", "WeakCompareAndSwapP", "WeakCompareAndSwapN", 3510 "CompareAndExchangeB", "CompareAndExchangeS", "CompareAndExchangeI", "CompareAndExchangeL", "CompareAndExchangeP", "CompareAndExchangeN", 3511 "StoreCM", 3512 "ClearArray", 3513 "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP", 3514 "GetAndAddB", "GetAndAddS", "GetAndAddL", "GetAndSetL", "GetAndSetN", 3515 "LoadBarrierSlowReg", "LoadBarrierWeakSlowReg" 3516 }; 3517 int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); 3518 if( strcmp(_opType,"PrefetchAllocation")==0 ) 3519 return 1; 3520 if( _lChild ) { 3521 const char *opType = _lChild->_opType; 3522 for( int i=0; i<cnt; i++ ) 3523 if( strcmp(opType,needs_ideal_memory_list[i]) == 0 ) 3524 return 1; 3525 if( _lChild->needs_ideal_memory_edge(globals) ) 3526 return 1; 3527 } 3528 if( _rChild ) { 3529 const char *opType = _rChild->_opType; 3530 for( int i=0; i<cnt; i++ ) 3531 if( strcmp(opType,needs_ideal_memory_list[i]) == 0 ) 3532 return 1; 3533 if( _rChild->needs_ideal_memory_edge(globals) ) 3534 return 1; 3535 } 3536 3537 return 0; 3538 } 3539 | 3500 "StoreI","StoreL","StoreP","StoreN","StoreNKlass","StoreD","StoreF" , 3501 "StoreB","StoreC","Store" ,"StoreFP", 3502 "LoadI", "LoadL", "LoadP" ,"LoadN", "LoadD" ,"LoadF" , 3503 "LoadB" , "LoadUB", "LoadUS" ,"LoadS" ,"Load" , 3504 "StoreVector", "LoadVector", 3505 "LoadRange", "LoadKlass", "LoadNKlass", "LoadL_unaligned", "LoadD_unaligned", 3506 "LoadPLocked", 3507 "StorePConditional", "StoreIConditional", "StoreLConditional", 3508 "CompareAndSwapB", "CompareAndSwapS", "CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN", 3509 "WeakCompareAndSwapB", "WeakCompareAndSwapS", "WeakCompareAndSwapI", "WeakCompareAndSwapL", "WeakCompareAndSwapP", "WeakCompareAndSwapN", 3510 "CompareAndExchangeB", "CompareAndExchangeS", "CompareAndExchangeI", "CompareAndExchangeL", "CompareAndExchangeP", "CompareAndExchangeN", 3511 "StoreCM", 3512 "ClearArray", 3513 "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP", 3514 "GetAndAddB", "GetAndAddS", "GetAndAddL", "GetAndSetL", "GetAndSetN", 3515 "LoadBarrierSlowReg", "LoadBarrierWeakSlowReg" 3516 }; 3517 int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); 3518 if( strcmp(_opType,"PrefetchAllocation")==0 ) 3519 return 1; 3520 if( strcmp(_opType,"CacheWB")==0 ) 3521 return 1; 3522 if( strcmp(_opType,"CacheWBPreSync")==0 ) 3523 return 1; 3524 if( strcmp(_opType,"CacheWBPostSync")==0 ) 3525 return 1; 3526 if( _lChild ) { 3527 const char *opType = _lChild->_opType; 3528 for( int i=0; i<cnt; i++ ) 3529 if( strcmp(opType,needs_ideal_memory_list[i]) == 0 ) 3530 return 1; 3531 if( _lChild->needs_ideal_memory_edge(globals) ) 3532 return 1; 3533 } 3534 if( _rChild ) { 3535 const char *opType = _rChild->_opType; 3536 for( int i=0; i<cnt; i++ ) 3537 if( strcmp(opType,needs_ideal_memory_list[i]) == 0 ) 3538 return 1; 3539 if( _rChild->needs_ideal_memory_edge(globals) ) 3540 return 1; 3541 } 3542 3543 return 0; 3544 } 3545 |