IMO I don't think such barriers should be removed just because EA is able
to elide the heap allocation.

On Tue, Feb 17, 2015 at 2:15 PM, Vladimir Kozlov <vladimir.koz...@oracle.com
> wrote:

> 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.
>>
>>

Reply via email to