< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page




 404     Node* cast = range_check_cast_node(i);
 405     if (!useful.member(cast)) {
 406       remove_range_check_cast(cast);
 407     }
 408   }
 409   // Remove useless expensive nodes
 410   for (int i = C->expensive_count()-1; i >= 0; i--) {
 411     Node* n = C->expensive_node(i);
 412     if (!useful.member(n)) {
 413       remove_expensive_node(n);
 414     }
 415   }
 416   // Remove useless Opaque4 nodes
 417   for (int i = opaque4_count() - 1; i >= 0; i--) {
 418     Node* opaq = opaque4_node(i);
 419     if (!useful.member(opaq)) {
 420       remove_opaque4_node(opaq);
 421     }
 422   }
 423   BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
 424   bs->eliminate_useless_gc_barriers(useful);
 425   // clean up the late inline lists
 426   remove_useless_late_inlines(&_string_late_inlines, useful);
 427   remove_useless_late_inlines(&_boxing_late_inlines, useful);
 428   remove_useless_late_inlines(&_late_inlines, useful);
 429   debug_only(verify_graph_edges(true/*check for no_dead_code*/);)
 430 }
 431 
 432 //------------------------------frame_size_in_words-----------------------------
 433 // frame_slots in units of words
 434 int Compile::frame_size_in_words() const {
 435   // shift is 0 in LP32 and 1 in LP64
 436   const int shift = (LogBytesPerWord - LogBytesPerInt);
 437   int words = _frame_slots >> shift;
 438   assert( words << shift == _frame_slots, "frame size must be properly aligned in LP64" );
 439   return words;
 440 }
 441 
 442 // To bang the stack of this compiled method we use the stack size
 443 // that the interpreter would need in case of a deoptimization. This
 444 // removes the need to bang the stack in the deoptimization blob which




 404     Node* cast = range_check_cast_node(i);
 405     if (!useful.member(cast)) {
 406       remove_range_check_cast(cast);
 407     }
 408   }
 409   // Remove useless expensive nodes
 410   for (int i = C->expensive_count()-1; i >= 0; i--) {
 411     Node* n = C->expensive_node(i);
 412     if (!useful.member(n)) {
 413       remove_expensive_node(n);
 414     }
 415   }
 416   // Remove useless Opaque4 nodes
 417   for (int i = opaque4_count() - 1; i >= 0; i--) {
 418     Node* opaq = opaque4_node(i);
 419     if (!useful.member(opaq)) {
 420       remove_opaque4_node(opaq);
 421     }
 422   }
 423   BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
 424   bs->eliminate_useless_gc_barriers(useful, this);
 425   // clean up the late inline lists
 426   remove_useless_late_inlines(&_string_late_inlines, useful);
 427   remove_useless_late_inlines(&_boxing_late_inlines, useful);
 428   remove_useless_late_inlines(&_late_inlines, useful);
 429   debug_only(verify_graph_edges(true/*check for no_dead_code*/);)
 430 }
 431 
 432 //------------------------------frame_size_in_words-----------------------------
 433 // frame_slots in units of words
 434 int Compile::frame_size_in_words() const {
 435   // shift is 0 in LP32 and 1 in LP64
 436   const int shift = (LogBytesPerWord - LogBytesPerInt);
 437   int words = _frame_slots >> shift;
 438   assert( words << shift == _frame_slots, "frame size must be properly aligned in LP64" );
 439   return words;
 440 }
 441 
 442 // To bang the stack of this compiled method we use the stack size
 443 // that the interpreter would need in case of a deoptimization. This
 444 // removes the need to bang the stack in the deoptimization blob which


< prev index next >