< prev index next >

src/hotspot/share/opto/graphKit.cpp

Print this page




3796   Node* opq     = _gvn.transform(new Opaque1Node(C, cont));
3797   Node *bol     = _gvn.transform(new Conv2BNode(opq));
3798   IfNode* iff   = create_and_map_if(control(), bol, PROB_MAX, COUNT_UNKNOWN);
3799   Node* iffalse = _gvn.transform(new IfFalseNode(iff));
3800   C->add_predicate_opaq(opq);
3801   {
3802     PreserveJVMState pjvms(this);
3803     set_control(iffalse);
3804     inc_sp(nargs);
3805     uncommon_trap(reason, Deoptimization::Action_maybe_recompile);
3806   }
3807   Node* iftrue = _gvn.transform(new IfTrueNode(iff));
3808   set_control(iftrue);
3809 }
3810 
3811 //------------------------------add_predicate---------------------------------
3812 void GraphKit::add_predicate(int nargs) {
3813   if (UseLoopPredicate) {
3814     add_predicate_impl(Deoptimization::Reason_predicate, nargs);
3815   }



3816   // loop's limit check predicate should be near the loop.
3817   add_predicate_impl(Deoptimization::Reason_loop_limit_check, nargs);
3818 }
3819 
3820 //----------------------------- store barriers ----------------------------
3821 #define __ ideal.
3822 
3823 bool GraphKit::use_ReduceInitialCardMarks() {
3824   BarrierSet *bs = BarrierSet::barrier_set();
3825   return bs->is_a(BarrierSet::CardTableBarrierSet)
3826          && barrier_set_cast<CardTableBarrierSet>(bs)->can_elide_tlab_store_barriers()
3827          && ReduceInitialCardMarks;
3828 }
3829 
3830 void GraphKit::sync_kit(IdealKit& ideal) {
3831   set_all_memory(__ merged_memory());
3832   set_i_o(__ i_o());
3833   set_control(__ ctrl());
3834 }
3835 




3796   Node* opq     = _gvn.transform(new Opaque1Node(C, cont));
3797   Node *bol     = _gvn.transform(new Conv2BNode(opq));
3798   IfNode* iff   = create_and_map_if(control(), bol, PROB_MAX, COUNT_UNKNOWN);
3799   Node* iffalse = _gvn.transform(new IfFalseNode(iff));
3800   C->add_predicate_opaq(opq);
3801   {
3802     PreserveJVMState pjvms(this);
3803     set_control(iffalse);
3804     inc_sp(nargs);
3805     uncommon_trap(reason, Deoptimization::Action_maybe_recompile);
3806   }
3807   Node* iftrue = _gvn.transform(new IfTrueNode(iff));
3808   set_control(iftrue);
3809 }
3810 
3811 //------------------------------add_predicate---------------------------------
3812 void GraphKit::add_predicate(int nargs) {
3813   if (UseLoopPredicate) {
3814     add_predicate_impl(Deoptimization::Reason_predicate, nargs);
3815   }
3816   if (UseProfiledLoopPredicate) {
3817     add_predicate_impl(Deoptimization::Reason_profile_predicate, nargs);
3818   }
3819   // loop's limit check predicate should be near the loop.
3820   add_predicate_impl(Deoptimization::Reason_loop_limit_check, nargs);
3821 }
3822 
3823 //----------------------------- store barriers ----------------------------
3824 #define __ ideal.
3825 
3826 bool GraphKit::use_ReduceInitialCardMarks() {
3827   BarrierSet *bs = BarrierSet::barrier_set();
3828   return bs->is_a(BarrierSet::CardTableBarrierSet)
3829          && barrier_set_cast<CardTableBarrierSet>(bs)->can_elide_tlab_store_barriers()
3830          && ReduceInitialCardMarks;
3831 }
3832 
3833 void GraphKit::sync_kit(IdealKit& ideal) {
3834   set_all_memory(__ merged_memory());
3835   set_i_o(__ i_o());
3836   set_control(__ ctrl());
3837 }
3838 


< prev index next >