Mercurial > hg > truffle
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? |