< prev index next >

hotspot/src/share/vm/opto/superword.hpp

Print this page
rev 7350 : 8078497: C2's superword optimization causes unaligned memory accesses
Summary: Prevent vectorization of memory operations with different invariant offsets if unaligned memory accesses are not allowed.
Reviewed-by: kvn

*** 39,49 **** // Algorithm from: // // Exploiting SuperWord Level Parallelism with // Multimedia Instruction Sets // by ! // Samuel Larsen and Saman Amarasighe // MIT Laboratory for Computer Science // date // May 2000 // published in // ACM SIGPLAN Notices --- 39,49 ---- // Algorithm from: // // Exploiting SuperWord Level Parallelism with // Multimedia Instruction Sets // by ! // Samuel Larsen and Saman Amarasinghe // MIT Laboratory for Computer Science // date // May 2000 // published in // ACM SIGPLAN Notices
*** 430,440 **** MemNode* _mem; // My memory reference node SuperWord* _slp; // SuperWord class Node* _base; // NULL if unsafe nonheap reference Node* _adr; // address pointer ! jint _scale; // multipler for iv (in bytes), 0 if no loop iv jint _offset; // constant offset (in bytes) Node* _invar; // invariant offset (in bytes), NULL if none bool _negate_invar; // if true then use: (0 - _invar) PhaseIdealLoop* phase() { return _slp->phase(); } --- 430,440 ---- MemNode* _mem; // My memory reference node SuperWord* _slp; // SuperWord class Node* _base; // NULL if unsafe nonheap reference Node* _adr; // address pointer ! jint _scale; // multiplier for iv (in bytes), 0 if no loop iv jint _offset; // constant offset (in bytes) Node* _invar; // invariant offset (in bytes), NULL if none bool _negate_invar; // if true then use: (0 - _invar) PhaseIdealLoop* phase() { return _slp->phase(); }
< prev index next >