1919 assert(!valid(), "too complex"); |
1919 assert(!valid(), "too complex"); |
1920 return; |
1920 return; |
1921 } |
1921 } |
1922 // Match AddP(base, AddP(ptr, k*iv [+ invariant]), constant) |
1922 // Match AddP(base, AddP(ptr, k*iv [+ invariant]), constant) |
1923 Node* base = adr->in(AddPNode::Base); |
1923 Node* base = adr->in(AddPNode::Base); |
|
1924 //unsafe reference could not be aligned appropriately without runtime checking |
|
1925 if (base == NULL || base->bottom_type() == Type::TOP) { |
|
1926 assert(!valid(), "unsafe access"); |
|
1927 return; |
|
1928 } |
1924 for (int i = 0; i < 3; i++) { |
1929 for (int i = 0; i < 3; i++) { |
1925 if (!scaled_iv_plus_offset(adr->in(AddPNode::Offset))) { |
1930 if (!scaled_iv_plus_offset(adr->in(AddPNode::Offset))) { |
1926 assert(!valid(), "too complex"); |
1931 assert(!valid(), "too complex"); |
1927 return; |
1932 return; |
1928 } |
1933 } |