< prev index next >

src/share/vm/opto/block.cpp

Print this page




 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);


< prev index next >