提交 1fd703e1 编写于 作者: N never

6921992: failure in verify scheduling after 6792161

Reviewed-by: kvn
上级 8c4012a7
...@@ -736,28 +736,7 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) { ...@@ -736,28 +736,7 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) {
// the flags and assumes it's dead. This keeps the (useless) // the flags and assumes it's dead. This keeps the (useless)
// flag-setting behavior alive while also keeping the (useful) // flag-setting behavior alive while also keeping the (useful)
// memory update effect. // memory update effect.
uint begin = 1; for( uint k = ((n->Opcode() == Op_SCMemProj) ? 0:1); k < n->req(); k++ ) {
uint end = n->req();
if (n->Opcode() == Op_SCMemProj) {
begin = 0;
} else if (n->is_Mach()) {
switch (n->as_Mach()->ideal_Opcode()) {
case Op_MemBarAcquire:
case Op_MemBarVolatile:
if (n->len() >= MemBarNode::Precedent + 1 &&
n->in(MemBarNode::Precedent) != NULL &&
n->in(MemBarNode::Precedent)->outcnt() == 1) {
// This membar node is the single user of it's input
// so the input won't be considered live and this node
// would get deleted during copy elimination so force
// it to be live.
end = MemBarNode::Precedent + 1;
}
break;
}
}
for( uint k = begin; k < end; k++ ) {
Node *def = n->in(k); Node *def = n->in(k);
uint x = n2lidx(def); uint x = n2lidx(def);
if( !x ) continue; if( !x ) continue;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册