Memory ordering in C2 (original) (raw)
Lindenmaier, Goetz goetz.lindenmaier at sap.com
Wed Feb 26 14:13:48 PST 2014
- Previous message: Memory ordering in C2
- Next message: RFR (XS) 8025550 valgrind: Conditional jump depends on uninitialised value in Arena::set_size_in_bytes()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
We have a load that does the Acquire itself. So that we don't get a useless lwsync instruction after the load, the match rule for MemBarAcquire is empty, i.e., does not emit an instruction.
Best regards, Goetz.
-----Original Message----- From: Andrew Haley [mailto:aph at redhat.com] Sent: Wednesday, February 26, 2014 10:52 AM To: David Holmes; Lindenmaier, Goetz; hotspot-dev Source Developers Subject: Re: Memory ordering in C2
On 02/26/2014 04:32 AM, David Holmes wrote:
On 26/02/2014 1:41 AM, Lindenmaier, Goetz wrote:
Hi,
From what I've seen, C2 is enthusiastically emitting barrier nodes around CompareAndSwap, so I'm not quite sure what this means. Yes, you are right ... that's again because we implement MemBArAcquire empty, but after the CompareAndSwap we need one, so we had to add it in the node ;) So same issue, distinguishing nodes would help! The bad thing is that MemBarAcquire is implemented empty, that spoils the other uses. If there is a way to avoid MemBarAcquire where it needs to be empty (after volatile load), then it can be implemented properly ... I'm unclear what you mean by "needs to be empty" ??
"Does not need to be emitted," I think.
Andrew.
- Previous message: Memory ordering in C2
- Next message: RFR (XS) 8025550 valgrind: Conditional jump depends on uninitialised value in Arena::set_size_in_bytes()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]