RFR: 8073093: AARCH64: C2 generates poor code for ByteBuffer accesses
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Feb 17 19:15:48 UTC 2015
There was discussion should we remove such barriers or not because they
create memory operations ordering which could be different if we remove
them.
To eliminate them we need to add 'precedent' edge to store's membar as
we do, for example, for loads:
if (field->is_volatile()) {
// Memory barrier includes bogus read of value to force load BEFORE
membar
insert_mem_bar(Op_MemBarAcquire, ld);
}
MemBarNode::Ideal() will do elimination.
Regards,
Vladimir
On 2/17/15 10:58 AM, Andrew Haley wrote:
> On 02/17/2015 06:42 PM, John Rose wrote:
>> The remaining store fence is probably a bug. A store fence for scalarized (lifted-out-of-memory) final fields should go away, since the fields are not actually stored in heap memory.
>
> After inlining how would escape analysis know that the store fence is
> associated with final fields rather than, say, an explicit
> Unsafe.storeFence() ?
>
> Andrew.
>
More information about the core-libs-dev
mailing list