< prev index next >

src/share/vm/opto/macro.cpp

Print this page

        

*** 1383,1393 **** --- 1383,1398 ---- // MemBarStoreStore was already added. If the object does not // escape no need for a MemBarStoreStore. Otherwise we need a // MemBarStoreStore so that stores that initialize this object // can't be reordered with a subsequent store that makes this // object accessible by other threads. + #ifndef AARCH64 if (init == NULL || (!init->is_complete_with_arraycopy() && !init->does_not_escape())) { + #else + if (!alloc->does_not_escape_thread() && + (init == NULL || !init->is_complete_with_arraycopy())) { + #endif if (init == NULL || init->req() < InitializeNode::RawStores) { // No InitializeNode or no stores captured by zeroing // elimination. Simply add the MemBarStoreStore after object // initialization. MemBarNode* mb = MemBarNode::make(C, Op_MemBarStoreStore, Compile::AliasIdxBot);
< prev index next >