[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