2392 TracePhase tp("peephole", &timers[_t_peephole]); 2393 PhasePeephole peep( _regalloc, cfg); 2394 peep.do_transform(); 2395 } 2396 2397 // Do late expand if CPU requires this. 2398 if (Matcher::require_postalloc_expand) { 2399 TracePhase tp("postalloc_expand", &timers[_t_postalloc_expand]); 2400 cfg.postalloc_expand(_regalloc); 2401 } 2402 2403 // Convert Nodes to instruction bits in a buffer 2404 { 2405 TraceTime tp("output", &timers[_t_output], CITime); 2406 Output(); 2407 } 2408 2409 print_method(PHASE_FINAL_CODE); 2410 2411 // He's dead, Jim. 2412 _cfg = (PhaseCFG*)0xdeadbeef; 2413 _regalloc = (PhaseChaitin*)0xdeadbeef; 2414 } 2415 2416 2417 //------------------------------dump_asm--------------------------------------- 2418 // Dump formatted assembly 2419 #ifndef PRODUCT 2420 void Compile::dump_asm(int *pcs, uint pc_limit) { 2421 bool cut_short = false; 2422 tty->print_cr("#"); 2423 tty->print("# "); _tf->dump(); tty->cr(); 2424 tty->print_cr("#"); 2425 2426 // For all blocks 2427 int pc = 0x0; // Program counter 2428 char starts_bundle = ' '; 2429 _regalloc->dump_frame(); 2430 2431 Node *n = NULL; 2432 for (uint i = 0; i < _cfg->number_of_blocks(); i++) { 2433 if (VMThread::should_terminate()) { | 2392 TracePhase tp("peephole", &timers[_t_peephole]); 2393 PhasePeephole peep( _regalloc, cfg); 2394 peep.do_transform(); 2395 } 2396 2397 // Do late expand if CPU requires this. 2398 if (Matcher::require_postalloc_expand) { 2399 TracePhase tp("postalloc_expand", &timers[_t_postalloc_expand]); 2400 cfg.postalloc_expand(_regalloc); 2401 } 2402 2403 // Convert Nodes to instruction bits in a buffer 2404 { 2405 TraceTime tp("output", &timers[_t_output], CITime); 2406 Output(); 2407 } 2408 2409 print_method(PHASE_FINAL_CODE); 2410 2411 // He's dead, Jim. 2412 _cfg = (PhaseCFG*)(uintptr_t)0xdeadbeef; 2413 _regalloc = (PhaseChaitin*)(uintptr_t)0xdeadbeef; 2414 } 2415 2416 2417 //------------------------------dump_asm--------------------------------------- 2418 // Dump formatted assembly 2419 #ifndef PRODUCT 2420 void Compile::dump_asm(int *pcs, uint pc_limit) { 2421 bool cut_short = false; 2422 tty->print_cr("#"); 2423 tty->print("# "); _tf->dump(); tty->cr(); 2424 tty->print_cr("#"); 2425 2426 // For all blocks 2427 int pc = 0x0; // Program counter 2428 char starts_bundle = ' '; 2429 _regalloc->dump_frame(); 2430 2431 Node *n = NULL; 2432 for (uint i = 0; i < _cfg->number_of_blocks(); i++) { 2433 if (VMThread::should_terminate()) { |