< prev index next >

hotspot/src/share/vm/opto/gcm.cpp

Print this page




1428   }
1429   _regalloc = NULL;
1430 
1431   // If we inserted any instructions between a Call and his CatchNode,
1432   // clone the instructions on all paths below the Catch.
1433   for (uint i = 0; i < number_of_blocks(); i++) {
1434     Block* block = get_block(i);
1435     call_catch_cleanup(block);
1436   }
1437 
1438 #ifndef PRODUCT
1439   if (trace_opto_pipelining()) {
1440     tty->print("\n---- After GlobalCodeMotion ----\n");
1441     for (uint i = 0; i < number_of_blocks(); i++) {
1442       Block* block = get_block(i);
1443       block->dump();
1444     }
1445   }
1446 #endif
1447   // Dead.
1448   _node_latency = (GrowableArray<uint> *)0xdeadbeef;
1449 }
1450 
1451 bool PhaseCFG::do_global_code_motion() {
1452 
1453   build_dominator_tree();
1454   if (C->failing()) {
1455     return false;
1456   }
1457 
1458   NOT_PRODUCT( C->verify_graph_edges(); )
1459 
1460   estimate_block_frequency();
1461 
1462   global_code_motion();
1463 
1464   if (C->failing()) {
1465     return false;
1466   }
1467 
1468   return true;




1428   }
1429   _regalloc = NULL;
1430 
1431   // If we inserted any instructions between a Call and his CatchNode,
1432   // clone the instructions on all paths below the Catch.
1433   for (uint i = 0; i < number_of_blocks(); i++) {
1434     Block* block = get_block(i);
1435     call_catch_cleanup(block);
1436   }
1437 
1438 #ifndef PRODUCT
1439   if (trace_opto_pipelining()) {
1440     tty->print("\n---- After GlobalCodeMotion ----\n");
1441     for (uint i = 0; i < number_of_blocks(); i++) {
1442       Block* block = get_block(i);
1443       block->dump();
1444     }
1445   }
1446 #endif
1447   // Dead.
1448   _node_latency = (GrowableArray<uint> *)(uintptr_t)0xdeadbeef;
1449 }
1450 
1451 bool PhaseCFG::do_global_code_motion() {
1452 
1453   build_dominator_tree();
1454   if (C->failing()) {
1455     return false;
1456   }
1457 
1458   NOT_PRODUCT( C->verify_graph_edges(); )
1459 
1460   estimate_block_frequency();
1461 
1462   global_code_motion();
1463 
1464   if (C->failing()) {
1465     return false;
1466   }
1467 
1468   return true;


< prev index next >