< prev index next >

src/share/vm/opto/compile.cpp

Print this page
rev 9388 : [mq]: qfield_refs


3532           if (!dead_nodes) {
3533             tty->print_cr("*** Dead nodes reachable via DU edges:");
3534             dead_nodes = true;
3535           }
3536           use->dump(2);
3537           tty->print_cr("---");
3538           checked.push(use);  // No repeats; pretend it is now checked.
3539         }
3540       }
3541       assert(!dead_nodes, "using nodes must be reachable from root");
3542     }
3543   }
3544 }
3545 
3546 // Verify GC barriers consistency
3547 // Currently supported:
3548 // - G1 pre-barriers (see GraphKit::g1_write_barrier_pre())
3549 void Compile::verify_barriers() {
3550   if (UseG1GC) {
3551     // Verify G1 pre-barriers
3552     const int marking_offset = in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_active());
3553 
3554     ResourceArea *area = Thread::current()->resource_area();
3555     Unique_Node_List visited(area);
3556     Node_List worklist(area);
3557     // We're going to walk control flow backwards starting from the Root
3558     worklist.push(_root);
3559     while (worklist.size() > 0) {
3560       Node* x = worklist.pop();
3561       if (x == NULL || x == top()) continue;
3562       if (visited.member(x)) {
3563         continue;
3564       } else {
3565         visited.push(x);
3566       }
3567 
3568       if (x->is_Region()) {
3569         for (uint i = 1; i < x->req(); i++) {
3570           worklist.push(x->in(i));
3571         }
3572       } else {




3532           if (!dead_nodes) {
3533             tty->print_cr("*** Dead nodes reachable via DU edges:");
3534             dead_nodes = true;
3535           }
3536           use->dump(2);
3537           tty->print_cr("---");
3538           checked.push(use);  // No repeats; pretend it is now checked.
3539         }
3540       }
3541       assert(!dead_nodes, "using nodes must be reachable from root");
3542     }
3543   }
3544 }
3545 
3546 // Verify GC barriers consistency
3547 // Currently supported:
3548 // - G1 pre-barriers (see GraphKit::g1_write_barrier_pre())
3549 void Compile::verify_barriers() {
3550   if (UseG1GC) {
3551     // Verify G1 pre-barriers
3552     const int marking_offset = in_bytes(JavaThread::satb_mark_queue_offset() + SATBMarkQueue::byte_offset_of_active());
3553 
3554     ResourceArea *area = Thread::current()->resource_area();
3555     Unique_Node_List visited(area);
3556     Node_List worklist(area);
3557     // We're going to walk control flow backwards starting from the Root
3558     worklist.push(_root);
3559     while (worklist.size() > 0) {
3560       Node* x = worklist.pop();
3561       if (x == NULL || x == top()) continue;
3562       if (visited.member(x)) {
3563         continue;
3564       } else {
3565         visited.push(x);
3566       }
3567 
3568       if (x->is_Region()) {
3569         for (uint i = 1; i < x->req(); i++) {
3570           worklist.push(x->in(i));
3571         }
3572       } else {


< prev index next >