comparison src/share/vm/opto/superword.cpp @ 23014:84d55f179e24

8079343: Crash in PhaseIdealLoop with "assert(!had_error) failed: bad dominance" Summary: C2 should not try to vectorize loops with loop variant vector base address. Reviewed-by: kvn
author thartmann
date Mon, 11 May 2015 07:44:46 +0200
parents a1b5fe34c604
children 95dbbc0431d9
comparison
equal deleted inserted replaced
23013:a1b5fe34c604 23014:84d55f179e24
2247 assert(!valid(), "too complex"); 2247 assert(!valid(), "too complex");
2248 return; 2248 return;
2249 } 2249 }
2250 // Match AddP(base, AddP(ptr, k*iv [+ invariant]), constant) 2250 // Match AddP(base, AddP(ptr, k*iv [+ invariant]), constant)
2251 Node* base = adr->in(AddPNode::Base); 2251 Node* base = adr->in(AddPNode::Base);
2252 // The base address should be loop invariant
2253 if (!invariant(base)) {
2254 assert(!valid(), "base address is loop variant");
2255 return;
2256 }
2252 //unsafe reference could not be aligned appropriately without runtime checking 2257 //unsafe reference could not be aligned appropriately without runtime checking
2253 if (base == NULL || base->bottom_type() == Type::TOP) { 2258 if (base == NULL || base->bottom_type() == Type::TOP) {
2254 assert(!valid(), "unsafe access"); 2259 assert(!valid(), "unsafe access");
2255 return; 2260 return;
2256 } 2261 }