[cpp-threads] Implementation of seq_cst load on x86

Boehm, Hans hans.boehm at hp.com
Sun May 30 05:06:22 BST 2010


Peter Sewell's group (Cambridge) almost certainly has the best public formal description of the X86 memory model.  (They discuss some remaining issues with the Intel/AMD documents, though we believe they are not critical for the C++ memory model.)  They (particularly Mark Batty) have apparently also been working on formalizing the C++ memory model.  Thus I suspect they would be in the best position to give a definitive answer.  I unfortunately don't know of an existing paper that proves exactly that, but I suspect they're working on it.

If you want an informal argument, I could probably construct that.  But it doesn't sound like that's what you're looking for?

Hans

> -----Original Message-----
> From: cpp-threads-bounces at decadentplace.org.uk 
> [mailto:cpp-threads-bounces at decadentplace.org.uk] On Behalf 
> Of Jeffrey Yasskin
> Sent: Wednesday, May 19, 2010 1:54 PM
> To: cpp-threads at decadentplace.org.uk
> Subject: [cpp-threads] Implementation of seq_cst load on x86
> 
> Hello all,
> 
> I've seen assertions [1] that load(memory_order_seq_cst) can 
> be implemented as a simple mov on x86 as long as
> store(memory_order_seq_cst) is implemented as xchg. Does 
> anyone know of a paper that proves this claim from the 
> guarantees in Intel's and AMD's architecture documents?
> 
> Sorry if this was the wrong list to ask this question on.
> 
> Thanks,
> Jeffrey Yasskin
> 
> [1] 
> http://www.justsoftwaresolutions.co.uk/threading/intel-memory-
> ordering-and-c++-memory-model.html
> and http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html
> 
> --
> cpp-threads mailing list
> cpp-threads at decadentplace.org.uk
> http://www.decadentplace.org.uk/cgi-bin/mailman/listinfo/cpp-threads
> 


More information about the cpp-threads mailing list