Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8282208

Reduce MachNode size

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 19
    • 19
    • hotspot
    • b11

      +++ Product: Before change +++

      /* offset | size */ type = class Node {
      /* 8 | 8 */ class Node **_in;
      /* 16 | 8 */ class Node **_out;
      /* 24 | 4 */ node_idx_t _cnt;
      /* 28 | 4 */ node_idx_t _max;
      /* 32 | 4 */ node_idx_t _outcnt;
      /* 36 | 4 */ node_idx_t _outmax;
      /* 40 | 4 */ const node_idx_t _idx;
      /* 44 | 4 */ juint _class_id;
      /* 48 | 4 */ juint _flags;
      /* XXX 4-byte padding */

                                 /* total size (bytes): 56 */
                               }

      /* offset | size */ type = class MachNode : public Node {
      /* 52 | 1 */ bool _removed;
      /* 53 | 1 */ uint8_t _barrier;
      /* XXX 2-byte hole */
      /* 56 | 4 */ uint _num_opnds;
      /* XXX 4-byte hole */
      /* 64 | 8 */ class MachOper **_opnds:

                                 /* total size (bytes): 72 */
                               }
                               
      +++ Product: After change +++
                               
      /* offset | size */ type = class Node {
      /* 8 | 8 */ Node **_in;
      /* 16 | 8 */ Node **_out;
      /* 24 | 4 */ node_idx_t _cnt;
      /* 28 | 4 */ node_idx_t _max;
      /* 32 | 4 */ node_idx_t _outcnt;
      /* 36 | 4 */ node_idx_t _outmax;
      /* 40 | 4 */ const node_idx_t _idx;
      /* 44 | 4 */ juint _class_id;
      /* 48 | 4 */ juint _flags;
      /* XXX 4-byte padding */

                                 /* total size (bytes): 56 */
                               }

      /* offset | size */ type = class MachNode : public Node {
      /* 52 | 1 */ uint8_t _barrier;
      /* XXX 1-byte hole */
      /* 54 | 2 */ uint16_t _num_opnds;
      /* 56 | 8 */ MachOper **_opnds;

                                 /* total size (bytes): 64 */
                               }

      +++ Debug: Before change +++

      type = class Node {
      /* 8 | 8 */ Node **_in;
      /* 16 | 8 */ Node **_out;
      /* 24 | 4 */ node_idx_t _cnt;
      /* 28 | 4 */ node_idx_t _max;
      /* 32 | 4 */ node_idx_t _outcnt;
      /* 36 | 4 */ node_idx_t _outmax;
      /* 40 | 4 */ const node_idx_t _idx;
      /* 44 | 4 */ const node_idx_t _parse_idx;
      /* 48 | 4 */ node_idx_t _igv_idx;
      /* 52 | 4 */ juint _class_id;
      /* 56 | 4 */ juint _flags;
      /* 60 | 4 */ int _indent;
      /* 64 | 4 */ int _debug_idx;
      /* XXX 4-byte hole */
      /* 72 | 8 */ Node *_debug_orig;
      /* 80 | 4 */ int _hash_lock;
      /* XXX 4-byte hole */
      /* 88 | 8 */ const Node *_last_del;
      /* 96 | 4 */ uint _del_tick;
      /* XXX 4-byte padding */

                                 /* total size (bytes): 104 */
                               } * const

      type = class MachNode : public Node {
      /* 100 | 1 */ bool _removed;
      /* 101 | 1 */ uint8_t _barrier;
      /* XXX 2-byte hole */
      /* 104 | 4 */ uint _num_opnds;
      /* XXX 4-byte hole */
      /* 112 | 8 */ MachOper **_opnds;

                                 /* total size (bytes): 120 */
                               } * const

      +++ Debug: After change +++

      type = class Node {
      /* 8 | 8 */ Node **_in;
      /* 16 | 8 */ Node **_out;
      /* 24 | 4 */ node_idx_t _cnt;
      /* 28 | 4 */ node_idx_t _max;
      /* 32 | 4 */ node_idx_t _outcnt;
      /* 36 | 4 */ node_idx_t _outmax;
      /* 40 | 4 */ const node_idx_t _idx;
      /* 44 | 4 */ const node_idx_t _parse_idx;
      /* 48 | 4 */ node_idx_t _igv_idx;
      /* 52 | 4 */ juint _class_id;
      /* 56 | 4 */ juint _flags;
      /* 60 | 4 */ int _indent;
      /* 64 | 8 */ Node *_debug_orig;
      /* 72 | 4 */ int _debug_idx;
      /* 76 | 4 */ int _hash_lock;
      /* 80 | 8 */ const Node *_last_del;
      /* 88 | 4 */ uint _del_tick;
      /* XXX 4-byte padding */

                                 /* total size (bytes): 96 */
                               } *

      type = const class MachNode : public Node {
      /* 92 | 1 */ uint8_t _barrier;
      /* XXX 1-byte hole */
      /* 94 | 2 */ uint16_t _num_opnds;
      /* 96 | 8 */ MachOper **_opnds;

                                 /* total size (bytes): 104 */
                               } *

            neliasso Nils Eliasson (Inactive)
            neliasso Nils Eliasson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: