< prev index next >

src/share/vm/opto/block.hpp

Print this page
rev 10582 : 8154135: Loop alignment may be added inside the loop body
Summary: loop alignment code may add alignment constraint to top of loop and loop head
Reviewed-by:


 180 
 181   virtual bool is_block() { return true; }
 182   float succ_prob(uint i);      // return probability of i'th successor
 183   int num_fall_throughs();      // How many fall-through candidate this block has
 184   void update_uncommon_branch(Block* un); // Lower branch prob to uncommon code
 185   bool succ_fall_through(uint i); // Is successor "i" is a fall-through candidate
 186   Block* lone_fall_through();   // Return lone fall-through Block or null
 187 
 188   Block* dom_lca(Block* that);  // Compute LCA in dominator tree.
 189 #ifdef ASSERT
 190   bool dominates(Block* that) {
 191     int dom_diff = this->_dom_depth - that->_dom_depth;
 192     if (dom_diff > 0)  return false;
 193     for (; dom_diff < 0; dom_diff++)  that = that->_idom;
 194     return this == that;
 195   }
 196 #endif
 197 
 198   // Report the alignment required by this block.  Must be a power of 2.
 199   // The previous block will insert nops to get this alignment.
 200   uint code_alignment();
 201   uint compute_loop_alignment();
 202 
 203   // BLOCK_FREQUENCY is a sentinel to mark uses of constant block frequencies.
 204   // It is currently also used to scale such frequencies relative to
 205   // FreqCountInvocations relative to the old value of 1500.
 206 #define BLOCK_FREQUENCY(f) ((f * (double) 1500) / FreqCountInvocations)
 207 
 208   // Register Pressure (estimate) for Splitting heuristic
 209   uint _reg_pressure;
 210   uint _ihrp_index;
 211   uint _freg_pressure;
 212   uint _fhrp_index;
 213 
 214   // Mark and visited bits for an LCA calculation in insert_anti_dependences.
 215   // Since they hold unique node indexes, they do not need reinitialization.
 216   node_idx_t _raise_LCA_mark;
 217   void    set_raise_LCA_mark(node_idx_t x)    { _raise_LCA_mark = x; }
 218   node_idx_t  raise_LCA_mark() const          { return _raise_LCA_mark; }
 219   node_idx_t _raise_LCA_visited;
 220   void    set_raise_LCA_visited(node_idx_t x) { _raise_LCA_visited = x; }




 180 
 181   virtual bool is_block() { return true; }
 182   float succ_prob(uint i);      // return probability of i'th successor
 183   int num_fall_throughs();      // How many fall-through candidate this block has
 184   void update_uncommon_branch(Block* un); // Lower branch prob to uncommon code
 185   bool succ_fall_through(uint i); // Is successor "i" is a fall-through candidate
 186   Block* lone_fall_through();   // Return lone fall-through Block or null
 187 
 188   Block* dom_lca(Block* that);  // Compute LCA in dominator tree.
 189 #ifdef ASSERT
 190   bool dominates(Block* that) {
 191     int dom_diff = this->_dom_depth - that->_dom_depth;
 192     if (dom_diff > 0)  return false;
 193     for (; dom_diff < 0; dom_diff++)  that = that->_idom;
 194     return this == that;
 195   }
 196 #endif
 197 
 198   // Report the alignment required by this block.  Must be a power of 2.
 199   // The previous block will insert nops to get this alignment.
 200   uint code_alignment() const;
 201   uint compute_loop_alignment();
 202 
 203   // BLOCK_FREQUENCY is a sentinel to mark uses of constant block frequencies.
 204   // It is currently also used to scale such frequencies relative to
 205   // FreqCountInvocations relative to the old value of 1500.
 206 #define BLOCK_FREQUENCY(f) ((f * (double) 1500) / FreqCountInvocations)
 207 
 208   // Register Pressure (estimate) for Splitting heuristic
 209   uint _reg_pressure;
 210   uint _ihrp_index;
 211   uint _freg_pressure;
 212   uint _fhrp_index;
 213 
 214   // Mark and visited bits for an LCA calculation in insert_anti_dependences.
 215   // Since they hold unique node indexes, they do not need reinitialization.
 216   node_idx_t _raise_LCA_mark;
 217   void    set_raise_LCA_mark(node_idx_t x)    { _raise_LCA_mark = x; }
 218   node_idx_t  raise_LCA_mark() const          { return _raise_LCA_mark; }
 219   node_idx_t _raise_LCA_visited;
 220   void    set_raise_LCA_visited(node_idx_t x) { _raise_LCA_visited = x; }


< prev index next >