Lines Matching refs:sub
1090 // Check if 'this' control node dominates or equal to 'sub' control node.
1094 bool Node::dominates(Node* sub, Node_List &nlist) {
1096 assert(sub != NULL && sub->is_CFG(), "expecting control");
1101 Node* orig_sub = sub;
1106 // Walk 'sub' backward up the chain to 'dom', watching for regions.
1113 while (sub != NULL) {
1114 if (sub->is_top()) break; // Conservative answer for dead code.
1115 if (sub == dom) {
1129 if (sub->is_Start() || sub->is_Root()) {
1135 Node* up = sub->in(0);
1137 up = sub->find_exact_control(up);
1138 // If sub == up, we found a self-loop. Try to push past it.
1139 if (sub == up && sub->is_Loop()) {
1141 up = sub->in(1); // in(LoopNode::EntryControl);
1142 } else if (sub == up && sub->is_Region() && sub->req() != 3) {
1146 up = sub->in(1);
1147 } else if (sub == up && sub->is_Region()) {
1156 // loop-back edge from 'sub' back into the body of the loop,
1157 // and worked our way up again to the loop header 'sub'.
1163 if (visited == sub) {
1178 assert(up == sub, "");
1180 for (uint i = 1; i < sub->req(); i++) {
1181 Node* in = sub->in(i);
1182 if (in != NULL && !in->is_top() && in != sub) {
1192 nlist.push((Node*)((intptr_t)sub + (region_was_visited_before ? 1 : 0)));
1195 if (up == sub) {
1205 sub = up;