< prev index next >

src/hotspot/share/adlc/formssel.cpp

Print this page




3468 
3469 void MatchNode::dump() {
3470   output(stderr);
3471 }
3472 
3473 void MatchNode::output(FILE *fp) {
3474   if (_lChild==0 && _rChild==0) {
3475     fprintf(fp," %s",_name);    // operand
3476   }
3477   else {
3478     fprintf(fp," (%s ",_name);  // " (opcodeName "
3479     if(_lChild) _lChild->output(fp); //               left operand
3480     if(_rChild) _rChild->output(fp); //                    right operand
3481     fprintf(fp,")");                 //                                 ")"
3482   }
3483 }
3484 
3485 int MatchNode::needs_ideal_memory_edge(FormDict &globals) const {
3486   static const char *needs_ideal_memory_list[] = {
3487     "StoreI","StoreL","StoreP","StoreN","StoreNKlass","StoreD","StoreF" ,
3488     "StoreB","StoreC","Store" ,"StoreFP",
3489     "LoadI", "LoadL", "LoadP" ,"LoadN", "LoadD" ,"LoadF"  ,
3490     "LoadB" , "LoadUB", "LoadUS" ,"LoadS" ,"Load" ,
3491     "StoreVector", "LoadVector",
3492     "LoadRange", "LoadKlass", "LoadNKlass", "LoadL_unaligned", "LoadD_unaligned",
3493     "LoadPLocked",
3494     "StorePConditional", "StoreIConditional", "StoreLConditional",
3495     "CompareAndSwapB", "CompareAndSwapS", "CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN",
3496     "WeakCompareAndSwapB", "WeakCompareAndSwapS", "WeakCompareAndSwapI", "WeakCompareAndSwapL", "WeakCompareAndSwapP", "WeakCompareAndSwapN",
3497     "CompareAndExchangeB", "CompareAndExchangeS", "CompareAndExchangeI", "CompareAndExchangeL", "CompareAndExchangeP", "CompareAndExchangeN",
3498     "StoreCM",
3499     "ClearArray",
3500     "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP",
3501     "GetAndAddB", "GetAndAddS", "GetAndAddL", "GetAndSetL", "GetAndSetN",
3502     "LoadBarrierSlowReg", "LoadBarrierWeakSlowReg"
3503   };
3504   int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*);
3505   if( strcmp(_opType,"PrefetchAllocation")==0 )
3506     return 1;
3507   if( _lChild ) {
3508     const char *opType = _lChild->_opType;




3468 
3469 void MatchNode::dump() {
3470   output(stderr);
3471 }
3472 
3473 void MatchNode::output(FILE *fp) {
3474   if (_lChild==0 && _rChild==0) {
3475     fprintf(fp," %s",_name);    // operand
3476   }
3477   else {
3478     fprintf(fp," (%s ",_name);  // " (opcodeName "
3479     if(_lChild) _lChild->output(fp); //               left operand
3480     if(_rChild) _rChild->output(fp); //                    right operand
3481     fprintf(fp,")");                 //                                 ")"
3482   }
3483 }
3484 
3485 int MatchNode::needs_ideal_memory_edge(FormDict &globals) const {
3486   static const char *needs_ideal_memory_list[] = {
3487     "StoreI","StoreL","StoreP","StoreN","StoreNKlass","StoreD","StoreF" ,
3488     "StoreZ0", "StoreZ1", "StoreB","StoreC","Store" ,"StoreFP",
3489     "LoadI", "LoadL", "LoadP" ,"LoadN", "LoadD" ,"LoadF"  ,
3490     "LoadB" , "LoadUB", "LoadUS" ,"LoadS" ,"Load" ,
3491     "StoreVector", "LoadVector",
3492     "LoadRange", "LoadKlass", "LoadNKlass", "LoadL_unaligned", "LoadD_unaligned",
3493     "LoadPLocked",
3494     "StorePConditional", "StoreIConditional", "StoreLConditional",
3495     "CompareAndSwapB", "CompareAndSwapS", "CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN",
3496     "WeakCompareAndSwapB", "WeakCompareAndSwapS", "WeakCompareAndSwapI", "WeakCompareAndSwapL", "WeakCompareAndSwapP", "WeakCompareAndSwapN",
3497     "CompareAndExchangeB", "CompareAndExchangeS", "CompareAndExchangeI", "CompareAndExchangeL", "CompareAndExchangeP", "CompareAndExchangeN",
3498     "StoreCM",
3499     "ClearArray",
3500     "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP",
3501     "GetAndAddB", "GetAndAddS", "GetAndAddL", "GetAndSetL", "GetAndSetN",
3502     "LoadBarrierSlowReg", "LoadBarrierWeakSlowReg"
3503   };
3504   int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*);
3505   if( strcmp(_opType,"PrefetchAllocation")==0 )
3506     return 1;
3507   if( _lChild ) {
3508     const char *opType = _lChild->_opType;


< prev index next >