src/share/vm/opto/cfgnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6663848 Cdiff src/share/vm/opto/cfgnode.hpp

src/share/vm/opto/cfgnode.hpp

Print this page

        

*** 242,251 **** --- 242,253 ---- class MultiBranchNode : public MultiNode { public: MultiBranchNode( uint required ) : MultiNode(required) { init_class_id(Class_MultiBranch); } + // returns required number of users to be well formed. + virtual int required_outcnt() const = 0; }; //------------------------------IfNode----------------------------------------- // Output selected Control, based on a boolean test class IfNode : public MultiBranchNode {
*** 331,340 **** --- 333,343 ---- 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; void dominated_by(Node* prev_dom, PhaseIterGVN* igvn); int is_range_check(Node* &range, Node* &index, jint &offset); Node* fold_compares(PhaseGVN* phase); static Node* up_one_dom(Node* curr, bool linear_only = false);
*** 389,398 **** --- 392,402 ---- 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; } }; //------------------------------JumpNode--------------------------------------- // Indirect branch. Uses PCTable above to implement a switch statement. // It emits as a table load and local branch.
*** 502,512 **** 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 void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const { } virtual uint size(PhaseRegAlloc *ra_) const { return 0; } #ifndef PRODUCT virtual void format( PhaseRegAlloc *, outputStream *st ) const; #endif --- 506,518 ---- 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 virtual void format( PhaseRegAlloc *, outputStream *st ) const; #endif
src/share/vm/opto/cfgnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File