mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
7121140: Allocation paths require explicit memory synchronization operations for RMO systems
Adds store store barrier after initialization of header and body of objects. Reviewed-by: never, kvn
This commit is contained in:
parent
e057d60ca1
commit
97439fb4ff
13 changed files with 196 additions and 7 deletions
|
@ -3337,6 +3337,19 @@ InitializeNode* AllocateNode::initialization() {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
// Trace Allocate -> Proj[Parm] -> MemBarStoreStore
|
||||
MemBarStoreStoreNode* AllocateNode::storestore() {
|
||||
ProjNode* rawoop = proj_out(AllocateNode::RawAddress);
|
||||
if (rawoop == NULL) return NULL;
|
||||
for (DUIterator_Fast imax, i = rawoop->fast_outs(imax); i < imax; i++) {
|
||||
Node* storestore = rawoop->fast_out(i);
|
||||
if (storestore->is_MemBarStoreStore()) {
|
||||
return storestore->as_MemBarStoreStore();
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//----------------------------- loop predicates ---------------------------
|
||||
|
||||
//------------------------------add_predicate_impl----------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue