341 } 342 st->cr(); 343 } 344 345 void Block::dump() const { 346 dump(NULL); 347 } 348 349 void Block::dump(const PhaseCFG* cfg) const { 350 dump_head(cfg); 351 for (uint i=0; i< number_of_nodes(); i++) { 352 get_node(i)->dump(); 353 } 354 tty->print("\n"); 355 } 356 #endif 357 358 PhaseCFG::PhaseCFG(Arena* arena, RootNode* root, Matcher& matcher) 359 : Phase(CFG) 360 , _block_arena(arena) 361 , _root(root) 362 , _matcher(matcher) 363 , _node_to_block_mapping(arena) 364 , _node_latency(NULL) 365 #ifndef PRODUCT 366 , _trace_opto_pipelining(TraceOptoPipelining || C->method_has_option("TraceOptoPipelining")) 367 #endif 368 #ifdef ASSERT 369 , _raw_oops(arena) 370 #endif 371 { 372 ResourceMark rm; 373 // I'll need a few machine-specific GotoNodes. Make an Ideal GotoNode, 374 // then Match it into a machine-specific Node. Then clone the machine 375 // Node on demand. 376 Node *x = new GotoNode(NULL); 377 x->init_req(0, x); 378 _goto = matcher.match_tree(x); 379 assert(_goto != NULL, ""); 380 _goto->set_req(0,_goto); | 341 } 342 st->cr(); 343 } 344 345 void Block::dump() const { 346 dump(NULL); 347 } 348 349 void Block::dump(const PhaseCFG* cfg) const { 350 dump_head(cfg); 351 for (uint i=0; i< number_of_nodes(); i++) { 352 get_node(i)->dump(); 353 } 354 tty->print("\n"); 355 } 356 #endif 357 358 PhaseCFG::PhaseCFG(Arena* arena, RootNode* root, Matcher& matcher) 359 : Phase(CFG) 360 , _block_arena(arena) 361 , _regalloc(NULL) 362 , _scheduling_for_pressure(false) 363 , _root(root) 364 , _matcher(matcher) 365 , _node_to_block_mapping(arena) 366 , _node_latency(NULL) 367 #ifndef PRODUCT 368 , _trace_opto_pipelining(TraceOptoPipelining || C->method_has_option("TraceOptoPipelining")) 369 #endif 370 #ifdef ASSERT 371 , _raw_oops(arena) 372 #endif 373 { 374 ResourceMark rm; 375 // I'll need a few machine-specific GotoNodes. Make an Ideal GotoNode, 376 // then Match it into a machine-specific Node. Then clone the machine 377 // Node on demand. 378 Node *x = new GotoNode(NULL); 379 x->init_req(0, x); 380 _goto = matcher.match_tree(x); 381 assert(_goto != NULL, ""); 382 _goto->set_req(0,_goto); |