< prev index next >

src/hotspot/share/opto/output.cpp

Print this page
rev 48394 : [RFC] MachSpillCopy peephole
Enable OptoPeephole by default on AArch64.
Add manually defined peephole() method for MachSpillCopy node.


 134       for (uint j = 0; j < block->number_of_nodes(); j++) {
 135         Node* n = block->get_node(j);
 136         OptoReg::Name reg = _regalloc->get_reg_first(n);
 137         tty->print(" %-6s ", reg >= 0 && reg < REG_COUNT ? Matcher::regName[reg] : "");
 138         n->dump();
 139       }
 140     }
 141   }
 142 #endif
 143 
 144   if (failing()) {
 145     return;
 146   }
 147 
 148   BuildOopMaps();
 149 
 150   if (failing())  {
 151     return;
 152   }
 153 







 154   fill_buffer(cb, blk_starts);
 155 }
 156 
 157 bool Compile::need_stack_bang(int frame_size_in_bytes) const {
 158   // Determine if we need to generate a stack overflow check.
 159   // Do it if the method is not a stub function and
 160   // has java calls or has frame size > vm_page_size/8.
 161   // The debug VM checks that deoptimization doesn't trigger an
 162   // unexpected stack overflow (compiled method stack banging should
 163   // guarantee it doesn't happen) so we always need the stack bang in
 164   // a debug VM.
 165   return (UseStackBanging && stub_function() == NULL &&
 166           (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3
 167            DEBUG_ONLY(|| true)));
 168 }
 169 
 170 bool Compile::need_register_stack_bang() const {
 171   // Determine if we need to generate a register stack overflow check.
 172   // This is only used on architectures which have split register
 173   // and memory stacks (ie. IA64).




 134       for (uint j = 0; j < block->number_of_nodes(); j++) {
 135         Node* n = block->get_node(j);
 136         OptoReg::Name reg = _regalloc->get_reg_first(n);
 137         tty->print(" %-6s ", reg >= 0 && reg < REG_COUNT ? Matcher::regName[reg] : "");
 138         n->dump();
 139       }
 140     }
 141   }
 142 #endif
 143 
 144   if (failing()) {
 145     return;
 146   }
 147 
 148   BuildOopMaps();
 149 
 150   if (failing())  {
 151     return;
 152   }
 153 
 154   // Apply peephole optimizations
 155   if( OptoPeephole ) {
 156     TracePhase tp("peephole", &timers[_t_peephole]);
 157     PhasePeephole peep( _regalloc, *_cfg);
 158     peep.do_transform();
 159   }
 160 
 161   fill_buffer(cb, blk_starts);
 162 }
 163 
 164 bool Compile::need_stack_bang(int frame_size_in_bytes) const {
 165   // Determine if we need to generate a stack overflow check.
 166   // Do it if the method is not a stub function and
 167   // has java calls or has frame size > vm_page_size/8.
 168   // The debug VM checks that deoptimization doesn't trigger an
 169   // unexpected stack overflow (compiled method stack banging should
 170   // guarantee it doesn't happen) so we always need the stack bang in
 171   // a debug VM.
 172   return (UseStackBanging && stub_function() == NULL &&
 173           (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3
 174            DEBUG_ONLY(|| true)));
 175 }
 176 
 177 bool Compile::need_register_stack_bang() const {
 178   // Determine if we need to generate a register stack overflow check.
 179   // This is only used on architectures which have split register
 180   // and memory stacks (ie. IA64).


< prev index next >