< prev index next >

src/hotspot/share/opto/loopnode.cpp

Print this page




2695           _igvn.hash_insert(n2);
2696           _igvn._worklist.push(n2);
2697           progress = true;
2698         }
2699       }
2700     }
2701   }
2702 
2703   return progress;
2704 }
2705 
2706 
2707 //=============================================================================
2708 //----------------------------build_and_optimize-------------------------------
2709 // Create a PhaseLoop.  Build the ideal Loop tree.  Map each Ideal Node to
2710 // its corresponding LoopNode.  If 'optimize' is true, do some loop cleanups.
2711 void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) {
2712   bool do_split_ifs = (mode == LoopOptsDefault || mode == LoopOptsLastRound);
2713   bool skip_loop_opts = (mode == LoopOptsNone);
2714 
2715   ResourceMark rm;
2716 
2717   int old_progress = C->major_progress();
2718   uint orig_worklist_size = _igvn._worklist.size();
2719 
2720   // Reset major-progress flag for the driver's heuristics
2721   C->clear_major_progress();
2722 
2723 #ifndef PRODUCT
2724   // Capture for later assert
2725   uint unique = C->unique();
2726   _loop_invokes++;
2727   _loop_work += unique;
2728 #endif
2729 
2730   // True if the method has at least 1 irreducible loop
2731   _has_irreducible_loops = false;
2732 
2733   _created_loop_node = false;
2734 
2735   Arena *a = Thread::current()->resource_area();
2736   VectorSet visited(a);




2695           _igvn.hash_insert(n2);
2696           _igvn._worklist.push(n2);
2697           progress = true;
2698         }
2699       }
2700     }
2701   }
2702 
2703   return progress;
2704 }
2705 
2706 
2707 //=============================================================================
2708 //----------------------------build_and_optimize-------------------------------
2709 // Create a PhaseLoop.  Build the ideal Loop tree.  Map each Ideal Node to
2710 // its corresponding LoopNode.  If 'optimize' is true, do some loop cleanups.
2711 void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) {
2712   bool do_split_ifs = (mode == LoopOptsDefault || mode == LoopOptsLastRound);
2713   bool skip_loop_opts = (mode == LoopOptsNone);
2714 


2715   int old_progress = C->major_progress();
2716   uint orig_worklist_size = _igvn._worklist.size();
2717 
2718   // Reset major-progress flag for the driver's heuristics
2719   C->clear_major_progress();
2720 
2721 #ifndef PRODUCT
2722   // Capture for later assert
2723   uint unique = C->unique();
2724   _loop_invokes++;
2725   _loop_work += unique;
2726 #endif
2727 
2728   // True if the method has at least 1 irreducible loop
2729   _has_irreducible_loops = false;
2730 
2731   _created_loop_node = false;
2732 
2733   Arena *a = Thread::current()->resource_area();
2734   VectorSet visited(a);


< prev index next >