Mercurial > hg > truffle
comparison src/share/vm/opto/machnode.hpp @ 3842:c7b60b601eb4
7069452: Cleanup NodeFlags
Summary: Remove flags which duplicate information in Node::NodeClasses.
Reviewed-by: never
author | kvn |
---|---|
date | Wed, 27 Jul 2011 17:28:36 -0700 |
parents | 3d42f82cd811 |
children | 95134e034042 |
comparison
equal
deleted
inserted
replaced
3841:0f34fdee809e | 3842:c7b60b601eb4 |
---|---|
273 virtual void negate(); | 273 virtual void negate(); |
274 | 274 |
275 // Apply peephole rule(s) to this instruction | 275 // Apply peephole rule(s) to this instruction |
276 virtual MachNode *peephole( Block *block, int block_index, PhaseRegAlloc *ra_, int &deleted, Compile* C ); | 276 virtual MachNode *peephole( Block *block, int block_index, PhaseRegAlloc *ra_, int &deleted, Compile* C ); |
277 | 277 |
278 // Check for PC-Relative addressing | |
279 bool is_pc_relative() const { return (flags() & Flag_is_pc_relative) != 0; } | |
280 | |
281 // Top-level ideal Opcode matched | 278 // Top-level ideal Opcode matched |
282 virtual int ideal_Opcode() const { return Op_Node; } | 279 virtual int ideal_Opcode() const { return Op_Node; } |
283 | 280 |
284 // Set the branch inside jump MachNodes. Error for non-branch Nodes. | 281 // Set the branch inside jump MachNodes. Error for non-branch Nodes. |
285 virtual void label_set( Label* label, uint block_num ); | 282 virtual void label_set( Label* label, uint block_num ); |
523 class MachNullCheckNode : public MachIdealNode { | 520 class MachNullCheckNode : public MachIdealNode { |
524 public: | 521 public: |
525 const uint _vidx; // Index of memop being tested | 522 const uint _vidx; // Index of memop being tested |
526 MachNullCheckNode( Node *ctrl, Node *memop, uint vidx ) : MachIdealNode(), _vidx(vidx) { | 523 MachNullCheckNode( Node *ctrl, Node *memop, uint vidx ) : MachIdealNode(), _vidx(vidx) { |
527 init_class_id(Class_MachNullCheck); | 524 init_class_id(Class_MachNullCheck); |
528 init_flags(Flag_is_Branch | Flag_is_pc_relative); | 525 init_flags(Flag_is_Branch); |
529 add_req(ctrl); | 526 add_req(ctrl); |
530 add_req(memop); | 527 add_req(memop); |
531 } | 528 } |
532 | 529 |
533 virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const; | 530 virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const; |
552 // of the Matcher process, but the Matcher is ill suited to issues involving | 549 // of the Matcher process, but the Matcher is ill suited to issues involving |
553 // frame handling, so frame handling is all done in the Ideal world with | 550 // frame handling, so frame handling is all done in the Ideal world with |
554 // occasional callbacks to the machine model for important info. | 551 // occasional callbacks to the machine model for important info. |
555 class MachProjNode : public ProjNode { | 552 class MachProjNode : public ProjNode { |
556 public: | 553 public: |
557 MachProjNode( Node *multi, uint con, const RegMask &out, uint ideal_reg ) : ProjNode(multi,con), _rout(out), _ideal_reg(ideal_reg) {} | 554 MachProjNode( Node *multi, uint con, const RegMask &out, uint ideal_reg ) : ProjNode(multi,con), _rout(out), _ideal_reg(ideal_reg) { |
555 init_class_id(Class_MachProj); | |
556 } | |
558 RegMask _rout; | 557 RegMask _rout; |
559 const uint _ideal_reg; | 558 const uint _ideal_reg; |
560 enum projType { | 559 enum projType { |
561 unmatched_proj = 0, // Projs for Control, I/O, memory not matched | 560 unmatched_proj = 0, // Projs for Control, I/O, memory not matched |
562 fat_proj = 999 // Projs killing many regs, defined by _rout | 561 fat_proj = 999 // Projs killing many regs, defined by _rout |
587 #ifndef PRODUCT | 586 #ifndef PRODUCT |
588 virtual void dump_spec(outputStream *st) const; | 587 virtual void dump_spec(outputStream *st) const; |
589 #endif | 588 #endif |
590 }; | 589 }; |
591 | 590 |
591 //------------------------------MachGotoNode----------------------------------- | |
592 // Machine-specific versions of GotoNodes | |
593 class MachGotoNode : public MachNode { | |
594 public: | |
595 MachGotoNode() : MachNode() { | |
596 init_class_id(Class_MachGoto); | |
597 } | |
598 }; | |
599 | |
592 //------------------------------MachFastLockNode------------------------------------- | 600 //------------------------------MachFastLockNode------------------------------------- |
593 // Machine-specific versions of FastLockNodes | 601 // Machine-specific versions of FastLockNodes |
594 class MachFastLockNode : public MachNode { | 602 class MachFastLockNode : public MachNode { |
595 virtual uint size_of() const { return sizeof(*this); } // Size is bigger | 603 virtual uint size_of() const { return sizeof(*this); } // Size is bigger |
596 public: | 604 public: |
629 OopMap* oop_map() const { return _oop_map; } | 637 OopMap* oop_map() const { return _oop_map; } |
630 void set_oop_map(OopMap* om) { _oop_map = om; } | 638 void set_oop_map(OopMap* om) { _oop_map = om; } |
631 | 639 |
632 MachSafePointNode() : MachReturnNode(), _oop_map(NULL), _jvms(NULL), _jvmadj(0) { | 640 MachSafePointNode() : MachReturnNode(), _oop_map(NULL), _jvms(NULL), _jvmadj(0) { |
633 init_class_id(Class_MachSafePoint); | 641 init_class_id(Class_MachSafePoint); |
634 init_flags(Flag_is_safepoint_node); | |
635 } | 642 } |
636 | 643 |
637 virtual JVMState* jvms() const { return _jvms; } | 644 virtual JVMState* jvms() const { return _jvms; } |
638 void set_jvms(JVMState* s) { | 645 void set_jvms(JVMState* s) { |
639 _jvms = s; | 646 _jvms = s; |
640 } | 647 } |
641 bool is_safepoint_node() const { return (flags() & Flag_is_safepoint_node) != 0; } | |
642 virtual const Type *bottom_type() const; | 648 virtual const Type *bottom_type() const; |
643 | 649 |
644 virtual const RegMask &in_RegMask(uint) const; | 650 virtual const RegMask &in_RegMask(uint) const; |
645 | 651 |
646 // Functionality from old debug nodes | 652 // Functionality from old debug nodes |
700 void set_cnt(float c) { _cnt = c; } | 706 void set_cnt(float c) { _cnt = c; } |
701 void set_argsize(int s) { _argsize = s; } | 707 void set_argsize(int s) { _argsize = s; } |
702 | 708 |
703 MachCallNode() : MachSafePointNode() { | 709 MachCallNode() : MachSafePointNode() { |
704 init_class_id(Class_MachCall); | 710 init_class_id(Class_MachCall); |
705 init_flags(Flag_is_Call); | |
706 } | 711 } |
707 | 712 |
708 virtual const Type *bottom_type() const; | 713 virtual const Type *bottom_type() const; |
709 virtual bool pinned() const { return false; } | 714 virtual bool pinned() const { return false; } |
710 virtual const Type *Value( PhaseTransform *phase ) const; | 715 virtual const Type *Value( PhaseTransform *phase ) const; |