< prev index next >

src/hotspot/share/opto/superword.hpp

Print this page




 330   Arena* arena()                   { return _arena; }
 331 
 332   Node* bb()                       { return _bb; }
 333   void  set_bb(Node* bb)           { _bb = bb; }
 334 
 335   void set_lpt(IdealLoopTree* lpt) { _lpt = lpt; }
 336 
 337   LoopNode* lp()                   { return _lp; }
 338   void      set_lp(LoopNode* lp)   { _lp = lp;
 339                                      _iv = lp->as_CountedLoop()->phi()->as_Phi(); }
 340   int      iv_stride()             { return lp()->as_CountedLoop()->stride_con(); }
 341 
 342   int vector_width(Node* n) {
 343     BasicType bt = velt_basic_type(n);
 344     return MIN2(ABS(iv_stride()), Matcher::max_vector_size(bt));
 345   }
 346   int vector_width_in_bytes(Node* n) {
 347     BasicType bt = velt_basic_type(n);
 348     return vector_width(n)*type2aelembytes(bt);
 349   }

 350   MemNode* align_to_ref()            { return _align_to_ref; }
 351   void  set_align_to_ref(MemNode* m) { _align_to_ref = m; }
 352 
 353   Node* ctrl(Node* n) const { return _phase->has_ctrl(n) ? _phase->get_ctrl(n) : n; }
 354 
 355   // block accessors
 356   bool in_bb(Node* n)      { return n != NULL && n->outcnt() > 0 && ctrl(n) == _bb; }
 357   int  bb_idx(Node* n)     { assert(in_bb(n), "must be"); return _bb_idx.at(n->_idx); }
 358   void set_bb_idx(Node* n, int i) { _bb_idx.at_put_grow(n->_idx, i); }
 359 
 360   // visited set accessors
 361   void visited_clear()           { _visited.Clear(); }
 362   void visited_set(Node* n)      { return _visited.set(bb_idx(n)); }
 363   int visited_test(Node* n)      { return _visited.test(bb_idx(n)); }
 364   int visited_test_set(Node* n)  { return _visited.test_set(bb_idx(n)); }
 365   void post_visited_clear()      { _post_visited.Clear(); }
 366   void post_visited_set(Node* n) { return _post_visited.set(bb_idx(n)); }
 367   int post_visited_test(Node* n) { return _post_visited.test(bb_idx(n)); }
 368 
 369   // Ensure node_info contains element "i"




 330   Arena* arena()                   { return _arena; }
 331 
 332   Node* bb()                       { return _bb; }
 333   void  set_bb(Node* bb)           { _bb = bb; }
 334 
 335   void set_lpt(IdealLoopTree* lpt) { _lpt = lpt; }
 336 
 337   LoopNode* lp()                   { return _lp; }
 338   void      set_lp(LoopNode* lp)   { _lp = lp;
 339                                      _iv = lp->as_CountedLoop()->phi()->as_Phi(); }
 340   int      iv_stride()             { return lp()->as_CountedLoop()->stride_con(); }
 341 
 342   int vector_width(Node* n) {
 343     BasicType bt = velt_basic_type(n);
 344     return MIN2(ABS(iv_stride()), Matcher::max_vector_size(bt));
 345   }
 346   int vector_width_in_bytes(Node* n) {
 347     BasicType bt = velt_basic_type(n);
 348     return vector_width(n)*type2aelembytes(bt);
 349   }
 350   int get_vw_bytes_special(MemNode* s);
 351   MemNode* align_to_ref()            { return _align_to_ref; }
 352   void  set_align_to_ref(MemNode* m) { _align_to_ref = m; }
 353 
 354   Node* ctrl(Node* n) const { return _phase->has_ctrl(n) ? _phase->get_ctrl(n) : n; }
 355 
 356   // block accessors
 357   bool in_bb(Node* n)      { return n != NULL && n->outcnt() > 0 && ctrl(n) == _bb; }
 358   int  bb_idx(Node* n)     { assert(in_bb(n), "must be"); return _bb_idx.at(n->_idx); }
 359   void set_bb_idx(Node* n, int i) { _bb_idx.at_put_grow(n->_idx, i); }
 360 
 361   // visited set accessors
 362   void visited_clear()           { _visited.Clear(); }
 363   void visited_set(Node* n)      { return _visited.set(bb_idx(n)); }
 364   int visited_test(Node* n)      { return _visited.test(bb_idx(n)); }
 365   int visited_test_set(Node* n)  { return _visited.test_set(bb_idx(n)); }
 366   void post_visited_clear()      { _post_visited.Clear(); }
 367   void post_visited_set(Node* n) { return _post_visited.set(bb_idx(n)); }
 368   int post_visited_test(Node* n) { return _post_visited.test(bb_idx(n)); }
 369 
 370   // Ensure node_info contains element "i"


< prev index next >