3791 set_control(iffalse);
3792 inc_sp(nargs);
3793 uncommon_trap(reason, Deoptimization::Action_maybe_recompile);
3794 }
3795 Node* iftrue = _gvn.transform(new IfTrueNode(iff));
3796 set_control(iftrue);
3797 }
3798
3799 //------------------------------add_predicate---------------------------------
3800 void GraphKit::add_predicate(int nargs) {
3801 if (UseLoopPredicate) {
3802 add_predicate_impl(Deoptimization::Reason_predicate, nargs);
3803 }
3804 // loop's limit check predicate should be near the loop.
3805 add_predicate_impl(Deoptimization::Reason_loop_limit_check, nargs);
3806 }
3807
3808 //----------------------------- store barriers ----------------------------
3809 #define __ ideal.
3810
3811 void GraphKit::sync_kit(IdealKit& ideal) {
3812 set_all_memory(__ merged_memory());
3813 set_i_o(__ i_o());
3814 set_control(__ ctrl());
3815 }
3816
3817 void GraphKit::final_sync(IdealKit& ideal) {
3818 // Final sync IdealKit and graphKit.
3819 sync_kit(ideal);
3820 }
3821
3822 Node* GraphKit::byte_map_base_node() {
3823 // Get base of card map
3824 jbyte* card_table_base = ci_card_table_address();
3825 if (card_table_base != NULL) {
3826 return makecon(TypeRawPtr::make((address)card_table_base));
3827 } else {
3828 return null();
3829 }
|
3791 set_control(iffalse);
3792 inc_sp(nargs);
3793 uncommon_trap(reason, Deoptimization::Action_maybe_recompile);
3794 }
3795 Node* iftrue = _gvn.transform(new IfTrueNode(iff));
3796 set_control(iftrue);
3797 }
3798
3799 //------------------------------add_predicate---------------------------------
3800 void GraphKit::add_predicate(int nargs) {
3801 if (UseLoopPredicate) {
3802 add_predicate_impl(Deoptimization::Reason_predicate, nargs);
3803 }
3804 // loop's limit check predicate should be near the loop.
3805 add_predicate_impl(Deoptimization::Reason_loop_limit_check, nargs);
3806 }
3807
3808 //----------------------------- store barriers ----------------------------
3809 #define __ ideal.
3810
3811 bool GraphKit::use_ReduceInitialCardMarks() {
3812 BarrierSet *bs = Universe::heap()->barrier_set();
3813 return bs->is_a(BarrierSet::CardTableModRef)
3814 && barrier_set_cast<CardTableModRefBS>(bs)->can_elide_tlab_store_barriers()
3815 && ReduceInitialCardMarks;
3816 }
3817
3818 void GraphKit::sync_kit(IdealKit& ideal) {
3819 set_all_memory(__ merged_memory());
3820 set_i_o(__ i_o());
3821 set_control(__ ctrl());
3822 }
3823
3824 void GraphKit::final_sync(IdealKit& ideal) {
3825 // Final sync IdealKit and graphKit.
3826 sync_kit(ideal);
3827 }
3828
3829 Node* GraphKit::byte_map_base_node() {
3830 // Get base of card map
3831 jbyte* card_table_base = ci_card_table_address();
3832 if (card_table_base != NULL) {
3833 return makecon(TypeRawPtr::make((address)card_table_base));
3834 } else {
3835 return null();
3836 }
|