提交 b50de4a5 编写于 作者: T thartmann

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
上级 f4270f2b
......@@ -2249,6 +2249,11 @@ SWPointer::SWPointer(MemNode* mem, SuperWord* slp) :
}
// Match AddP(base, AddP(ptr, k*iv [+ invariant]), constant)
Node* base = adr->in(AddPNode::Base);
// The base address should be loop invariant
if (!invariant(base)) {
assert(!valid(), "base address is loop variant");
return;
}
//unsafe reference could not be aligned appropriately without runtime checking
if (base == NULL || base->bottom_type() == Type::TOP) {
assert(!valid(), "unsafe access");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册