Mercurial > hg > graal-compiler
comparison src/share/vm/opto/superword.hpp @ 6183:6f8f439e247d
7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear()
Summary: disable vectorization of a memory access with more elements per vector than one which is used for alignment on sparc
Reviewed-by: twisti
author | kvn |
---|---|
date | Tue, 19 Jun 2012 15:12:56 -0700 |
parents | 8c92982cbbc4 |
children | 8ae8f9dd7099 |
comparison
equal
deleted
inserted
replaced
6182:765ee2d1674b | 6183:6f8f439e247d |
---|---|
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 |