src/share/vm/ci/ciTypeFlow.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6973963 Sdiff src/share/vm/ci

src/share/vm/ci/ciTypeFlow.cpp

Print this page




2574             is_root() ? 0 : this->head()->pre_order(),
2575             is_root() ? 0 : this->tail()->pre_order(),
2576             is_irreducible()?" irr":"");
2577   st->print(" defs: ");
2578   def_locals()->print_on(st, _head->outer()->method()->max_locals());
2579   st->cr();
2580   for (Loop* ch = child(); ch != NULL; ch = ch->sibling())
2581     ch->print(st, indent+2);
2582 }
2583 #endif
2584 
2585 // ------------------------------------------------------------------
2586 // ciTypeFlow::df_flow_types
2587 //
2588 // Perform the depth first type flow analysis. Helper for flow_types.
2589 void ciTypeFlow::df_flow_types(Block* start,
2590                                bool do_flow,
2591                                StateVector* temp_vector,
2592                                JsrSet* temp_set) {
2593   int dft_len = 100;
2594   GrowableArray<Block*> stk(arena(), dft_len, 0, NULL);
2595 
2596   ciBlock* dummy = _methodBlocks->make_dummy_block();
2597   JsrSet* root_set = new JsrSet(NULL, 0);
2598   Block* root_head = new (arena()) Block(this, dummy, root_set);
2599   Block* root_tail = new (arena()) Block(this, dummy, root_set);
2600   root_head->set_pre_order(0);
2601   root_head->set_post_order(0);
2602   root_tail->set_pre_order(max_jint);
2603   root_tail->set_post_order(max_jint);
2604   set_loop_tree_root(new (arena()) Loop(root_head, root_tail));
2605 
2606   stk.push(start);
2607 
2608   _next_pre_order = 0;  // initialize pre_order counter
2609   _rpo_list = NULL;
2610   int next_po = 0;      // initialize post_order counter
2611 
2612   // Compute RPO and the control flow graph
2613   int size;
2614   while ((size = stk.length()) > 0) {




2574             is_root() ? 0 : this->head()->pre_order(),
2575             is_root() ? 0 : this->tail()->pre_order(),
2576             is_irreducible()?" irr":"");
2577   st->print(" defs: ");
2578   def_locals()->print_on(st, _head->outer()->method()->max_locals());
2579   st->cr();
2580   for (Loop* ch = child(); ch != NULL; ch = ch->sibling())
2581     ch->print(st, indent+2);
2582 }
2583 #endif
2584 
2585 // ------------------------------------------------------------------
2586 // ciTypeFlow::df_flow_types
2587 //
2588 // Perform the depth first type flow analysis. Helper for flow_types.
2589 void ciTypeFlow::df_flow_types(Block* start,
2590                                bool do_flow,
2591                                StateVector* temp_vector,
2592                                JsrSet* temp_set) {
2593   int dft_len = 100;
2594   GrowableArray<Block*> stk(dft_len);
2595 
2596   ciBlock* dummy = _methodBlocks->make_dummy_block();
2597   JsrSet* root_set = new JsrSet(NULL, 0);
2598   Block* root_head = new (arena()) Block(this, dummy, root_set);
2599   Block* root_tail = new (arena()) Block(this, dummy, root_set);
2600   root_head->set_pre_order(0);
2601   root_head->set_post_order(0);
2602   root_tail->set_pre_order(max_jint);
2603   root_tail->set_post_order(max_jint);
2604   set_loop_tree_root(new (arena()) Loop(root_head, root_tail));
2605 
2606   stk.push(start);
2607 
2608   _next_pre_order = 0;  // initialize pre_order counter
2609   _rpo_list = NULL;
2610   int next_po = 0;      // initialize post_order counter
2611 
2612   // Compute RPO and the control flow graph
2613   int size;
2614   while ((size = stk.length()) > 0) {


src/share/vm/ci/ciTypeFlow.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File