Mercurial > hg > truffle
comparison src/share/vm/opto/superword.cpp @ 987:00977607da34
6879921: CTW failure jdk6_18/hotspot/src/share/vm/utilities/globalDefinitions.cpp:268
Summary: filter out non-primitives before deciding whether two ops can be packed
Reviewed-by: kvn, never
author | cfang |
---|---|
date | Tue, 15 Sep 2009 11:09:34 -0700 |
parents | 685e959d09ea |
children | 73a726751507 |
comparison
equal
deleted
inserted
replaced
986:62001a362ce9 | 987:00977607da34 |
---|---|
471 | 471 |
472 //------------------------------stmts_can_pack--------------------------- | 472 //------------------------------stmts_can_pack--------------------------- |
473 // Can s1 and s2 be in a pack with s1 immediately preceding s2 and | 473 // Can s1 and s2 be in a pack with s1 immediately preceding s2 and |
474 // s1 aligned at "align" | 474 // s1 aligned at "align" |
475 bool SuperWord::stmts_can_pack(Node* s1, Node* s2, int align) { | 475 bool SuperWord::stmts_can_pack(Node* s1, Node* s2, int align) { |
476 | |
477 // Do not use superword for non-primitives | |
478 if((s1->is_Mem() && !is_java_primitive(s1->as_Mem()->memory_type())) || | |
479 (s2->is_Mem() && !is_java_primitive(s2->as_Mem()->memory_type()))) | |
480 return false; | |
481 | |
476 if (isomorphic(s1, s2)) { | 482 if (isomorphic(s1, s2)) { |
477 if (independent(s1, s2)) { | 483 if (independent(s1, s2)) { |
478 if (!exists_at(s1, 0) && !exists_at(s2, 1)) { | 484 if (!exists_at(s1, 0) && !exists_at(s2, 1)) { |
479 if (!s1->is_Mem() || are_adjacent_refs(s1, s2)) { | 485 if (!s1->is_Mem() || are_adjacent_refs(s1, s2)) { |
480 int s1_align = alignment(s1); | 486 int s1_align = alignment(s1); |