www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - Is atomicLoad implemented?

reply Marco Leise <Marco.Leise gmx.de> writes:
I was just experimenting with core.atomic and noticed only a
marginal speed difference when accessing variables using
atomicLoad.
Is this because it isn't implemented or because it can be
reduced to a no-op on x86 hardware?

-- 
Marco
Jun 05 2013
parent reply "David Nadlinger" <code klickverbot.at> writes:
On 5 Jun 2013, at 19:19, Marco Leise wrote:
 I was just experimenting with core.atomic and noticed only a
 marginal speed difference when accessing variables using
 atomicLoad.
 Is this because it isn't implemented or because it can be
 reduced to a no-op on x86 hardware?
atomicLoad/atomicStore are implemented for LDC. As for what causes the speed difference, the only sensible answer is to have a look at the produced assembly. atomicLoad can't be transformed into a normal load in the general case even on x86. David
Jun 05 2013
next sibling parent "carryonjutta" <carryonjutta144 gmail.com> writes:
Is this because it isn't implemented or because it can be
reduced to a no-op on x86 hardware?


________________
dhoom
Dec 31 2014
prev sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Wednesday, 5 June 2013 at 17:25:32 UTC, David Nadlinger wrote:
 On 5 Jun 2013, at 19:19, Marco Leise wrote:
 I was just experimenting with core.atomic and noticed only a
 marginal speed difference when accessing variables using
 atomicLoad.
 Is this because it isn't implemented or because it can be
 reduced to a no-op on x86 hardware?
atomicLoad/atomicStore are implemented for LDC. As for what causes the speed difference, the only sensible answer is to have a look at the produced assembly. atomicLoad can't be transformed into a normal load in the general case even on x86. David
Those who are interested in this topic should watch Herb Sutter's 2012 talk on std::atomic http://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2
Jan 02 2015