comparison src/share/vm/opto/graphKit.cpp @ 4763:1dc233a8c7fe

7121140: Allocation paths require explicit memory synchronization operations for RMO systems Summary: adds store store barrier after initialization of header and body of objects. Reviewed-by: never, kvn
author roland
date Tue, 20 Dec 2011 16:56:50 +0100
parents 069ab3f976d3
children b9bc6cae88f2
comparison
equal deleted inserted replaced
4762:069ab3f976d3 4763:1dc233a8c7fe
3335 } 3335 }
3336 } 3336 }
3337 return NULL; 3337 return NULL;
3338 } 3338 }
3339 3339
3340 // Trace Allocate -> Proj[Parm] -> MemBarStoreStore
3341 MemBarStoreStoreNode* AllocateNode::storestore() {
3342 ProjNode* rawoop = proj_out(AllocateNode::RawAddress);
3343 if (rawoop == NULL) return NULL;
3344 for (DUIterator_Fast imax, i = rawoop->fast_outs(imax); i < imax; i++) {
3345 Node* storestore = rawoop->fast_out(i);
3346 if (storestore->is_MemBarStoreStore()) {
3347 return storestore->as_MemBarStoreStore();
3348 }
3349 }
3350 return NULL;
3351 }
3352
3340 //----------------------------- loop predicates --------------------------- 3353 //----------------------------- loop predicates ---------------------------
3341 3354
3342 //------------------------------add_predicate_impl---------------------------- 3355 //------------------------------add_predicate_impl----------------------------
3343 void GraphKit::add_predicate_impl(Deoptimization::DeoptReason reason, int nargs) { 3356 void GraphKit::add_predicate_impl(Deoptimization::DeoptReason reason, int nargs) {
3344 // Too many traps seen? 3357 // Too many traps seen?