src/share/vm/opto/superword.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6879921 Cdiff src/share/vm/opto/superword.cpp
src/share/vm/opto/superword.cpp
Print this page
*** 471,480 ****
--- 471,486 ----
//------------------------------stmts_can_pack---------------------------
// Can s1 and s2 be in a pack with s1 immediately preceding s2 and
// s1 aligned at "align"
bool SuperWord::stmts_can_pack(Node* s1, Node* s2, int align) {
+
+ // Do not use superword for non-primitives
+ if((s1->is_Mem() && !is_java_primitive(s1->as_Mem()->memory_type())) ||
+ (s2->is_Mem() && !is_java_primitive(s2->as_Mem()->memory_type())))
+ return false;
+
if (isomorphic(s1, s2)) {
if (independent(s1, s2)) {
if (!exists_at(s1, 0) && !exists_at(s2, 1)) {
if (!s1->is_Mem() || are_adjacent_refs(s1, s2)) {
int s1_align = alignment(s1);
src/share/vm/opto/superword.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File