< prev index next >

src/share/vm/opto/cfgnode.hpp

Print this page

        

*** 89,100 **** virtual bool pinned() const { return (const Node *)in(0) == this; } virtual bool is_CFG () const { return true; } virtual uint hash() const { return NO_HASH; } // CFG nodes do not hash virtual bool depends_only_on_test() const { return false; } virtual const Type *bottom_type() const { return Type::CONTROL; } ! virtual const Type *Value( PhaseTransform *phase ) const; ! virtual Node *Identity( PhaseTransform *phase ); virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual const RegMask &out_RegMask() const; bool try_clean_mem_phi(PhaseGVN *phase); }; --- 89,100 ---- virtual bool pinned() const { return (const Node *)in(0) == this; } virtual bool is_CFG () const { return true; } virtual uint hash() const { return NO_HASH; } // CFG nodes do not hash virtual bool depends_only_on_test() const { return false; } virtual const Type *bottom_type() const { return Type::CONTROL; } ! virtual const Type* Value(PhaseGVN* phase) const; ! virtual Node* Identity(PhaseGVN* phase); virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual const RegMask &out_RegMask() const; bool try_clean_mem_phi(PhaseGVN *phase); };
*** 196,207 **** inst_index() == index && inst_offset() == offset && type()->higher_equal(tp); } ! virtual const Type *Value( PhaseTransform *phase ) const; ! virtual Node *Identity( PhaseTransform *phase ); virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual const RegMask &out_RegMask() const; virtual const RegMask &in_RegMask(uint) const; #ifndef PRODUCT virtual void related(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const; --- 196,207 ---- inst_index() == index && inst_offset() == offset && type()->higher_equal(tp); } ! virtual const Type* Value(PhaseGVN* phase) const; ! virtual Node* Identity(PhaseGVN* phase); virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual const RegMask &out_RegMask() const; virtual const RegMask &in_RegMask(uint) const; #ifndef PRODUCT virtual void related(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const;
*** 225,236 **** virtual bool is_CFG() const { return true; } virtual uint hash() const { return NO_HASH; } // CFG nodes do not hash virtual const Node *is_block_proj() const { return this; } virtual bool depends_only_on_test() const { return false; } virtual const Type *bottom_type() const { return Type::CONTROL; } ! virtual const Type *Value( PhaseTransform *phase ) const; ! virtual Node *Identity( PhaseTransform *phase ); virtual const RegMask &out_RegMask() const; #ifndef PRODUCT virtual void related(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const; #endif --- 225,236 ---- virtual bool is_CFG() const { return true; } virtual uint hash() const { return NO_HASH; } // CFG nodes do not hash virtual const Node *is_block_proj() const { return this; } virtual bool depends_only_on_test() const { return false; } virtual const Type *bottom_type() const { return Type::CONTROL; } ! virtual const Type* Value(PhaseGVN* phase) const; ! virtual Node* Identity(PhaseGVN* phase); virtual const RegMask &out_RegMask() const; #ifndef PRODUCT virtual void related(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const; #endif
*** 375,385 **** } virtual int Opcode() const; virtual bool pinned() const { return true; } virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; } virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); ! virtual const Type *Value( PhaseTransform *phase ) const; virtual int required_outcnt() const { return 2; } virtual const RegMask &out_RegMask() const; Node* fold_compares(PhaseIterGVN* phase); static Node* up_one_dom(Node* curr, bool linear_only = false); --- 375,385 ---- } virtual int Opcode() const; virtual bool pinned() const { return true; } virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; } virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); ! virtual const Type* Value(PhaseGVN* phase) const; virtual int required_outcnt() const { return 2; } virtual const RegMask &out_RegMask() const; Node* fold_compares(PhaseIterGVN* phase); static Node* up_one_dom(Node* curr, bool linear_only = false);
*** 409,419 **** }; class IfProjNode : public CProjNode { public: IfProjNode(IfNode *ifnode, uint idx) : CProjNode(ifnode,idx) {} ! virtual Node *Identity(PhaseTransform *phase); protected: // Type of If input when this branch is always taken virtual bool always_taken(const TypeTuple* t) const = 0; --- 409,419 ---- }; class IfProjNode : public CProjNode { public: IfProjNode(IfNode *ifnode, uint idx) : CProjNode(ifnode,idx) {} ! virtual Node* Identity(PhaseGVN* phase); protected: // Type of If input when this branch is always taken virtual bool always_taken(const TypeTuple* t) const = 0;
*** 463,473 **** init_class_id(Class_PCTable); init_req(0, ctrl); init_req(1, idx); } virtual int Opcode() const; ! virtual const Type *Value( PhaseTransform *phase ) const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual const Type *bottom_type() const; virtual bool pinned() const { return true; } virtual int required_outcnt() const { return _size; } }; --- 463,473 ---- init_class_id(Class_PCTable); init_req(0, ctrl); init_req(1, idx); } virtual int Opcode() const; ! virtual const Type* Value(PhaseGVN* phase) const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual const Type *bottom_type() const; virtual bool pinned() const { return true; } virtual int required_outcnt() const { return _size; } };
*** 523,533 **** public: CatchNode( Node *ctrl, Node *idx, uint size ) : PCTableNode(ctrl,idx,size){ init_class_id(Class_Catch); } virtual int Opcode() const; ! virtual const Type *Value( PhaseTransform *phase ) const; }; // CatchProjNode controls which exception handler is targetted after a call. // It is passed in the bci of the target handler, or no_handler_bci in case // the projection doesn't lead to an exception handler. --- 523,533 ---- public: CatchNode( Node *ctrl, Node *idx, uint size ) : PCTableNode(ctrl,idx,size){ init_class_id(Class_Catch); } virtual int Opcode() const; ! virtual const Type* Value(PhaseGVN* phase) const; }; // CatchProjNode controls which exception handler is targetted after a call. // It is passed in the bci of the target handler, or no_handler_bci in case // the projection doesn't lead to an exception handler.
*** 551,561 **** init_class_id(Class_CatchProj); assert(proj_no != fall_through_index || handler_bci < 0, "fall through case must have bci < 0"); } virtual int Opcode() const; ! virtual Node *Identity( PhaseTransform *phase ); virtual const Type *bottom_type() const { return Type::CONTROL; } int handler_bci() const { return _handler_bci; } bool is_handler_proj() const { return _handler_bci >= 0; } #ifndef PRODUCT virtual void dump_spec(outputStream *st) const; --- 551,561 ---- init_class_id(Class_CatchProj); assert(proj_no != fall_through_index || handler_bci < 0, "fall through case must have bci < 0"); } virtual int Opcode() const; ! virtual Node* Identity(PhaseGVN* phase); virtual const Type *bottom_type() const { return Type::CONTROL; } int handler_bci() const { return _handler_bci; } bool is_handler_proj() const { return _handler_bci >= 0; } #ifndef PRODUCT virtual void dump_spec(outputStream *st) const;
*** 570,580 **** CreateExNode(const Type* t, Node* control, Node* i_o) : TypeNode(t, 2) { init_req(0, control); init_req(1, i_o); } virtual int Opcode() const; ! virtual Node *Identity( PhaseTransform *phase ); virtual bool pinned() const { return true; } uint match_edge(uint idx) const { return 0; } virtual uint ideal_reg() const { return Op_RegP; } }; --- 570,580 ---- CreateExNode(const Type* t, Node* control, Node* i_o) : TypeNode(t, 2) { init_req(0, control); init_req(1, i_o); } virtual int Opcode() const; ! virtual Node* Identity(PhaseGVN* phase); virtual bool pinned() const { return true; } uint match_edge(uint idx) const { return 0; } virtual uint ideal_reg() const { return Op_RegP; } };
*** 586,596 **** public: NeverBranchNode( Node *ctrl ) : MultiBranchNode(1) { init_req(0,ctrl); } virtual int Opcode() const; virtual bool pinned() const { return true; }; virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; } ! virtual const Type *Value( PhaseTransform *phase ) const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual int required_outcnt() const { return 2; } virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const { } virtual uint size(PhaseRegAlloc *ra_) const { return 0; } #ifndef PRODUCT --- 586,596 ---- public: NeverBranchNode( Node *ctrl ) : MultiBranchNode(1) { init_req(0,ctrl); } virtual int Opcode() const; virtual bool pinned() const { return true; }; virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; } ! virtual const Type* Value(PhaseGVN* phase) const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual int required_outcnt() const { return 2; } virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const { } virtual uint size(PhaseRegAlloc *ra_) const { return 0; } #ifndef PRODUCT
< prev index next >