262 LoopNode* lp() { return _lp; } |
262 LoopNode* lp() { return _lp; } |
263 void set_lp(LoopNode* lp) { _lp = lp; |
263 void set_lp(LoopNode* lp) { _lp = lp; |
264 _iv = lp->as_CountedLoop()->phi()->as_Phi(); } |
264 _iv = lp->as_CountedLoop()->phi()->as_Phi(); } |
265 int iv_stride() { return lp()->as_CountedLoop()->stride_con(); } |
265 int iv_stride() { return lp()->as_CountedLoop()->stride_con(); } |
266 |
266 |
267 int vector_width_in_bytes(BasicType bt) { |
267 int vector_width(Node* n) { |
268 return MIN2(ABS(iv_stride())*type2aelembytes(bt), |
268 BasicType bt = velt_basic_type(n); |
269 Matcher::vector_width_in_bytes(bt)); |
269 return MIN2(ABS(iv_stride()), Matcher::max_vector_size(bt)); |
270 } |
270 } |
271 |
271 int vector_width_in_bytes(Node* n) { |
|
272 BasicType bt = velt_basic_type(n); |
|
273 return vector_width(n)*type2aelembytes(bt); |
|
274 } |
272 MemNode* align_to_ref() { return _align_to_ref; } |
275 MemNode* align_to_ref() { return _align_to_ref; } |
273 void set_align_to_ref(MemNode* m) { _align_to_ref = m; } |
276 void set_align_to_ref(MemNode* m) { _align_to_ref = m; } |
274 |
277 |
275 Node* ctrl(Node* n) const { return _phase->has_ctrl(n) ? _phase->get_ctrl(n) : n; } |
278 Node* ctrl(Node* n) const { return _phase->has_ctrl(n) ? _phase->get_ctrl(n) : n; } |
276 |
279 |