Mercurial > hg > truffle
comparison src/share/vm/opto/node.hpp @ 168:7793bd37a336
6705887: Compressed Oops: generate x64 addressing and implicit null checks with narrow oops
Summary: Generate addresses and implicit null checks with narrow oops to avoid decoding.
Reviewed-by: jrose, never
author | kvn |
---|---|
date | Thu, 29 May 2008 12:04:14 -0700 |
parents | a76240c8b133 |
children | d1605aabd0a1 |
comparison
equal
deleted
inserted
replaced
167:feeb96a45707 | 168:7793bd37a336 |
---|---|
51 class CodeBuffer; | 51 class CodeBuffer; |
52 class ConstraintCastNode; | 52 class ConstraintCastNode; |
53 class ConNode; | 53 class ConNode; |
54 class CountedLoopNode; | 54 class CountedLoopNode; |
55 class CountedLoopEndNode; | 55 class CountedLoopEndNode; |
56 class DecodeNNode; | |
57 class EncodePNode; | |
56 class FastLockNode; | 58 class FastLockNode; |
57 class FastUnlockNode; | 59 class FastUnlockNode; |
58 class IfNode; | 60 class IfNode; |
59 class InitializeNode; | 61 class InitializeNode; |
60 class JVMState; | 62 class JVMState; |
436 } | 438 } |
437 | 439 |
438 public: | 440 public: |
439 // Globally replace this node by a given new node, updating all uses. | 441 // Globally replace this node by a given new node, updating all uses. |
440 void replace_by(Node* new_node); | 442 void replace_by(Node* new_node); |
443 // Globally replace this node by a given new node, updating all uses | |
444 // and cutting input edges of old node. | |
445 void subsume_by(Node* new_node) { | |
446 replace_by(new_node); | |
447 disconnect_inputs(NULL); | |
448 } | |
441 void set_req_X( uint i, Node *n, PhaseIterGVN *igvn ); | 449 void set_req_X( uint i, Node *n, PhaseIterGVN *igvn ); |
442 // Find the one non-null required input. RegionNode only | 450 // Find the one non-null required input. RegionNode only |
443 Node *nonnull_req() const; | 451 Node *nonnull_req() const; |
444 // Add or remove precedence edges | 452 // Add or remove precedence edges |
445 void add_prec( Node *n ); | 453 void add_prec( Node *n ); |
575 DEFINE_CLASS_ID(Phi, Type, 0) | 583 DEFINE_CLASS_ID(Phi, Type, 0) |
576 DEFINE_CLASS_ID(ConstraintCast, Type, 1) | 584 DEFINE_CLASS_ID(ConstraintCast, Type, 1) |
577 DEFINE_CLASS_ID(CheckCastPP, Type, 2) | 585 DEFINE_CLASS_ID(CheckCastPP, Type, 2) |
578 DEFINE_CLASS_ID(CMove, Type, 3) | 586 DEFINE_CLASS_ID(CMove, Type, 3) |
579 DEFINE_CLASS_ID(SafePointScalarObject, Type, 4) | 587 DEFINE_CLASS_ID(SafePointScalarObject, Type, 4) |
588 DEFINE_CLASS_ID(DecodeN, Type, 5) | |
589 DEFINE_CLASS_ID(EncodeP, Type, 6) | |
580 | 590 |
581 DEFINE_CLASS_ID(Mem, Node, 6) | 591 DEFINE_CLASS_ID(Mem, Node, 6) |
582 DEFINE_CLASS_ID(Load, Mem, 0) | 592 DEFINE_CLASS_ID(Load, Mem, 0) |
583 DEFINE_CLASS_ID(Store, Mem, 1) | 593 DEFINE_CLASS_ID(Store, Mem, 1) |
584 DEFINE_CLASS_ID(LoadStore, Mem, 2) | 594 DEFINE_CLASS_ID(LoadStore, Mem, 2) |
683 DEFINE_CLASS_QUERY(ConstraintCast) | 693 DEFINE_CLASS_QUERY(ConstraintCast) |
684 DEFINE_CLASS_QUERY(CMove) | 694 DEFINE_CLASS_QUERY(CMove) |
685 DEFINE_CLASS_QUERY(Cmp) | 695 DEFINE_CLASS_QUERY(Cmp) |
686 DEFINE_CLASS_QUERY(CountedLoop) | 696 DEFINE_CLASS_QUERY(CountedLoop) |
687 DEFINE_CLASS_QUERY(CountedLoopEnd) | 697 DEFINE_CLASS_QUERY(CountedLoopEnd) |
698 DEFINE_CLASS_QUERY(DecodeN) | |
699 DEFINE_CLASS_QUERY(EncodeP) | |
688 DEFINE_CLASS_QUERY(FastLock) | 700 DEFINE_CLASS_QUERY(FastLock) |
689 DEFINE_CLASS_QUERY(FastUnlock) | 701 DEFINE_CLASS_QUERY(FastUnlock) |
690 DEFINE_CLASS_QUERY(If) | 702 DEFINE_CLASS_QUERY(If) |
691 DEFINE_CLASS_QUERY(IfFalse) | 703 DEFINE_CLASS_QUERY(IfFalse) |
692 DEFINE_CLASS_QUERY(IfTrue) | 704 DEFINE_CLASS_QUERY(IfTrue) |