< prev index next >

src/share/vm/opto/phaseX.hpp

Print this page




 173          _zcon_max = (uint)T_CONFLICT
 174   };
 175   ConINode* _icons[_icon_max - _icon_min + 1];   // cached jint constant nodes
 176   ConLNode* _lcons[_lcon_max - _lcon_min + 1];   // cached jlong constant nodes
 177   ConNode*  _zcons[_zcon_max + 1];               // cached is_zero_type nodes
 178   void init_con_caches();
 179 
 180   // Support both int and long caches because either might be an intptr_t,
 181   // so they show up frequently in address computations.
 182 
 183 public:
 184   PhaseTransform( PhaseNumber pnum );
 185   PhaseTransform( Arena *arena, PhaseNumber pnum );
 186   PhaseTransform( PhaseTransform *phase, PhaseNumber pnum );
 187 
 188   Arena*      arena()   { return _arena; }
 189   Type_Array& types()   { return _types; }
 190   // _nodes is used in varying ways by subclasses, which define local accessors
 191 
 192 public:


 193   // Get a previously recorded type for the node n.
 194   // This type must already have been recorded.
 195   // If you want the type of a very new (untransformed) node,
 196   // you must use type_or_null, and test the result for NULL.
 197   const Type* type(const Node* n) const {
 198     assert(n != NULL, "must not be null");
 199     const Type* t = _types.fast_lookup(n->_idx);
 200     assert(t != NULL, "must set before get");
 201     return t;
 202   }
 203   // Get a previously recorded type for the node n,
 204   // or else return NULL if there is none.
 205   const Type* type_or_null(const Node* n) const {
 206     return _types.fast_lookup(n->_idx);
 207   }
 208   // Record a type for a node.
 209   void    set_type(const Node* n, const Type *t) {
 210     assert(t != NULL, "type must not be null");
 211     _types.map(n->_idx, t);
 212   }




 173          _zcon_max = (uint)T_CONFLICT
 174   };
 175   ConINode* _icons[_icon_max - _icon_min + 1];   // cached jint constant nodes
 176   ConLNode* _lcons[_lcon_max - _lcon_min + 1];   // cached jlong constant nodes
 177   ConNode*  _zcons[_zcon_max + 1];               // cached is_zero_type nodes
 178   void init_con_caches();
 179 
 180   // Support both int and long caches because either might be an intptr_t,
 181   // so they show up frequently in address computations.
 182 
 183 public:
 184   PhaseTransform( PhaseNumber pnum );
 185   PhaseTransform( Arena *arena, PhaseNumber pnum );
 186   PhaseTransform( PhaseTransform *phase, PhaseNumber pnum );
 187 
 188   Arena*      arena()   { return _arena; }
 189   Type_Array& types()   { return _types; }
 190   // _nodes is used in varying ways by subclasses, which define local accessors
 191 
 192 public:
 193   virtual PhaseIterGVN *is_IterGVN() { return 0; }
 194 
 195   // Get a previously recorded type for the node n.
 196   // This type must already have been recorded.
 197   // If you want the type of a very new (untransformed) node,
 198   // you must use type_or_null, and test the result for NULL.
 199   const Type* type(const Node* n) const {
 200     assert(n != NULL, "must not be null");
 201     const Type* t = _types.fast_lookup(n->_idx);
 202     assert(t != NULL, "must set before get");
 203     return t;
 204   }
 205   // Get a previously recorded type for the node n,
 206   // or else return NULL if there is none.
 207   const Type* type_or_null(const Node* n) const {
 208     return _types.fast_lookup(n->_idx);
 209   }
 210   // Record a type for a node.
 211   void    set_type(const Node* n, const Type *t) {
 212     assert(t != NULL, "type must not be null");
 213     _types.map(n->_idx, t);
 214   }


< prev index next >