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

src/share/vm/opto/loopnode.hpp

Print this page




 322 };
 323 
 324 // -----------------------------IdealLoopTree----------------------------------
 325 class IdealLoopTree : public ResourceObj {
 326 public:
 327   IdealLoopTree *_parent;       // Parent in loop tree
 328   IdealLoopTree *_next;         // Next sibling in loop tree
 329   IdealLoopTree *_child;        // First child in loop tree
 330 
 331   // The head-tail backedge defines the loop.
 332   // If tail is NULL then this loop has multiple backedges as part of the
 333   // same loop.  During cleanup I'll peel off the multiple backedges; merge
 334   // them at the loop bottom and flow 1 real backedge into the loop.
 335   Node *_head;                  // Head of loop
 336   Node *_tail;                  // Tail of loop
 337   inline Node *tail();          // Handle lazy update of _tail field
 338   PhaseIdealLoop* _phase;
 339 
 340   Node_List _body;              // Loop body for inner loops
 341 
 342   uint8 _nest;                  // Nesting depth
 343   uint8 _irreducible:1,         // True if irreducible
 344         _has_call:1,            // True if has call safepoint
 345         _has_sfpt:1,            // True if has non-call safepoint
 346         _rce_candidate:1;       // True if candidate for range check elimination
 347 
 348   Node_List* _safepts;          // List of safepoints in this loop
 349   Node_List* _required_safept;  // A inner loop cannot delete these safepts;
 350   bool  _allow_optimizations;   // Allow loop optimizations
 351 
 352   IdealLoopTree( PhaseIdealLoop* phase, Node *head, Node *tail )
 353     : _parent(0), _next(0), _child(0),
 354       _head(head), _tail(tail),
 355       _phase(phase),
 356       _safepts(NULL),
 357       _required_safept(NULL),
 358       _allow_optimizations(true),
 359       _nest(0), _irreducible(0), _has_call(0), _has_sfpt(0), _rce_candidate(0)
 360   { }
 361 
 362   // Is 'l' a member of 'this'?
 363   int is_member( const IdealLoopTree *l ) const; // Test for nested membership




 322 };
 323 
 324 // -----------------------------IdealLoopTree----------------------------------
 325 class IdealLoopTree : public ResourceObj {
 326 public:
 327   IdealLoopTree *_parent;       // Parent in loop tree
 328   IdealLoopTree *_next;         // Next sibling in loop tree
 329   IdealLoopTree *_child;        // First child in loop tree
 330 
 331   // The head-tail backedge defines the loop.
 332   // If tail is NULL then this loop has multiple backedges as part of the
 333   // same loop.  During cleanup I'll peel off the multiple backedges; merge
 334   // them at the loop bottom and flow 1 real backedge into the loop.
 335   Node *_head;                  // Head of loop
 336   Node *_tail;                  // Tail of loop
 337   inline Node *tail();          // Handle lazy update of _tail field
 338   PhaseIdealLoop* _phase;
 339 
 340   Node_List _body;              // Loop body for inner loops
 341 
 342   uint8_t _nest;                // Nesting depth
 343   uint8_t _irreducible:1,       // True if irreducible
 344           _has_call:1,          // True if has call safepoint
 345           _has_sfpt:1,          // True if has non-call safepoint
 346           _rce_candidate:1;     // True if candidate for range check elimination
 347 
 348   Node_List* _safepts;          // List of safepoints in this loop
 349   Node_List* _required_safept;  // A inner loop cannot delete these safepts;
 350   bool  _allow_optimizations;   // Allow loop optimizations
 351 
 352   IdealLoopTree( PhaseIdealLoop* phase, Node *head, Node *tail )
 353     : _parent(0), _next(0), _child(0),
 354       _head(head), _tail(tail),
 355       _phase(phase),
 356       _safepts(NULL),
 357       _required_safept(NULL),
 358       _allow_optimizations(true),
 359       _nest(0), _irreducible(0), _has_call(0), _has_sfpt(0), _rce_candidate(0)
 360   { }
 361 
 362   // Is 'l' a member of 'this'?
 363   int is_member( const IdealLoopTree *l ) const; // Test for nested membership


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