223 if (n == nullptr) {
224 n = m;
225 } else {
226 assert(is_dominator(n, m) || is_dominator(m, n), "one must dominate the other");
227 n = is_dominator(n, m) ? m : n;
228 }
229 } else {
230 assert(node->is_Mach(), "sanity");
231 assert(node->as_Mach()->ideal_Opcode() == Op_StoreCM, "must be StoreCM node");
232 }
233 }
234 if (n != nullptr) {
235 assert(node->in(0), "control should have been set");
236 assert(is_dominator(n, node->in(0)) || is_dominator(node->in(0), n), "one must dominate the other");
237 if (!is_dominator(n, node->in(0))) {
238 node->set_req(0, n);
239 }
240 }
241
242 // process all inputs that are non null
243 for (int i = node->req()-1; i >= 0; --i) {
244 if (node->in(i) != nullptr) {
245 spstack.push(node->in(i));
246 }
247 }
248 }
249 }
250 }
251
252 #ifdef ASSERT
253 // Assert that new input b2 is dominated by all previous inputs.
254 // Check this by by seeing that it is dominated by b1, the deepest
255 // input observed until b2.
256 static void assert_dom(Block* b1, Block* b2, Node* n, const PhaseCFG* cfg) {
257 if (b1 == nullptr) return;
258 assert(b1->_dom_depth < b2->_dom_depth, "sanity");
259 Block* tmp = b2;
260 while (tmp != b1 && tmp != nullptr) {
261 tmp = tmp->_idom;
262 }
263 if (tmp != b1) {
|
223 if (n == nullptr) {
224 n = m;
225 } else {
226 assert(is_dominator(n, m) || is_dominator(m, n), "one must dominate the other");
227 n = is_dominator(n, m) ? m : n;
228 }
229 } else {
230 assert(node->is_Mach(), "sanity");
231 assert(node->as_Mach()->ideal_Opcode() == Op_StoreCM, "must be StoreCM node");
232 }
233 }
234 if (n != nullptr) {
235 assert(node->in(0), "control should have been set");
236 assert(is_dominator(n, node->in(0)) || is_dominator(node->in(0), n), "one must dominate the other");
237 if (!is_dominator(n, node->in(0))) {
238 node->set_req(0, n);
239 }
240 }
241
242 // process all inputs that are non null
243 for (int i = node->len()-1; i >= 0; --i) {
244 if (node->in(i) != nullptr) {
245 spstack.push(node->in(i));
246 }
247 }
248 }
249 }
250 }
251
252 #ifdef ASSERT
253 // Assert that new input b2 is dominated by all previous inputs.
254 // Check this by by seeing that it is dominated by b1, the deepest
255 // input observed until b2.
256 static void assert_dom(Block* b1, Block* b2, Node* n, const PhaseCFG* cfg) {
257 if (b1 == nullptr) return;
258 assert(b1->_dom_depth < b2->_dom_depth, "sanity");
259 Block* tmp = b2;
260 while (tmp != b1 && tmp != nullptr) {
261 tmp = tmp->_idom;
262 }
263 if (tmp != b1) {
|