[LLVMdev] Intended semantics for ``fence seq_cst``

Chandler Carruth chandlerc at google.com
Wed Jul 31 18:46:05 PDT 2013

On Wed, Jul 31, 2013 at 6:39 PM, JF Bastien <jfb at google.com> wrote:

> > You will need to do this in the frontend. The target independent
> optimizers are allowed to use the memory model.
> We discussed doing this, and concluded that doing it pre-opt was overly
> restrictive on correct code. Doing it post-opt bakes the behavior into the
> portable code, so in a way it'll be reliably broken but won't penalize good
> code.
> FWIW it's easy to change from one to the other: move one line of code. I
> hope my explanation makes sense, and it doesn't look like I'm dismissing
> your comment on implementation issues.

It doesn't really make sense to me. The most likely way for the optimizer
to break any of this is in the middle end. By only fixing it afterward, I
don't see what the advantage of fixing it at all is...

As Jeffrey pointed out, the penalty is relatively low on x86.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130731/0b168e1e/attachment.html>

More information about the llvm-dev mailing list