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)