< prev index next >

src/share/vm/opto/cfgnode.hpp

Print this page




 347     init_req(0,control);
 348     init_req(1,b);
 349   }
 350   virtual int Opcode() const;
 351   virtual bool pinned() const { return true; }
 352   virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; }
 353   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 354   virtual const Type *Value( PhaseTransform *phase ) const;
 355   virtual int required_outcnt() const { return 2; }
 356   virtual const RegMask &out_RegMask() const;
 357   void dominated_by(Node* prev_dom, PhaseIterGVN* igvn);
 358   int is_range_check(Node* &range, Node* &index, jint &offset);
 359   Node* fold_compares(PhaseGVN* phase);
 360   static Node* up_one_dom(Node* curr, bool linear_only = false);
 361 
 362   // Takes the type of val and filters it through the test represented
 363   // by if_proj and returns a more refined type if one is produced.
 364   // Returns NULL is it couldn't improve the type.
 365   static const TypeInt* filtered_int_type(PhaseGVN* phase, Node* val, Node* if_proj);
 366 


 367 #ifndef PRODUCT
 368   virtual void dump_spec(outputStream *st) const;
 369 #endif
 370 };
 371 
 372 class IfTrueNode : public CProjNode {
 373 public:
 374   IfTrueNode( IfNode *ifnode ) : CProjNode(ifnode,1) {
 375     init_class_id(Class_IfTrue);
 376   }
 377   virtual int Opcode() const;
 378   virtual Node *Identity( PhaseTransform *phase );
 379 };
 380 
 381 class IfFalseNode : public CProjNode {
 382 public:
 383   IfFalseNode( IfNode *ifnode ) : CProjNode(ifnode,0) {
 384     init_class_id(Class_IfFalse);
 385   }
 386   virtual int Opcode() const;




 347     init_req(0,control);
 348     init_req(1,b);
 349   }
 350   virtual int Opcode() const;
 351   virtual bool pinned() const { return true; }
 352   virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; }
 353   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 354   virtual const Type *Value( PhaseTransform *phase ) const;
 355   virtual int required_outcnt() const { return 2; }
 356   virtual const RegMask &out_RegMask() const;
 357   void dominated_by(Node* prev_dom, PhaseIterGVN* igvn);
 358   int is_range_check(Node* &range, Node* &index, jint &offset);
 359   Node* fold_compares(PhaseGVN* phase);
 360   static Node* up_one_dom(Node* curr, bool linear_only = false);
 361 
 362   // Takes the type of val and filters it through the test represented
 363   // by if_proj and returns a more refined type if one is produced.
 364   // Returns NULL is it couldn't improve the type.
 365   static const TypeInt* filtered_int_type(PhaseGVN* phase, Node* val, Node* if_proj);
 366 
 367   bool is_shenandoah_marking_if(PhaseTransform *phase) const;
 368 
 369 #ifndef PRODUCT
 370   virtual void dump_spec(outputStream *st) const;
 371 #endif
 372 };
 373 
 374 class IfTrueNode : public CProjNode {
 375 public:
 376   IfTrueNode( IfNode *ifnode ) : CProjNode(ifnode,1) {
 377     init_class_id(Class_IfTrue);
 378   }
 379   virtual int Opcode() const;
 380   virtual Node *Identity( PhaseTransform *phase );
 381 };
 382 
 383 class IfFalseNode : public CProjNode {
 384 public:
 385   IfFalseNode( IfNode *ifnode ) : CProjNode(ifnode,0) {
 386     init_class_id(Class_IfFalse);
 387   }
 388   virtual int Opcode() const;


< prev index next >