hotspot/src/share/vm/opto/memnode.cpp
changeset 3905 7d725029ac85
parent 3904 007a45522a7f
child 4432 29b057bf202d
equal deleted inserted replaced
3904:007a45522a7f 3905:7d725029ac85
  2512 }
  2512 }
  2513 
  2513 
  2514 //=============================================================================
  2514 //=============================================================================
  2515 // Do we match on this edge? No memory edges
  2515 // Do we match on this edge? No memory edges
  2516 uint StrCompNode::match_edge(uint idx) const {
  2516 uint StrCompNode::match_edge(uint idx) const {
  2517   return idx == 5 || idx == 6;
  2517   return idx == 2 || idx == 3; // StrComp (Binary str1 cnt1) (Binary str2 cnt2)
  2518 }
  2518 }
  2519 
  2519 
  2520 //------------------------------Ideal------------------------------------------
  2520 //------------------------------Ideal------------------------------------------
  2521 // Return a node which is more "ideal" than the current node.  Strip out
  2521 // Return a node which is more "ideal" than the current node.  Strip out
  2522 // control copies
  2522 // control copies
  2523 Node *StrCompNode::Ideal(PhaseGVN *phase, bool can_reshape){
  2523 Node *StrCompNode::Ideal(PhaseGVN *phase, bool can_reshape){
  2524   return remove_dead_region(phase, can_reshape) ? this : NULL;
  2524   return remove_dead_region(phase, can_reshape) ? this : NULL;
  2525 }
  2525 }
  2526 
  2526 
       
  2527 //=============================================================================
  2527 // Do we match on this edge? No memory edges
  2528 // Do we match on this edge? No memory edges
  2528 uint StrEqualsNode::match_edge(uint idx) const {
  2529 uint StrEqualsNode::match_edge(uint idx) const {
  2529   return idx == 5 || idx == 6;
  2530   return idx == 2 || idx == 3; // StrEquals (Binary str1 str2) cnt
  2530 }
  2531 }
  2531 
  2532 
  2532 //------------------------------Ideal------------------------------------------
  2533 //------------------------------Ideal------------------------------------------
  2533 // Return a node which is more "ideal" than the current node.  Strip out
  2534 // Return a node which is more "ideal" than the current node.  Strip out
  2534 // control copies
  2535 // control copies
  2537 }
  2538 }
  2538 
  2539 
  2539 //=============================================================================
  2540 //=============================================================================
  2540 // Do we match on this edge? No memory edges
  2541 // Do we match on this edge? No memory edges
  2541 uint StrIndexOfNode::match_edge(uint idx) const {
  2542 uint StrIndexOfNode::match_edge(uint idx) const {
  2542   return idx == 5 || idx == 6;
  2543   return idx == 2 || idx == 3; // StrIndexOf (Binary str1 cnt1) (Binary str2 cnt2)
  2543 }
  2544 }
  2544 
  2545 
  2545 //------------------------------Ideal------------------------------------------
  2546 //------------------------------Ideal------------------------------------------
  2546 // Return a node which is more "ideal" than the current node.  Strip out
  2547 // Return a node which is more "ideal" than the current node.  Strip out
  2547 // control copies
  2548 // control copies
  2548 Node *StrIndexOfNode::Ideal(PhaseGVN *phase, bool can_reshape){
  2549 Node *StrIndexOfNode::Ideal(PhaseGVN *phase, bool can_reshape){
  2549   return remove_dead_region(phase, can_reshape) ? this : NULL;
  2550   return remove_dead_region(phase, can_reshape) ? this : NULL;
  2550 }
  2551 }
  2551 
  2552 
       
  2553 //=============================================================================
       
  2554 // Do we match on this edge? No memory edges
       
  2555 uint AryEqNode::match_edge(uint idx) const {
       
  2556   return idx == 2 || idx == 3; // StrEquals ary1 ary2
       
  2557 }
  2552 //------------------------------Ideal------------------------------------------
  2558 //------------------------------Ideal------------------------------------------
  2553 // Return a node which is more "ideal" than the current node.  Strip out
  2559 // Return a node which is more "ideal" than the current node.  Strip out
  2554 // control copies
  2560 // control copies
  2555 Node *AryEqNode::Ideal(PhaseGVN *phase, bool can_reshape){
  2561 Node *AryEqNode::Ideal(PhaseGVN *phase, bool can_reshape){
  2556   return remove_dead_region(phase, can_reshape) ? this : NULL;
  2562   return remove_dead_region(phase, can_reshape) ? this : NULL;