hotspot/src/share/vm/opto/escape.cpp
changeset 11191 d54ab5dcba83
parent 11189 c1ad8528ae68
child 11198 34c860ff41e3
equal deleted inserted replaced
11190:d561d41f241a 11191:d54ab5dcba83
  1770     int cnt = C->macro_count();
  1770     int cnt = C->macro_count();
  1771     for( int i=0; i < cnt; i++ ) {
  1771     for( int i=0; i < cnt; i++ ) {
  1772       Node *n = C->macro_node(i);
  1772       Node *n = C->macro_node(i);
  1773       if (n->is_AbstractLock()) { // Lock and Unlock nodes
  1773       if (n->is_AbstractLock()) { // Lock and Unlock nodes
  1774         AbstractLockNode* alock = n->as_AbstractLock();
  1774         AbstractLockNode* alock = n->as_AbstractLock();
  1775         if (!alock->is_eliminated()) {
  1775         if (!alock->is_eliminated() || alock->is_coarsened()) {
  1776           PointsToNode::EscapeState es = escape_state(alock->obj_node());
  1776           PointsToNode::EscapeState es = escape_state(alock->obj_node());
  1777           assert(es != PointsToNode::UnknownEscape, "should know");
  1777           assert(es != PointsToNode::UnknownEscape, "should know");
  1778           if (es != PointsToNode::UnknownEscape && es != PointsToNode::GlobalEscape) {
  1778           if (es != PointsToNode::UnknownEscape && es != PointsToNode::GlobalEscape) {
  1779             // Mark it eliminated
  1779             if (!alock->is_eliminated()) {
  1780             alock->set_eliminated();
  1780               // Mark it eliminated to update any counters
       
  1781               alock->set_eliminated();
       
  1782             } else {
       
  1783               // The lock could be marked eliminated by lock coarsening
       
  1784               // code during first IGVN before EA. Clear coarsened flag
       
  1785               // to eliminate all associated locks/unlocks and relock
       
  1786               // during deoptimization.
       
  1787               alock->clear_coarsened();
       
  1788             }
  1781           }
  1789           }
  1782         }
  1790         }
  1783       }
  1791       }
  1784     }
  1792     }
  1785   }
  1793   }