-
Bug
-
Resolution: Fixed
-
P5
-
openjdk7u, openjdk8u, 9
-
b23
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8208910 | 8u201 | Tobias Hartmann | P5 | Resolved | Fixed | b01 |
JDK-8205425 | 8u192 | Tobias Hartmann | P5 | Resolved | Fixed | b01 |
JDK-8216730 | emb-8u201 | Tobias Hartmann | P5 | Resolved | Fixed | master |
JDK-8213350 | 7u221 | Tobias Hartmann | P5 | Resolved | Fixed | b01 |
JDK-8213787 | 7u211 | Tobias Hartmann | P5 | Resolved | Fixed | b04 |
JDK-8219267 | openjdk7u | Tobias Hartmann | P5 | Resolved | Fixed | master |
compile.cpp verify_graph_edges uses "bool" as "int"
instead of:
void Compile::verify_graph_edges(bool no_dead_code) {
if (VerifyGraphEdges) {
ResourceArea *area = Thread::current()->resource_area();
Unique_Node_List visited(area);
// Call recursive graph walk to check edges
_root->verify_edges(visited);
if (no_dead_code) {
// Now make sure that no visited node is used by an unvisited node.
bool dead_nodes = 0;
Unique_Node_List checked(area);
while (visited.size() > 0) {
Node* n = visited.pop();
checked.push(n);
for (uint i = 0; i < n->outcnt(); i++) {
Node* use = n->raw_out(i);
if (checked.member(use)) continue; // already checked
if (visited.member(use)) continue; // already in the graph
if (use->is_Con()) continue; // a dead ConNode is OK
// At this point, we have found a dead node which is DU-reachable.
if (dead_nodes++ == 0)
tty->print_cr("*** Dead nodes reachable via DU edges:");
use->dump(2);
tty->print_cr("---");
checked.push(use); // No repeats; pretend it is now checked.
}
}
assert(dead_nodes == 0, "using nodes must be reachable from root");
}
}
}
should be:
void Compile::verify_graph_edges(bool no_dead_code) {
if (VerifyGraphEdges) {
ResourceArea *area = Thread::current()->resource_area();
Unique_Node_List visited(area);
// Call recursive graph walk to check edges
_root->verify_edges(visited);
if (no_dead_code) {
// Now make sure that no visited node is used by an unvisited node.
int dead_nodes = 0;
Unique_Node_List checked(area);
while (visited.size() > 0) {
Node* n = visited.pop();
checked.push(n);
for (uint i = 0; i < n->outcnt(); i++) {
Node* use = n->raw_out(i);
if (checked.member(use)) continue; // already checked
if (visited.member(use)) continue; // already in the graph
if (use->is_Con()) continue; // a dead ConNode is OK
// At this point, we have found a dead node which is DU-reachable.
if (dead_nodes++ == 0)
tty->print_cr("*** Dead nodes reachable via DU edges:");
use->dump(2);
tty->print_cr("---");
checked.push(use); // No repeats; pretend it is now checked.
}
}
assert(dead_nodes == 0, "using nodes must be reachable from root");
}
}
}
instead of:
void Compile::verify_graph_edges(bool no_dead_code) {
if (VerifyGraphEdges) {
ResourceArea *area = Thread::current()->resource_area();
Unique_Node_List visited(area);
// Call recursive graph walk to check edges
_root->verify_edges(visited);
if (no_dead_code) {
// Now make sure that no visited node is used by an unvisited node.
bool dead_nodes = 0;
Unique_Node_List checked(area);
while (visited.size() > 0) {
Node* n = visited.pop();
checked.push(n);
for (uint i = 0; i < n->outcnt(); i++) {
Node* use = n->raw_out(i);
if (checked.member(use)) continue; // already checked
if (visited.member(use)) continue; // already in the graph
if (use->is_Con()) continue; // a dead ConNode is OK
// At this point, we have found a dead node which is DU-reachable.
if (dead_nodes++ == 0)
tty->print_cr("*** Dead nodes reachable via DU edges:");
use->dump(2);
tty->print_cr("---");
checked.push(use); // No repeats; pretend it is now checked.
}
}
assert(dead_nodes == 0, "using nodes must be reachable from root");
}
}
}
should be:
void Compile::verify_graph_edges(bool no_dead_code) {
if (VerifyGraphEdges) {
ResourceArea *area = Thread::current()->resource_area();
Unique_Node_List visited(area);
// Call recursive graph walk to check edges
_root->verify_edges(visited);
if (no_dead_code) {
// Now make sure that no visited node is used by an unvisited node.
int dead_nodes = 0;
Unique_Node_List checked(area);
while (visited.size() > 0) {
Node* n = visited.pop();
checked.push(n);
for (uint i = 0; i < n->outcnt(); i++) {
Node* use = n->raw_out(i);
if (checked.member(use)) continue; // already checked
if (visited.member(use)) continue; // already in the graph
if (use->is_Con()) continue; // a dead ConNode is OK
// At this point, we have found a dead node which is DU-reachable.
if (dead_nodes++ == 0)
tty->print_cr("*** Dead nodes reachable via DU edges:");
use->dump(2);
tty->print_cr("---");
checked.push(use); // No repeats; pretend it is now checked.
}
}
assert(dead_nodes == 0, "using nodes must be reachable from root");
}
}
}
- backported by
-
JDK-8205425 compile.cpp verify_graph_edges uses "bool" as "int"
-
- Resolved
-
-
JDK-8208910 compile.cpp verify_graph_edges uses "bool" as "int"
-
- Resolved
-
-
JDK-8213350 compile.cpp verify_graph_edges uses "bool" as "int"
-
- Resolved
-
-
JDK-8213787 compile.cpp verify_graph_edges uses "bool" as "int"
-
- Resolved
-
-
JDK-8216730 compile.cpp verify_graph_edges uses "bool" as "int"
-
- Resolved
-
-
JDK-8219267 compile.cpp verify_graph_edges uses "bool" as "int"
-
- Resolved
-
(1 backported by)