< prev index next >

src/hotspot/share/opto/shenandoahSupport.cpp

Print this page
rev 50076 : Fold Partial GC into Traversal GC

*** 579,589 **** } if (in1->Opcode() != Op_AndI) { return false; } in2 = in1->in(2); ! if (in2->find_int_con(-1) != (ShenandoahHeap::EVACUATION | ShenandoahHeap::PARTIAL | ShenandoahHeap::TRAVERSAL)) { return false; } in1 = in1->in(1); return is_gc_state_load(in1); --- 579,589 ---- } if (in1->Opcode() != Op_AndI) { return false; } in2 = in1->in(2); ! if (in2->find_int_con(-1) != (ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL)) { return false; } in1 = in1->in(1); return is_gc_state_load(in1);
*** 3606,3616 **** debug_only(gc_state_adr_type = phase->C->get_adr_type(gc_state_idx)); Node* gc_state = new LoadUBNode(ctrl, raw_mem, gc_state_addr, gc_state_adr_type, TypeInt::BYTE, MemNode::unordered); phase->register_new_node(gc_state, ctrl); ! Node* evacuation_in_progress = new AndINode(gc_state, phase->igvn().intcon(ShenandoahHeap::EVACUATION | ShenandoahHeap::PARTIAL | ShenandoahHeap::TRAVERSAL)); phase->register_new_node(evacuation_in_progress, ctrl); Node* evacuation_in_progress_cmp = new CmpINode(evacuation_in_progress, phase->igvn().zerocon(T_INT)); phase->register_new_node(evacuation_in_progress_cmp, ctrl); Node* evacuation_in_progress_test = new BoolNode(evacuation_in_progress_cmp, BoolTest::ne); phase->register_new_node(evacuation_in_progress_test, ctrl); --- 3606,3616 ---- debug_only(gc_state_adr_type = phase->C->get_adr_type(gc_state_idx)); Node* gc_state = new LoadUBNode(ctrl, raw_mem, gc_state_addr, gc_state_adr_type, TypeInt::BYTE, MemNode::unordered); phase->register_new_node(gc_state, ctrl); ! Node* evacuation_in_progress = new AndINode(gc_state, phase->igvn().intcon(ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL)); phase->register_new_node(evacuation_in_progress, ctrl); Node* evacuation_in_progress_cmp = new CmpINode(evacuation_in_progress, phase->igvn().zerocon(T_INT)); phase->register_new_node(evacuation_in_progress_cmp, ctrl); Node* evacuation_in_progress_test = new BoolNode(evacuation_in_progress_cmp, BoolTest::ne); phase->register_new_node(evacuation_in_progress_test, ctrl);
< prev index next >