< prev index next >

src/hotspot/share/opto/cfgnode.hpp

Print this page
rev 52273 : Purge some G1-related cruft in C2


 380     : MultiBranchNode(2), _prob(p), _fcnt(fcnt) {
 381     init_class_id(Class_If);
 382     init_req(0,control);
 383     init_req(1,b);
 384   }
 385   virtual int Opcode() const;
 386   virtual bool pinned() const { return true; }
 387   virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; }
 388   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 389   virtual const Type* Value(PhaseGVN* phase) const;
 390   virtual int required_outcnt() const { return 2; }
 391   virtual const RegMask &out_RegMask() const;
 392   Node* fold_compares(PhaseIterGVN* phase);
 393   static Node* up_one_dom(Node* curr, bool linear_only = false);
 394 
 395   // Takes the type of val and filters it through the test represented
 396   // by if_proj and returns a more refined type if one is produced.
 397   // Returns NULL is it couldn't improve the type.
 398   static const TypeInt* filtered_int_type(PhaseGVN* phase, Node* val, Node* if_proj);
 399 
 400   bool is_g1_marking_if(PhaseTransform *phase) const;
 401 #if INCLUDE_SHENANDOAHGC
 402   bool is_shenandoah_marking_if(PhaseTransform *phase) const;
 403 #endif
 404 
 405 #ifndef PRODUCT
 406   virtual void dump_spec(outputStream *st) const;
 407   virtual void related(GrowableArray <Node *> *in_rel, GrowableArray <Node *> *out_rel, bool compact) const;
 408 #endif
 409 };
 410 
 411 class RangeCheckNode : public IfNode {
 412 private:
 413   int is_range_check(Node* &range, Node* &index, jint &offset);
 414 
 415 public:
 416   RangeCheckNode(Node* control, Node *b, float p, float fcnt)
 417     : IfNode(control, b, p, fcnt) {
 418     init_class_id(Class_RangeCheck);
 419   }
 420 




 380     : MultiBranchNode(2), _prob(p), _fcnt(fcnt) {
 381     init_class_id(Class_If);
 382     init_req(0,control);
 383     init_req(1,b);
 384   }
 385   virtual int Opcode() const;
 386   virtual bool pinned() const { return true; }
 387   virtual const Type *bottom_type() const { return TypeTuple::IFBOTH; }
 388   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 389   virtual const Type* Value(PhaseGVN* phase) const;
 390   virtual int required_outcnt() const { return 2; }
 391   virtual const RegMask &out_RegMask() const;
 392   Node* fold_compares(PhaseIterGVN* phase);
 393   static Node* up_one_dom(Node* curr, bool linear_only = false);
 394 
 395   // Takes the type of val and filters it through the test represented
 396   // by if_proj and returns a more refined type if one is produced.
 397   // Returns NULL is it couldn't improve the type.
 398   static const TypeInt* filtered_int_type(PhaseGVN* phase, Node* val, Node* if_proj);
 399 

 400 #if INCLUDE_SHENANDOAHGC
 401   bool is_shenandoah_marking_if(PhaseTransform *phase) const;
 402 #endif
 403 
 404 #ifndef PRODUCT
 405   virtual void dump_spec(outputStream *st) const;
 406   virtual void related(GrowableArray <Node *> *in_rel, GrowableArray <Node *> *out_rel, bool compact) const;
 407 #endif
 408 };
 409 
 410 class RangeCheckNode : public IfNode {
 411 private:
 412   int is_range_check(Node* &range, Node* &index, jint &offset);
 413 
 414 public:
 415   RangeCheckNode(Node* control, Node *b, float p, float fcnt)
 416     : IfNode(control, b, p, fcnt) {
 417     init_class_id(Class_RangeCheck);
 418   }
 419 


< prev index next >