Mercurial > hg > truffle
comparison src/share/vm/opto/lcm.cpp @ 1100:f96a1a986f7b
6895383: JCK test throws NPE for method compiled with Escape Analysis
Summary: Add missing checks for MemBar nodes in EA.
Reviewed-by: never
author | kvn |
---|---|
date | Wed, 09 Dec 2009 16:40:45 -0800 |
parents | fbde8ec322d0 |
children | 97125851f396 |
comparison
equal
deleted
inserted
replaced
1099:c5d3d979ae27 | 1100:f96a1a986f7b |
---|---|
614 n->del_req(n->req() - 1); | 614 n->del_req(n->req() - 1); |
615 n->add_prec(oop_store); | 615 n->add_prec(oop_store); |
616 assert(cfg->_bbs[oop_store->_idx]->_dom_depth <= this->_dom_depth, "oop_store must dominate card-mark"); | 616 assert(cfg->_bbs[oop_store->_idx]->_dom_depth <= this->_dom_depth, "oop_store must dominate card-mark"); |
617 } | 617 } |
618 } | 618 } |
619 if( n->is_Mach() && n->as_Mach()->ideal_Opcode() == Op_MemBarAcquire && | 619 if( n->is_Mach() && n->req() > TypeFunc::Parms && |
620 n->req() > TypeFunc::Parms ) { | 620 (n->as_Mach()->ideal_Opcode() == Op_MemBarAcquire || |
621 n->as_Mach()->ideal_Opcode() == Op_MemBarVolatile) ) { | |
621 // MemBarAcquire could be created without Precedent edge. | 622 // MemBarAcquire could be created without Precedent edge. |
622 // del_req() replaces the specified edge with the last input edge | 623 // del_req() replaces the specified edge with the last input edge |
623 // and then removes the last edge. If the specified edge > number of | 624 // and then removes the last edge. If the specified edge > number of |
624 // edges the last edge will be moved outside of the input edges array | 625 // edges the last edge will be moved outside of the input edges array |
625 // and the edge will be lost. This is why this code should be | 626 // and the edge will be lost. This is why this code should be |