src/share/vm/opto/loopnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6743188 Sdiff src/share/vm/opto

src/share/vm/opto/loopnode.hpp

Print this page




 308 
 309   // Set loop nesting depth.  Accumulate has_call bits.
 310   int set_nest( uint depth );
 311 
 312   // Split out multiple fall-in edges from the loop header.  Move them to a
 313   // private RegionNode before the loop.  This becomes the loop landing pad.
 314   void split_fall_in( PhaseIdealLoop *phase, int fall_in_cnt );
 315 
 316   // Split out the outermost loop from this shared header.
 317   void split_outer_loop( PhaseIdealLoop *phase );
 318 
 319   // Merge all the backedges from the shared header into a private Region.
 320   // Feed that region as the one backedge to this loop.
 321   void merge_many_backedges( PhaseIdealLoop *phase );
 322 
 323   // Split shared headers and insert loop landing pads.
 324   // Insert a LoopNode to replace the RegionNode.
 325   // Returns TRUE if loop tree is structurally changed.
 326   bool beautify_loops( PhaseIdealLoop *phase );
 327 
 328   // Perform iteration-splitting on inner loops.  Split iterations to avoid
 329   // range checks or one-shot null checks.
 330   void iteration_split( PhaseIdealLoop *phase, Node_List &old_new );

 331 
 332   // Driver for various flavors of iteration splitting
 333   void iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_new );

 334 
 335   // Given dominators, try to find loops with calls that must always be
 336   // executed (call dominates loop tail).  These loops do not need non-call
 337   // safepoints (ncsfpt).
 338   void check_safepts(VectorSet &visited, Node_List &stack);
 339 
 340   // Allpaths backwards scan from loop tail, terminating each path at first safepoint
 341   // encountered.
 342   void allpaths_check_safepts(VectorSet &visited, Node_List &stack);
 343 
 344   // Convert to counted loops where possible
 345   void counted_loop( PhaseIdealLoop *phase );
 346 
 347   // Check for Node being a loop-breaking test
 348   Node *is_loop_exit(Node *iff) const;
 349 
 350   // Returns true if ctrl is executed on every complete iteration
 351   bool dominates_backedge(Node* ctrl);
 352 
 353   // Remove simplistic dead code from loop body




 308 
 309   // Set loop nesting depth.  Accumulate has_call bits.
 310   int set_nest( uint depth );
 311 
 312   // Split out multiple fall-in edges from the loop header.  Move them to a
 313   // private RegionNode before the loop.  This becomes the loop landing pad.
 314   void split_fall_in( PhaseIdealLoop *phase, int fall_in_cnt );
 315 
 316   // Split out the outermost loop from this shared header.
 317   void split_outer_loop( PhaseIdealLoop *phase );
 318 
 319   // Merge all the backedges from the shared header into a private Region.
 320   // Feed that region as the one backedge to this loop.
 321   void merge_many_backedges( PhaseIdealLoop *phase );
 322 
 323   // Split shared headers and insert loop landing pads.
 324   // Insert a LoopNode to replace the RegionNode.
 325   // Returns TRUE if loop tree is structurally changed.
 326   bool beautify_loops( PhaseIdealLoop *phase );
 327 
 328   // Perform iteration-splitting on inner loops.  Split iterations to
 329   // avoid range checks or one-shot null checks.  Returns false if the
 330   // current round of loop opts should stop.
 331   bool iteration_split( PhaseIdealLoop *phase, Node_List &old_new );
 332 
 333   // Driver for various flavors of iteration splitting.  Returns false
 334   // if the current round of loop opts should stop.
 335   bool iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_new );
 336 
 337   // Given dominators, try to find loops with calls that must always be
 338   // executed (call dominates loop tail).  These loops do not need non-call
 339   // safepoints (ncsfpt).
 340   void check_safepts(VectorSet &visited, Node_List &stack);
 341 
 342   // Allpaths backwards scan from loop tail, terminating each path at first safepoint
 343   // encountered.
 344   void allpaths_check_safepts(VectorSet &visited, Node_List &stack);
 345 
 346   // Convert to counted loops where possible
 347   void counted_loop( PhaseIdealLoop *phase );
 348 
 349   // Check for Node being a loop-breaking test
 350   Node *is_loop_exit(Node *iff) const;
 351 
 352   // Returns true if ctrl is executed on every complete iteration
 353   bool dominates_backedge(Node* ctrl);
 354 
 355   // Remove simplistic dead code from loop body


src/share/vm/opto/loopnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File