1446 return _inodes[i].node; 1447 } 1448 uint index() const { 1449 return _inode_top->indx; 1450 } 1451 uint index_at(uint i) const { 1452 assert(_inodes + i <= _inode_top, "in range"); 1453 return _inodes[i].indx; 1454 } 1455 void set_node(Node *n) { 1456 _inode_top->node = n; 1457 } 1458 void set_index(uint i) { 1459 _inode_top->indx = i; 1460 } 1461 uint size_max() const { return (uint)pointer_delta(_inode_max, _inodes, sizeof(INode)); } // Max size 1462 uint size() const { return (uint)pointer_delta((_inode_top+1), _inodes, sizeof(INode)); } // Current size 1463 bool is_nonempty() const { return (_inode_top >= _inodes); } 1464 bool is_empty() const { return (_inode_top < _inodes); } 1465 void clear() { _inode_top = _inodes - 1; } // retain storage 1466 }; 1467 1468 1469 //-----------------------------Node_Notes-------------------------------------- 1470 // Debugging or profiling annotations loosely and sparsely associated 1471 // with some nodes. See Compile::node_notes_at for the accessor. 1472 class Node_Notes VALUE_OBJ_CLASS_SPEC { 1473 JVMState* _jvms; 1474 1475 public: 1476 Node_Notes(JVMState* jvms = NULL) { 1477 _jvms = jvms; 1478 } 1479 1480 JVMState* jvms() { return _jvms; } 1481 void set_jvms(JVMState* x) { _jvms = x; } 1482 1483 // True if there is nothing here. 1484 bool is_clear() { 1485 return (_jvms == NULL); | 1446 return _inodes[i].node; 1447 } 1448 uint index() const { 1449 return _inode_top->indx; 1450 } 1451 uint index_at(uint i) const { 1452 assert(_inodes + i <= _inode_top, "in range"); 1453 return _inodes[i].indx; 1454 } 1455 void set_node(Node *n) { 1456 _inode_top->node = n; 1457 } 1458 void set_index(uint i) { 1459 _inode_top->indx = i; 1460 } 1461 uint size_max() const { return (uint)pointer_delta(_inode_max, _inodes, sizeof(INode)); } // Max size 1462 uint size() const { return (uint)pointer_delta((_inode_top+1), _inodes, sizeof(INode)); } // Current size 1463 bool is_nonempty() const { return (_inode_top >= _inodes); } 1464 bool is_empty() const { return (_inode_top < _inodes); } 1465 void clear() { _inode_top = _inodes - 1; } // retain storage 1466 1467 // Node_Stack is used to map nodes. 1468 Node* find(uint idx) const; 1469 }; 1470 1471 1472 //-----------------------------Node_Notes-------------------------------------- 1473 // Debugging or profiling annotations loosely and sparsely associated 1474 // with some nodes. See Compile::node_notes_at for the accessor. 1475 class Node_Notes VALUE_OBJ_CLASS_SPEC { 1476 JVMState* _jvms; 1477 1478 public: 1479 Node_Notes(JVMState* jvms = NULL) { 1480 _jvms = jvms; 1481 } 1482 1483 JVMState* jvms() { return _jvms; } 1484 void set_jvms(JVMState* x) { _jvms = x; } 1485 1486 // True if there is nothing here. 1487 bool is_clear() { 1488 return (_jvms == NULL); |